Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-6589714

Incorrect synchronization in AppletClassLoader causes deadlock

XMLWordPrintable

    • generic
    • generic

      Found one Java-level deadlock:
      =============================
      "AppletLauncher-Startup":
        waiting to lock monitor 0x0807ccac (object 0x8c79fa18, a sun.plugin.security.PluginClassLoader),
        which is held by "AppletLauncher-Reaper"
      "AppletLauncher-Reaper":
        waiting to lock monitor 0x0807cb80 (object 0x8c79f9c8, a sun.misc.URLClassPath),
        which is held by "AppletLauncher-Startup"

      Java stack information for the threads listed above:
      ===================================================
      "AppletLauncher-Startup":
              at java.lang.Class.forName0(Native Method)
              at java.lang.Class.forName(Unknown Source)
              at java.io.ObjectInputStream.resolveClass(Unknown Source)
              at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
              at java.io.ObjectInputStream.readClassDesc(Unknown Source)
              at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
              at java.io.ObjectInputStream.readObject0(Unknown Source)
              at java.io.ObjectInputStream.readObject(Unknown Source)
              at com.sun.deploy.cache.CacheEntry.readManifest(Unknown Source)
              at com.sun.deploy.cache.CacheEntry.readManifest(Unknown Source)
              at com.sun.deploy.cache.CacheEntry.access$300(Unknown Source)
              at com.sun.deploy.cache.CacheEntry$2.run(Unknown Source)
              at java.security.AccessController.doPrivileged(Native Method)
              at com.sun.deploy.cache.CacheEntry.getJarFile(Unknown Source)
              at com.sun.deploy.net.DownloadEngine.getCachedJarFile(Unknown Source)
              at com.sun.deploy.net.DownloadEngine.getCachedJarFile(Unknown Source)
              at sun.plugin.PluginURLJarFileCallBack$1.run(Unknown Source)
              at java.security.AccessController.doPrivileged(Native Method)
              at sun.plugin.PluginURLJarFileCallBack.retrieve(Unknown Source)
              at sun.net.www.protocol.jar.URLJarFile.retrieve(Unknown Source)
              at sun.net.www.protocol.jar.URLJarFile.getJarFile(Unknown Source)
              at sun.net.www.protocol.jar.JarFileFactory.get(Unknown Source)
              at sun.net.www.protocol.jar.JarURLConnection.connect(Unknown Source)
              at sun.plugin.net.protocol.jar.CachedJarURLConnection.connect(Unknown Source)
              at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFileInternal(Unknown Source)
              - locked <0x8c8593a0> (a sun.plugin.net.protocol.jar.CachedJarURLConnection)
              at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFile(Unknown Source)
              - locked <0x8c8593a0> (a sun.plugin.net.protocol.jar.CachedJarURLConnection)
              at sun.misc.URLClassPath$JarLoader.getJarFile(Unknown Source)
              at sun.misc.URLClassPath$JarLoader.access$600(Unknown Source)
              at sun.misc.URLClassPath$JarLoader$1.run(Unknown Source)
              at java.security.AccessController.doPrivileged(Native Method)
              at sun.misc.URLClassPath$JarLoader.ensureOpen(Unknown Source)
              at sun.misc.URLClassPath$JarLoader.<init>(Unknown Source)
              at sun.misc.URLClassPath$3.run(Unknown Source)
              at java.security.AccessController.doPrivileged(Native Method)
              at sun.misc.URLClassPath.getLoader(Unknown Source)
              at sun.misc.URLClassPath.getLoader(Unknown Source)
              - locked <0x8c79f9c8> (a sun.misc.URLClassPath)
              at sun.misc.URLClassPath.findResource(Unknown Source)
              at java.net.URLClassLoader$2.run(Unknown Source)
              at java.security.AccessController.doPrivileged(Native Method)
              at java.net.URLClassLoader.findResource(Unknown Source)
              at sun.applet.AppletClassLoader.findResource(Unknown Source)
              at java.lang.ClassLoader.getResource(Unknown Source)
              at java.lang.ClassLoader.getResourceAsStream(Unknown Source)
              at sun.applet.AppletClassLoader.getResourceAsStream(Unknown Source)
              - locked <0x8c7b3a00> (a java.lang.Object)
              at javax.xml.parsers.SecuritySupport$4.run(Unknown Source)
              at java.security.AccessController.doPrivileged(Native Method)
              at javax.xml.parsers.SecuritySupport.getResourceAsStream(Unknown Source)
              at javax.xml.parsers.FactoryFinder.findJarServiceProvider(Unknown Source)
              at javax.xml.parsers.FactoryFinder.find(Unknown Source)
              at javax.xml.parsers.SAXParserFactory.newInstance(Unknown Source)
              at org.jdesktop.applet.util.JNLPAppletLauncher$JNLPParser.<clinit>(JNLPAppletLauncher.java:2153)
              at org.jdesktop.applet.util.JNLPAppletLauncher.parseJNLPExtensions(JNLPAppletLauncher.java:1993)
              at org.jdesktop.applet.util.JNLPAppletLauncher.initResources(JNLPAppletLauncher.java:1321)
              - locked <0x9030fdd0> (a java.lang.Class for org.jdesktop.applet.util.JNLPAppletLauncher)
              at org.jdesktop.applet.util.JNLPAppletLauncher.initAndStartApplet(JNLPAppletLauncher.java:1246)
              at org.jdesktop.applet.util.JNLPAppletLauncher.access$000(JNLPAppletLauncher.java:650)
              at org.jdesktop.applet.util.JNLPAppletLauncher$1.run(JNLPAppletLauncher.java:899)
      "AppletLauncher-Reaper":
              at sun.misc.URLClassPath.getLoader(Unknown Source)
              - waiting to lock <0x8c79f9c8> (a sun.misc.URLClassPath)
              at sun.misc.URLClassPath.getResource(Unknown Source)
              at java.net.URLClassLoader$1.run(Unknown Source)
              at java.security.AccessController.doPrivileged(Native Method)
              at java.net.URLClassLoader.findClass(Unknown Source)
              at sun.applet.AppletClassLoader.findClass(Unknown Source)
              at java.lang.ClassLoader.loadClass(Unknown Source)
              - locked <0x8c79fa18> (a sun.plugin.security.PluginClassLoader)
              at sun.applet.AppletClassLoader.loadClass(Unknown Source)
              - locked <0x8c79fa18> (a sun.plugin.security.PluginClassLoader)
              at java.lang.ClassLoader.loadClass(Unknown Source)
              at java.lang.ClassLoader.loadClassInternal(Unknown Source)
              - locked <0x8c79fa18> (a sun.plugin.security.PluginClassLoader)
              at org.jdesktop.applet.util.JNLPAppletLauncher.deleteOldTempDirs(JNLPAppletLauncher.java:1113)
              at org.jdesktop.applet.util.JNLPAppletLauncher.access$100(JNLPAppletLauncher.java:650)
              at org.jdesktop.applet.util.JNLPAppletLauncher$3.run(JNLPAppletLauncher.java:1073)

      Found 1 deadlock.

      Heap
       def new generation total 960K, used 257K [0x8c070000, 0x8c170000, 0x8c550000)
        eden space 896K, 21% used [0x8c070000, 0x8c0a1188, 0x8c150000)
        from space 64K, 95% used [0x8c160000, 0x8c16f518, 0x8c170000)
        to space 64K, 0% used [0x8c150000, 0x8c150000, 0x8c160000)
       tenured generation total 4096K, used 4022K [0x8c550000, 0x8c950000, 0x90070000)
         the space 4096K, 98% used [0x8c550000, 0x8c93d9a0, 0x8c93da00, 0x8c950000)
       compacting perm gen total 12288K, used 2899K [0x90070000, 0x90c70000, 0x94070000)
         the space 12288K, 23% used [0x90070000, 0x90344fb0, 0x90345000, 0x90c70000)
          ro space 8192K, 69% used [0x94070000, 0x945febc0, 0x945fec00, 0x94870000)
          rw space 12288K, 57% used [0x94870000, 0x94f5a488, 0x94f5a600, 0x95470000)
      ###@###.### indicates that there is a deadlock in the AppletClassLoader implementation due to incorrect synchronization. From an email from him:

      -----
      I got a deadlock on Linux-i586 (Ubunty Edgy) running the following applet in Firefox 2.0.0.6:

      https://java3d.dev.java.net/applets/FourByFour.html

      The output of the console log is below. A thread dump showing the deadlock is attached.

      -- Kevin

      Java Plug-in 1.6.0_04
      Using JRE version 1.6.0_04 Java HotSpot(TM) Client VM
      User home directory = /export/home/beethoven/kcr


      ----------------------------------------------------
      c: clear console window
      f: finalize objects on finalization queue
      g: garbage collect
      h: display this help message
      l: dump classloader list
      m: print memory usage
      o: trigger logging
      p: reload proxy configuration
      q: hide console
      r: reload policy configuration
      s: dump system and deployment properties
      t: dump thread list
      v: dump thread stack
      x: clear classloader cache
      0-5: set trace level to <n>
      ----------------------------------------------------

      JNLPAppletLauncher: static initializer
      os.name = linux
      nativePrefix = lib nativeSuffix = .so
      tmpRootDir = /tmp/jnlp-applet/jln34429
      Applet.init
      subapplet.classname = org.jdesktop.j3d.examples.four_by_four.FourByFour
      subapplet.displayname = Java 3D Four by Four Applet
      Applet.start







      2007-08-02 11:29:39
      Full thread dump Java HotSpot(TM) Client VM (1.6.0_01-b06 mixed mode, sharing):

      "TimerQueue" daemon prio=10 tid=0x08354400 nid=0x5551 in Object.wait() [0xb43b6000..0xb43b6ee0]
         java.lang.Thread.State: WAITING (on object monitor)
              at java.lang.Object.wait(Native Method)
              - waiting on <0x8c893cd0> (a javax.swing.TimerQueue)
              at javax.swing.TimerQueue.run(Unknown Source)
              - locked <0x8c893cd0> (a javax.swing.TimerQueue)
              at java.lang.Thread.run(Unknown Source)

      "AppletLauncher-Startup" prio=10 tid=0x08306000 nid=0x5550 waiting for monitor entry [0xb4963000..0xb4965e60]
         java.lang.Thread.State: BLOCKED (on object monitor)
              at java.lang.Class.forName0(Native Method)
              at java.lang.Class.forName(Unknown Source)
              at java.io.ObjectInputStream.resolveClass(Unknown Source)
              at java.io.ObjectInputStream.readNonProxyDesc(Unknown Source)
              at java.io.ObjectInputStream.readClassDesc(Unknown Source)
              at java.io.ObjectInputStream.readOrdinaryObject(Unknown Source)
              at java.io.ObjectInputStream.readObject0(Unknown Source)
              at java.io.ObjectInputStream.readObject(Unknown Source)
              at com.sun.deploy.cache.CacheEntry.readManifest(Unknown Source)
              at com.sun.deploy.cache.CacheEntry.readManifest(Unknown Source)
              at com.sun.deploy.cache.CacheEntry.access$300(Unknown Source)
              at com.sun.deploy.cache.CacheEntry$2.run(Unknown Source)
              at java.security.AccessController.doPrivileged(Native Method)
              at com.sun.deploy.cache.CacheEntry.getJarFile(Unknown Source)
              at com.sun.deploy.net.DownloadEngine.getCachedJarFile(Unknown Source)
              at com.sun.deploy.net.DownloadEngine.getCachedJarFile(Unknown Source)
              at sun.plugin.PluginURLJarFileCallBack$1.run(Unknown Source)
              at java.security.AccessController.doPrivileged(Native Method)
              at sun.plugin.PluginURLJarFileCallBack.retrieve(Unknown Source)
              at sun.net.www.protocol.jar.URLJarFile.retrieve(Unknown Source)
              at sun.net.www.protocol.jar.URLJarFile.getJarFile(Unknown Source)
              at sun.net.www.protocol.jar.JarFileFactory.get(Unknown Source)
              at sun.net.www.protocol.jar.JarURLConnection.connect(Unknown Source)
              at sun.plugin.net.protocol.jar.CachedJarURLConnection.connect(Unknown Source)
              at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFileInternal(Unknown Source)
              - locked <0x8c8593a0> (a sun.plugin.net.protocol.jar.CachedJarURLConnection)
              at sun.plugin.net.protocol.jar.CachedJarURLConnection.getJarFile(Unknown Source)
              - locked <0x8c8593a0> (a sun.plugin.net.protocol.jar.CachedJarURLConnection)
              at sun.misc.URLClassPath$JarLoader.getJarFile(Unknown Source)
              at sun.misc.URLClassPath$JarLoader.access$600(Unknown Source)
              at sun.misc.URLClassPath$JarLoader$1.run(Unknown Source)
              at java.security.AccessController.doPrivileged(Native Method)
              at sun.misc.URLClassPath$JarLoader.ensureOpen(Unknown Source)
              at sun.misc.URLClassPath$JarLoader.<init>(Unknown Source)
              at sun.misc.URLClassPath$3.run(Unknown Source)
              at java.security.AccessController.doPrivileged(Native Method)
              at sun.misc.URLClassPath.getLoader(Unknown Source)
              at sun.misc.URLClassPath.getLoader(Unknown Source)
              - locked <0x8c79f9c8> (a sun.misc.URLClassPath)
              at sun.misc.URLClassPath.findResource(Unknown Source)
              at java.net.URLClassLoader$2.run(Unknown Source)
              at java.security.AccessController.doPrivileged(Native Method)
              at java.net.URLClassLoader.findResource(Unknown Source)
              at sun.applet.AppletClassLoader.findResource(Unknown Source)
              at java.lang.ClassLoader.getResource(Unknown Source)
              at java.lang.ClassLoader.getResourceAsStream(Unknown Source)
              at sun.applet.AppletClassLoader.getResourceAsStream(Unknown Source)
              - locked <0x8c7b3a00> (a java.lang.Object)
              at javax.xml.parsers.SecuritySupport$4.run(Unknown Source)
              at java.security.AccessController.doPrivileged(Native Method)
              at javax.xml.parsers.SecuritySupport.getResourceAsStream(Unknown Source)
              at javax.xml.parsers.FactoryFinder.findJarServiceProvider(Unknown Source)
              at javax.xml.parsers.FactoryFinder.find(Unknown Source)
              at javax.xml.parsers.SAXParserFactory.newInstance(Unknown Source)
              at org.jdesktop.applet.util.JNLPAppletLauncher$JNLPParser.<clinit>(JNLPAppletLauncher.java:2153)
              at org.jdesktop.applet.util.JNLPAppletLauncher.parseJNLPExtensions(JNLPAppletLauncher.java:1993)
              at org.jdesktop.applet.util.JNLPAppletLauncher.initResources(JNLPAppletLauncher.java:1321)
              - locked <0x9030fdd0> (a java.lang.Class for org.jdesktop.applet.util.JNLPAppletLauncher)
              at org.jdesktop.applet.util.JNLPAppletLauncher.initAndStartApplet(JNLPAppletLauncher.java:1246)
              at org.jdesktop.applet.util.JNLPAppletLauncher.access$000(JNLPAppletLauncher.java:650)
              at org.jdesktop.applet.util.JNLPAppletLauncher$1.run(JNLPAppletLauncher.java:899)

      "AppletLauncher-Reaper" prio=10 tid=0x08335c00 nid=0x554f waiting for monitor entry [0xb442f000..0xb44301e0]
         java.lang.Thread.State: BLOCKED (on object monitor)
              at sun.misc.URLClassPath.getLoader(Unknown Source)
              - waiting to lock <0x8c79f9c8> (a sun.misc.URLClassPath)
              at sun.misc.URLClassPath.getResource(Unknown Source)
              at java.net.URLClassLoader$1.run(Unknown Source)
              at java.security.AccessController.doPrivileged(Native Method)
              at java.net.URLClassLoader.findClass(Unknown Source)
              at sun.applet.AppletClassLoader.findClass(Unknown Source)
              at java.lang.ClassLoader.loadClass(Unknown Source)
              - locked <0x8c79fa18> (a sun.plugin.security.PluginClassLoader)
              at sun.applet.AppletClassLoader.loadClass(Unknown Source)
              - locked <0x8c79fa18> (a sun.plugin.security.PluginClassLoader)
              at java.lang.ClassLoader.loadClass(Unknown Source)
              at java.lang.ClassLoader.loadClassInternal(Unknown Source)
              - locked <0x8c79fa18> (a sun.plugin.security.PluginClassLoader)
              at org.jdesktop.applet.util.JNLPAppletLauncher.deleteOldTempDirs(JNLPAppletLauncher.java:1113)
              at org.jdesktop.applet.util.JNLPAppletLauncher.access$100(JNLPAppletLauncher.java:650)
              at org.jdesktop.applet.util.JNLPAppletLauncher$3.run(JNLPAppletLauncher.java:1073)

      "AWT-EventQueue-0" prio=10 tid=0x0830dc00 nid=0x5549 in Object.wait() [0xb44d1000..0xb44d20e0]
         java.lang.Thread.State: WAITING (on object monitor)
              at java.lang.Object.wait(Native Method)
              - waiting on <0x8c58c670> (a java.awt.EventQueue)
              at java.lang.Object.wait(Object.java:485)
              at java.awt.EventQueue.getNextEvent(Unknown Source)
              - locked <0x8c58c670> (a java.awt.EventQueue)
              at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
              at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
              at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
              at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
              at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
              at java.awt.EventDispatchThread.run(Unknown Source)

      "thread applet-org.jdesktop.applet.util.JNLPAppletLauncher" prio=10 tid=0x08302800 nid=0x5546 in Object.wait() [0xb4640000..0xb4640f60]
         java.lang.Thread.State: WAITING (on object monitor)
              at java.lang.Object.wait(Native Method)
              - waiting on <0x8c626af8> (a sun.plugin.AppletViewer)
              at java.lang.Object.wait(Object.java:485)
              at sun.applet.AppletPanel.getNextEvent(Unknown Source)
              - locked <0x8c626af8> (a sun.plugin.AppletViewer)
              at sun.applet.AppletPanel.run(Unknown Source)
              at java.lang.Thread.run(Unknown Source)

      "AWT-EventQueue-2" prio=10 tid=0xb486e400 nid=0x5544 in Object.wait() [0xb4adc000..0xb4adce60]
         java.lang.Thread.State: WAITING (on object monitor)
              at java.lang.Object.wait(Native Method)
              - waiting on <0x8c79fc70> (a java.awt.EventQueue)
              at java.lang.Object.wait(Object.java:485)
              at java.awt.EventQueue.getNextEvent(Unknown Source)
              - locked <0x8c79fc70> (a java.awt.EventQueue)
              at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
              at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
              at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
              at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
              at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
              at java.awt.EventDispatchThread.run(Unknown Source)

      "Thread-3" prio=10 tid=0x082e3800 nid=0x5542 runnable [0xb4a3b000..0xb4a3b160]
         java.lang.Thread.State: RUNNABLE
              at sun.plugin.navig.motif.AThread.handleRequest(Native Method)
              at sun.plugin.navig.motif.AThread.JNIHandleLoop(Unknown Source)
              at sun.plugin.navig.motif.AThread.run(Unknown Source)

      "Thread-2" prio=10 tid=0x082dcc00 nid=0x553f waiting on condition [0xb4a8b000..0xb4a8c0e0]
         java.lang.Thread.State: TIMED_WAITING (sleeping)
              at java.lang.Thread.sleep(Native Method)
              at sun.plugin.navig.motif.Plugin$Watcher.run(Unknown Source)

      "ConsoleWriterThread" daemon prio=10 tid=0x081c3000 nid=0x553d in Object.wait() [0xb52b4000..0xb52b4fe0]
         java.lang.Thread.State: WAITING (on object monitor)
              at java.lang.Object.wait(Native Method)
              - waiting on <0x8c5e9990> (a java.lang.Object)
              at java.lang.Object.wait(Object.java:485)
              at com.sun.deploy.util.ConsoleTraceListener$ConsoleWriterThread.run(Unknown Source)
              - locked <0x8c5e9990> (a java.lang.Object)

      "AWT-EventQueue-1" prio=10 tid=0x082b3400 nid=0x553c in Object.wait() [0xb4b2d000..0xb4b2df60]
         java.lang.Thread.State: WAITING (on object monitor)
              at java.lang.Object.wait(Native Method)
              - waiting on <0x8c5ea1a8> (a java.awt.EventQueue)
              at java.lang.Object.wait(Object.java:485)
              at java.awt.EventQueue.getNextEvent(Unknown Source)
              - locked <0x8c5ea1a8> (a java.awt.EventQueue)
              at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
              at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
              at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
              at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
              at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
              at java.awt.EventDispatchThread.run(Unknown Source)

      "AWT-Shutdown" prio=10 tid=0x082b2c00 nid=0x553b in Object.wait() [0xb5305000..0xb5305ee0]
         java.lang.Thread.State: WAITING (on object monitor)
              at java.lang.Object.wait(Native Method)
              - waiting on <0x8c561328> (a java.lang.Object)
              at java.lang.Object.wait(Object.java:485)
              at sun.awt.AWTAutoShutdown.run(Unknown Source)
              - locked <0x8c561328> (a java.lang.Object)
              at java.lang.Thread.run(Unknown Source)

      "traceMsgQueueThread" daemon prio=10 tid=0x08143400 nid=0x5538 in Object.wait() [0xb5356000..0xb5357160]
         java.lang.Thread.State: WAITING (on object monitor)
              at java.lang.Object.wait(Native Method)
              - waiting on <0x8c5eac68> (a java.util.ArrayList)
              at java.lang.Object.wait(Object.java:485)
              at com.sun.deploy.util.Trace$TraceMsgQueueChecker.run(Unknown Source)
              - locked <0x8c5eac68> (a java.util.ArrayList)
              at java.lang.Thread.run(Unknown Source)

      "CacheCleanUpThread" daemon prio=10 tid=0x08142800 nid=0x5537 in Object.wait() [0xb53a7000..0xb53a80e0]
         java.lang.Thread.State: WAITING (on object monitor)
              at java.lang.Object.wait(Native Method)
              - waiting on <0x8c5ea300> (a com.sun.deploy.cache.CleanupThread)
              at java.lang.Object.wait(Object.java:485)
              at com.sun.deploy.cache.CleanupThread.run(Unknown Source)
              - locked <0x8c5ea300> (a com.sun.deploy.cache.CleanupThread)

      "AWT-XAWT" daemon prio=10 tid=0x0812cc00 nid=0x5534 runnable [0xb540f000..0xb5410060]
         java.lang.Thread.State: RUNNABLE
              at sun.awt.X11.XToolkit.waitForEvents(Native Method)
              at sun.awt.X11.XToolkit.run(Unknown Source)
              at sun.awt.X11.XToolkit.run(Unknown Source)
              at java.lang.Thread.run(Unknown Source)

      "Java2D Disposer" daemon prio=10 tid=0x080e1c00 nid=0x5533 in Object.wait() [0xb5471000..0xb5471fe0]
         java.lang.Thread.State: WAITING (on object monitor)
              at java.lang.Object.wait(Native Method)
              - waiting on <0x8c5a6f58> (a java.lang.ref.ReferenceQueue$Lock)
              at java.lang.ref.ReferenceQueue.remove(Unknown Source)
              - locked <0x8c5a6f58> (a java.lang.ref.ReferenceQueue$Lock)
              at java.lang.ref.ReferenceQueue.remove(Unknown Source)
              at sun.java2d.Disposer.run(Unknown Source)
              at java.lang.Thread.run(Unknown Source)

      "Low Memory Detector" daemon prio=10 tid=0x08086000 nid=0x5531 runnable [0x00000000..0x00000000]
         java.lang.Thread.State: RUNNABLE

      "CompilerThread0" daemon prio=10 tid=0x08084400 nid=0x5530 waiting on condition [0x00000000..0xb5b328f8]
         java.lang.Thread.State: RUNNABLE

      "Signal Dispatcher" daemon prio=10 tid=0x08083000 nid=0x552f runnable [0x00000000..0x00000000]
         java.lang.Thread.State: RUNNABLE

      "Finalizer" daemon prio=10 tid=0x0807b400 nid=0x552e in Object.wait() [0xb5bd4000..0xb5bd5160]
         java.lang.Thread.State: WAITING (on object monitor)
              at java.lang.Object.wait(Native Method)
              - waiting on <0x8c5a7140> (a java.lang.ref.ReferenceQueue$Lock)
              at java.lang.ref.ReferenceQueue.remove(Unknown Source)
              - locked <0x8c5a7140> (a java.lang.ref.ReferenceQueue$Lock)
              at java.lang.ref.ReferenceQueue.remove(Unknown Source)
              at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source)

      "Reference Handler" daemon prio=10 tid=0x0807a400 nid=0x552d in Object.wait() [0xb5c25000..0xb5c260e0]
         java.lang.Thread.State: WAITING (on object monitor)
              at java.lang.Object.wait(Native Method)
              - waiting on <0x8c5a6dd8> (a java.lang.ref.Reference$Lock)
              at java.lang.Object.wait(Object.java:485)
              at java.lang.ref.Reference$ReferenceHandler.run(Unknown Source)
              - locked <0x8c5a6dd8> (a java.lang.ref.Reference$Lock)

      "main" prio=10 tid=0x08052000 nid=0x552b runnable [0xbf8c0000..0xbf8c1058]
         java.lang.Thread.State: RUNNABLE
              at java.io.FileInputStream.read(Native Method)
              at java.io.DataInputStream.readInt(Unknown Source)
              at sun.plugin.navig.motif.Plugin.doit(Unknown Source)
              at sun.plugin.navig.motif.Plugin.start(Unknown Source)

      "VM Thread" prio=10 tid=0x08070c00 nid=0x552c runnable

      "VM Periodic Task Thread" prio=10 tid=0x08087800 nid=0x5532 waiting on condition

      JNI global references: 1142

      -----
      (Deadlocks follow in next part)

            herrick Andy Herrick (Inactive)
            kbr Kenneth Russell (Inactive)
            Votes:
            0 Vote for this issue
            Watchers:
            3 Start watching this issue

              Created:
              Updated:
              Resolved:
              Imported:
              Indexed: