- if (local_exceptionptr)
- utf_sprint(logtext + strlen(logtext), local_exceptionptr->vftbl->class->name);
- else {
- sprintf(logtext+strlen(logtext),"%s","Error: <Nullpointer instead of exception>");
- if (!proto_java_lang_ClassCastException) sprintf(logtext+strlen(logtext),"%s","proto_java_lang_ClassCastException==0");
- if (!proto_java_lang_NullPointerException) sprintf(logtext+strlen(logtext),"%s","proto_java_lang_NullPointerException==0");
- if (!proto_java_lang_NullPointerException) sprintf(logtext+strlen(logtext),"%s","proto_java_lang_NullPointerException==0");
- if (!proto_java_lang_ArrayIndexOutOfBoundsException) sprintf(logtext+strlen(logtext),"%s","proto_java_lang_ArrayIndexOutOfBoundsException==0");
- if (!proto_java_lang_NegativeArraySizeException) sprintf(logtext+strlen(logtext),"%s","proto_java_lang_NegativeArraySizeException==0");
- if (!proto_java_lang_OutOfMemoryError) sprintf(logtext+strlen(logtext),"%s","proto_java_lang_OutOfMemoryError==0");
- if (!proto_java_lang_ArithmeticException) sprintf(logtext+strlen(logtext),"%s","proto_java_lang_ArithmeticException==0");
- if (!proto_java_lang_ArrayStoreException) sprintf(logtext+strlen(logtext),"%s","proto_java_lang_ArrayStoreException==0");
- if (!proto_java_lang_ThreadDeath) sprintf(logtext+strlen(logtext),"%s","proto_java_lang_ThreadDeath==0");
- if (!proto_java_lang_ThreadDeath) sprintf(logtext+strlen(logtext),"%s","proto_java_lang_ThreadDeath==0");
+ if (local_exceptionptr) {
+ java_lang_Throwable *t = (java_lang_Throwable *) local_exceptionptr;
+
+ utf_sprint_classname(logtext + strlen(logtext),
+ local_exceptionptr->vftbl->class->name);
+
+ if (t->detailMessage) {
+ sprintf(logtext + strlen(logtext), ": %s",
+ javastring_tochar(t->detailMessage));