This is the mail archive of the java@gcc.gnu.org mailing list for the Java project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

wrong/strange exceptions


Hey all

Here an example of wrong/strange stacktraces. I would expect something like:
----- start -----
Exception in thread "main" java.lang.NullPointerException: TestException
	at JniTest.findClass(Native Method)
	at JniTest.main(JniTest.java:8)

1. But on Linux, I get:
----- start -----
Exception in thread "main" java.lang.NullPointerException: TestException
   at java.lang.reflect.Constructor.newInstance(natConstructor.cc:92)

2. On mingw, without Ranjits patch that breaks jni libs [1], I get:
----- start -----
Exception in thread "main" java.lang.NullPointerException: TestException
   at java.lang.VMThrowable.fillInStackTrace(JniTest.exe)
   at java.lang.Throwable.<init>(JniTest.exe)
   at java.lang.Exception.<init>(JniTest.exe)
   at java.lang.RuntimeException.<init>(JniTest.exe)
   at java.lang.reflect.Constructor.newInstance(JniTest.exe)
   at JniTest.findClass(JniTest.exe)

3. On mingw, with Ranjits patch, I get:
----- start -----
Exception in thread "main" java.lang.NullPointerException: TestException
at java.lang.reflect.Constructor.newInstance(/usr/local/src/gcc/libjava/classpath/java/util/regex/PatternSyntaxException.java:130)
at JniTest.findClass(/mnt/daten/tmp/trace-tests/jni-test/JniTest.java:10)
at JniTest.main(/mnt/daten/tmp/trace-tests/jni-test/JniTest.java:9)



Comments to these three results? Especially case 3 seems to have done something horribly wrong when pointing to /usr/local/src/gcc/libjava/classpath/java/util/regex/PatternSyntaxException.java:130.



Marco


1: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=29477
#include <jni.h>


JNIEXPORT void JNICALL Java_JniTest_findClass(JNIEnv *env, jclass c)
{
	jclass cls = (*env)->FindClass(env, "java/lang/NullPointerException");
  if (cls != 0) (*env)->ThrowNew(env, cls, "TestException");
}
public class JniTest
{
	public static void main(String[] args)
	{
		System.loadLibrary("jniTest");
		
		System.err.println("----- start -----");
		findClass();
		System.err.println("----- end -----");
	}
	
	private static native void findClass();
}

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]