figuring out what happenend within the java.lang.Thread.<init>
Tom Rodriguez
Thomas.Rodriguez at Sun.COM
Mon Nov 26 15:54:55 PST 2007
It seems like you are initializing your pool too early in the bootstrap.
The call to getSystemClassLoader occurs somewhere in the middle of the
bootstrap and if you create your threads before that runs then
java_system_loader() returns NULL. There should probably be an assert
there that it never returns NULL since that would indicate some sort of
bootstrap error. Anyway, that might explain the NPEs in your other threads.
tom
Peter Helfer wrote:
> Ok, I'm running again into troubles..
>
> This is what I'm seeing:
>
> VM option '+UnlockDiagnosticVMOptions'
> VM option '-VerifyBeforeExit'
> PARENT[80D8800]: getThread: Linked threads 80D8800 <--> 80DA800
> SpecPool::createThread: EXCEPTION OCCURED IN PART1
> at java.lang.Thread.<init>(Thread.java:463)
> PARENT[80D8800]: getThread: Linked threads 80D8800 <--> 80DC400
> SpecPool::createThread: EXCEPTION OCCURED IN PART3 at
> java.lang.ThreadGroup.add(ThreadGroup.java:868)
> PARENT[80D8800]: getThread: Linked threads 80D8800 <--> 80DFC00
> SpecPool::createThread: EXCEPTION OCCURED IN PART1
> at java.lang.Thread.<init>(Thread.java :463)
> PARENT[80D8800]: getThread: Linked threads 80D8800 <--> 80E1C00
> SpecPool::createThread: EXCEPTION OCCURED IN PART1
> at java.lang.Thread.<init>(Thread.java:463)
> PARENT[806DC00]: getThread: Linked threads 806DC00 <--> 80E5400
> PARENT[806DC00]: getThread: Linked threads 806DC00 <--> 80E3800
> Error occurred during initialization of VM
> java.lang.ExceptionInInitializerError
> at sun.misc.Launcher.<init>(Launcher.java:71)
> at sun.misc.Launcher.<clinit>(Launcher.java:59)
> at
> java.lang.ClassLoader.initSystemClassLoader(ClassLoader.java:1322)
> at
> java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:1304)
> Caused by: java.lang.NullPointerException
> at java.net.URLClassLoader.<clinit>(URLClassLoader.java:589)
> at sun.misc.Launcher.<init>(Launcher.java:71)
> at sun.misc.Launcher.<clinit>( Launcher.java:59)
> at
> java.lang.ClassLoader.initSystemClassLoader(ClassLoader.java:1322)
> at java.lang.ClassLoader.getSystemClassLoader(ClassLoader.java:1304)
>
> Now how can I track or figure out, what has happend within
> java.lang.Thread.<init> ? - this is just the normal stack trace output,
> are there any other means ? When using GDB (thx Tom for the script!), I
> can only see backtraces, which end up in os::raise(), but I'm having
> issues to set breakpoints, even when using "sharedlibrary libjvm"...
>
> Regards, Peter
More information about the hotspot-runtime-dev
mailing list