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