Add bounds checking to our internal array get/set methods.

Change-Id: Ia570615e6b4ea81d796b6bf720444c62830a4f89
diff --git a/src/jni_internal_test.cc b/src/jni_internal_test.cc
index e5ba913..9394ff6 100644
--- a/src/jni_internal_test.cc
+++ b/src/jni_internal_test.cc
@@ -92,7 +92,8 @@
 
   // TODO: check non-NULL initial elements.
 
-  jclass c = env_->FindClass("[Ljava.lang.String;");
+  jclass c = env_->FindClass("[Ljava/lang/String;");
+  ASSERT_TRUE(c != NULL);
 
   EXPECT_TRUE(env_->NewObjectArray(0, c, NULL) != NULL);
 
@@ -106,6 +107,18 @@
   // TODO: check some non-ASCII strings.
 }
 
+TEST_F(JniInternalTest, SetObjectArrayElement) {
+  jclass c = env_->FindClass("[Ljava/lang/Object;");
+  ASSERT_TRUE(c != NULL);
+
+  jobjectArray array = env_->NewObjectArray(1, c, NULL);
+  EXPECT_TRUE(array != NULL);
+  env_->SetObjectArrayElement(array, 0, c);
+  // TODO: check reading value back
+  // TODO: check IndexOutOfBoundsExceptions thrown for bad indexes.
+  // TODO: check ArrayStoreException thrown for bad types.
+}
+
 bool EnsureInvokeStub(Method* method);
 
 byte* AllocateCode(void* code, size_t length) {