Throw NullPointerExceptions with detail messages.
Bug: 4905110
Change-Id: Iebcc45049c1ea14ceef6d44a19dd8cb618392101
diff --git a/vm/Jni.cpp b/vm/Jni.cpp
index 191b105..3e45e87 100644
--- a/vm/Jni.cpp
+++ b/vm/Jni.cpp
@@ -2263,7 +2263,7 @@
ScopedJniThreadState ts(env);
if (jelementClass == NULL) {
- dvmThrowNullPointerException("JNI NewObjectArray element class");
+ dvmThrowNullPointerException("JNI NewObjectArray elementClass == NULL");
return NULL;
}
diff --git a/vm/native/InternalNative.cpp b/vm/native/InternalNative.cpp
index 7ba1a64..e3c8975 100644
--- a/vm/native/InternalNative.cpp
+++ b/vm/native/InternalNative.cpp
@@ -182,7 +182,7 @@
char* descriptor = NULL;
if (nameObj == NULL) {
- dvmThrowNullPointerException(NULL);
+ dvmThrowNullPointerException("name == null");
goto bail;
}
name = dvmCreateCstrFromString(nameObj);
diff --git a/vm/native/dalvik_system_DexFile.cpp b/vm/native/dalvik_system_DexFile.cpp
index 3de6f51..f611410 100644
--- a/vm/native/dalvik_system_DexFile.cpp
+++ b/vm/native/dalvik_system_DexFile.cpp
@@ -160,7 +160,7 @@
char* outputName;
if (sourceNameObj == NULL) {
- dvmThrowNullPointerException(NULL);
+ dvmThrowNullPointerException("sourceName == null");
RETURN_VOID();
}
@@ -255,7 +255,7 @@
DexOrJar* pDexOrJar = NULL;
if (fileContentsObj == NULL) {
- dvmThrowNullPointerException(NULL);
+ dvmThrowNullPointerException("fileContents == null");
RETURN_VOID();
}
@@ -451,7 +451,7 @@
}
/*
- * public static boolean isDexOptNeeded(String apkName)
+ * public static boolean isDexOptNeeded(String fileName)
* throws FileNotFoundException, IOException
*
* Returns true if the VM believes that the apk/jar file is out of date
@@ -477,7 +477,7 @@
name = dvmCreateCstrFromString(nameObj);
if (name == NULL) {
- dvmThrowNullPointerException(NULL);
+ dvmThrowNullPointerException("fileName == null");
RETURN_VOID();
}
if (access(name, R_OK) != 0) {
diff --git a/vm/native/dalvik_system_VMDebug.cpp b/vm/native/dalvik_system_VMDebug.cpp
index 790bd42..feefdee 100644
--- a/vm/native/dalvik_system_VMDebug.cpp
+++ b/vm/native/dalvik_system_VMDebug.cpp
@@ -505,7 +505,7 @@
* Only one of these may be NULL.
*/
if (fileNameStr == NULL && fileDescriptor == NULL) {
- dvmThrowNullPointerException(NULL);
+ dvmThrowNullPointerException("fileName == null && fd == null");
RETURN_VOID();
}
@@ -588,7 +588,7 @@
bool result = false;
if (classAndMethodDescStr == NULL) {
- dvmThrowNullPointerException(NULL);
+ dvmThrowNullPointerException("classAndMethodDesc == null");
RETURN_VOID();
}
diff --git a/vm/native/dalvik_system_VMRuntime.cpp b/vm/native/dalvik_system_VMRuntime.cpp
index 682b0e2..ce196a7 100644
--- a/vm/native/dalvik_system_VMRuntime.cpp
+++ b/vm/native/dalvik_system_VMRuntime.cpp
@@ -99,7 +99,7 @@
int length = args[2];
if (elementClass == NULL) {
- dvmThrowNullPointerException(NULL);
+ dvmThrowNullPointerException("elementClass == null");
RETURN_VOID();
}
if (length < 0) {
diff --git a/vm/native/java_lang_Class.cpp b/vm/native/java_lang_Class.cpp
index cc0bccb..2c939be 100644
--- a/vm/native/java_lang_Class.cpp
+++ b/vm/native/java_lang_Class.cpp
@@ -440,7 +440,7 @@
ClassObject* testClass = (ClassObject*) args[1];
if (testClass == NULL) {
- dvmThrowNullPointerException(NULL);
+ dvmThrowNullPointerException("cls == null");
RETURN_INT(false);
}
RETURN_INT(dvmInstanceof(testClass, thisPtr));
diff --git a/vm/native/java_lang_System.cpp b/vm/native/java_lang_System.cpp
index 8223afd..c5db95a 100644
--- a/vm/native/java_lang_System.cpp
+++ b/vm/native/java_lang_System.cpp
@@ -113,24 +113,19 @@
*/
static void Dalvik_java_lang_System_arraycopy(const u4* args, JValue* pResult)
{
- ArrayObject* srcArray;
- ArrayObject* dstArray;
- ClassObject* srcClass;
- ClassObject* dstClass;
- int srcPos, dstPos, length;
- char srcType, dstType;
- bool srcPrim, dstPrim;
+ ArrayObject* srcArray = (ArrayObject*) args[0];
+ int srcPos = args[1];
+ ArrayObject* dstArray = (ArrayObject*) args[2];
+ int dstPos = args[3];
+ int length = args[4];
- srcArray = (ArrayObject*) args[0];
- srcPos = args[1];
- dstArray = (ArrayObject*) args[2];
- dstPos = args[3];
- length = args[4];
-
- /* check for null pointer */
- if ((Object*)srcArray == NULL || (Object*)dstArray == NULL) {
- dvmThrowNullPointerException(NULL);
- assert(dvmCheckException(dvmThreadSelf()));
+ /* Check for null pointers. */
+ if (srcArray == NULL) {
+ dvmThrowNullPointerException("src == null");
+ RETURN_VOID();
+ }
+ if (dstArray == NULL) {
+ dvmThrowNullPointerException("dst == null");
RETURN_VOID();
}
@@ -155,17 +150,17 @@
RETURN_VOID();
}
- srcClass = srcArray->clazz;
- dstClass = dstArray->clazz;
- srcType = srcClass->descriptor[1];
- dstType = dstClass->descriptor[1];
+ ClassObject* srcClass = srcArray->clazz;
+ ClassObject* dstClass = dstArray->clazz;
+ char srcType = srcClass->descriptor[1];
+ char dstType = dstClass->descriptor[1];
/*
* If one of the arrays holds a primitive type, the other array must
* hold the same type.
*/
- srcPrim = (srcType != '[' && srcType != 'L');
- dstPrim = (dstType != '[' && dstType != 'L');
+ bool srcPrim = (srcType != '[' && srcType != 'L');
+ bool dstPrim = (dstType != '[' && dstType != 'L');
if (srcPrim || dstPrim) {
if (srcPrim != dstPrim || srcType != dstType) {
dvmThrowArrayStoreExceptionIncompatibleArrays(srcClass, dstClass);
@@ -340,9 +335,6 @@
RETURN_INT(dvmIdentityHashCode(thisPtr));
}
-/*
- * public static String mapLibraryName(String libname)
- */
static void Dalvik_java_lang_System_mapLibraryName(const u4* args,
JValue* pResult)
{
@@ -352,7 +344,7 @@
char* mappedName;
if (nameObj == NULL) {
- dvmThrowNullPointerException(NULL);
+ dvmThrowNullPointerException("userLibName == null");
RETURN_VOID();
}
diff --git a/vm/native/java_lang_VMClassLoader.cpp b/vm/native/java_lang_VMClassLoader.cpp
index c80713c..0640d95 100644
--- a/vm/native/java_lang_VMClassLoader.cpp
+++ b/vm/native/java_lang_VMClassLoader.cpp
@@ -85,7 +85,7 @@
char* descriptor = NULL;
if (nameObj == NULL) {
- dvmThrowNullPointerException(NULL);
+ dvmThrowNullPointerException("name == null");
goto bail;
}
diff --git a/vm/native/java_lang_VMThread.cpp b/vm/native/java_lang_VMThread.cpp
index 57ce006..5a8b4cf 100644
--- a/vm/native/java_lang_VMThread.cpp
+++ b/vm/native/java_lang_VMThread.cpp
@@ -85,7 +85,7 @@
Thread* thread;
if (object == NULL) {
- dvmThrowNullPointerException(NULL);
+ dvmThrowNullPointerException("object == null");
RETURN_VOID();
}