2010-08-26 122 views
6

我有一个桌面Java/Swing应用程序通过Java Webstart(客户端在XP上使用Java 6u20)进行部署。我收到了挂起应用程序用户的间歇性报告。我设法在挂起期间登录到这样的系统,发现UI未被绘制(就像EDT被阻止)。帮助理解jstack输出

我用jstack来列出线程;我没有看到任何关于输出的死锁,因为我对jstack很陌生,我不知道我应该找什么。

我不得不编辑堆栈跟踪以允许它适合在stackoverflow限制内,希望没有任何重要性被遗漏。

感谢,
菲尔

Full thread dump Java HotSpot(TM) Client VM (16.3-b01 mixed mode, sharing): 

"AWT-EventQueue-0" prio=6 tid=0x03e3f000 nid=0xe44 in Object.wait() [0x0516f000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    at java.lang.Object.wait(Object.java:485) 
    at java.awt.EventQueue.getNextEvent(Unknown Source) 
    - locked <0x1d4b91d8> (a java.awt.EventQueue) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
    <SNIP> 

    Locked ownable synchronizers: 
    - None 

"ServerThread" prio=6 tid=0x058f7c00 nid=0xa08 waiting for monitor entry [0x055be000] 
    java.lang.Thread.State: BLOCKED (on object monitor) 
    at com.sun.deploy.security.CPCallbackHandler$ParentCallback.check(Unknown Source) 
    - waiting to lock <0x1d485f80> (a com.sun.deploy.security.CPCallbackHandler$ParentCallback) 
    at com.sun.deploy.security.CPCallbackHandler$ParentCallback.access$1400(Unknown Source) 
    at com.sun.deploy.security.CPCallbackHandler$ChildElement.checkResource(Unknown Source) 
    at com.sun.deploy.security.DeployURLClassPath$JarLoader.checkResource(Unknown Source) 
    at com.sun.deploy.security.DeployURLClassPath$JarLoader.getResource(Unknown Source) 
    at com.sun.deploy.security.DeployURLClassPath$JarLoader.findResource(Unknown Source) 
    at com.sun.deploy.security.DeployURLClassPath.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 com.sun.jnlp.JNLPClassLoader.findResource(Unknown Source) 
    at java.lang.ClassLoader.getResource(Unknown Source) 
    at com.sun.jnlp.JNLPClassLoader.access$001(Unknown Source) 
    at com.sun.jnlp.JNLPClassLoader$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at com.sun.jnlp.JNLPClassLoader.getResource(Unknown Source) 
    at java.lang.ClassLoader.getResourceAsStream(Unknown Source) 
    at java.util.ResourceBundle$Control$1.run(Unknown Source) 
    at java.util.ResourceBundle$Control$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.util.ResourceBundle$Control.newBundle(Unknown Source) 
    at java.util.ResourceBundle.loadBundle(Unknown Source) 
    at java.util.ResourceBundle.findBundle(Unknown Source) 
    at java.util.ResourceBundle.findBundle(Unknown Source) 
    at java.util.ResourceBundle.getBundleImpl(Unknown Source) 
    at java.util.ResourceBundle.getBundle(Unknown Source) 
    at org.apache.derby.iapi.services.i18n.MessageService.getBundleWithEnDefault(Unknown Source) 
    at org.apache.derby.iapi.services.i18n.MessageService.getBundleForLocale(Unknown Source) 
    at org.apache.derby.impl.services.monitor.BaseMonitor.getBundle(Unknown Source) 
    at org.apache.derby.iapi.services.i18n.MessageService.getBundle(Unknown Source) 
    at org.apache.derby.iapi.services.i18n.MessageService.getCompleteMessage(Unknown Source) 
    at org.apache.derby.impl.jdbc.Util.newEmbedSQLException(Unknown Source) 
    at org.apache.derby.impl.jdbc.Util.javaException(Unknown Source) 
    at org.apache.derby.impl.jdbc.TransactionResourceImpl.wrapInSQLException(Unknown Source) 
    at org.apache.derby.impl.jdbc.TransactionResourceImpl.handleException(Unknown Source) 
    at org.apache.derby.impl.jdbc.EmbedConnection.handleException(Unknown Source) 
    at org.apache.derby.impl.jdbc.ConnectionChild.handleException(Unknown Source) 
    at org.apache.derby.impl.jdbc.EmbedPreparedStatement.<init>(Unknown Source) 
    at org.apache.derby.impl.jdbc.EmbedPreparedStatement20.<init>(Unknown Source) 
    at org.apache.derby.impl.jdbc.EmbedPreparedStatement30.<init>(Unknown Source) 
    at org.apache.derby.impl.jdbc.EmbedPreparedStatement40.<init>(Unknown Source) 
    at org.apache.derby.jdbc.Driver40.newEmbedPreparedStatement(Unknown Source) 
    at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source) 
    - locked <0x1c233300> (a org.apache.derby.impl.jdbc.EmbedConnection40) 
    at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source) 
    <SNIP> 

    Locked ownable synchronizers: 
    - None 

"ServerThread" prio=6 tid=0x058e7800 nid=0x2c0 waiting for monitor entry [0x082de000] 
    java.lang.Thread.State: BLOCKED (on object monitor) 
    at com.sun.deploy.security.CPCallbackHandler$ParentCallback.check(Unknown Source) 
    - waiting to lock <0x1d485f80> (a com.sun.deploy.security.CPCallbackHandler$ParentCallback) 
    at com.sun.deploy.security.CPCallbackHandler$ParentCallback.access$1400(Unknown Source) 
    <SNIP> 
    at org.apache.derby.jdbc.Driver40.newEmbedPreparedStatement(Unknown Source) 
    at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source) 
    - locked <0x1c1bf748> (a org.apache.derby.impl.jdbc.EmbedConnection40) 
    at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source) 
    at com.foo.myapp.dataaccess.sql.PriceSql.<init>(PriceSql.java:120) 
    at com.foo.myapp.dataaccess.sql.SqlServer.<init>(SqlServer.java:124) 
    at com.foo.myapp.dataaccess.socket.ServerThread.run(ServerThread.java:154) 

    Locked ownable synchronizers: 
    - None 

"ServerThread" prio=6 tid=0x04337000 nid=0xff4 waiting for monitor entry [0x0828e000] 
    java.lang.Thread.State: BLOCKED (on object monitor) 
    at com.sun.deploy.security.CPCallbackHandler$ParentCallback.check(Unknown Source) 
    - waiting to lock <0x1d485f80> (a com.sun.deploy.security.CPCallbackHandler$ParentCallback) 
    at com.sun.deploy.security.CPCallbackHandler$ParentCallback.access$1400(Unknown Source) 
    <SNIP> 
    at org.apache.derby.jdbc.Driver40.newEmbedPreparedStatement(Unknown Source) 
    at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source) 
    - locked <0x1c176a80> (a org.apache.derby.impl.jdbc.EmbedConnection40) 
    at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source) 
    at com.foo.myapp.dataaccess.sql.PriceSql.<init>(PriceSql.java:201) 
    at com.foo.myapp.dataaccess.sql.SqlServer.<init>(SqlServer.java:124) 
    at com.foo.myapp.dataaccess.socket.ServerThread.run(ServerThread.java:154) 

    Locked ownable synchronizers: 
    - None 

"ServerThread" prio=6 tid=0x05913400 nid=0xd5c in Object.wait() [0x0823e000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    at java.lang.Object.wait(Object.java:485) 
    at com.sun.javaws.ui.JavawsSysRun.delegate(Unknown Source) 
    - locked <0x1d430890> (a java.lang.Object) 
    at com.sun.deploy.util.DeploySysRun.execute(Unknown Source) 
    at com.sun.deploy.util.DeploySysRun$1.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at com.sun.deploy.util.DeploySysRun.executePrivileged(Unknown Source) 
    at com.sun.deploy.ui.UIFactory.showMixedCodeDialog(Unknown Source) 
    at com.sun.deploy.security.CPCallbackHandler.showMixedTrustDialog(Unknown Source) 
    at com.sun.deploy.security.CPCallbackHandler.access$1000(Unknown Source) 
    <SNIP> 
    at com.foo.myapp.dataaccess.sql.SqlServer.<init>(SqlServer.java:124) 
    at com.foo.myapp.dataaccess.socket.ServerThread.run(ServerThread.java:154) 

    Locked ownable synchronizers: 
    - None 

"ServerThread" prio=6 tid=0x043bd400 nid=0xb44 waiting for monitor entry [0x081ee000] 
    java.lang.Thread.State: BLOCKED (on object monitor) 
    at com.sun.deploy.security.CPCallbackHandler$ParentCallback.check(Unknown Source) 
    - waiting to lock <0x1d485f80> (a com.sun.deploy.security.CPCallbackHandler$ParentCallback) 
    at com.sun.deploy.security.CPCallbackHandler$ParentCallback.access$1400(Unknown Source) 
    <SNIP> 
    at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source) 
    - locked <0x1c01d1f0> (a org.apache.derby.impl.jdbc.EmbedConnection40) 
    at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source) 
    at com.foo.myapp.dataaccess.sql.SkuSql.<init>(SkuSql.java:539) 
    at com.foo.myapp.dataaccess.sql.TransactionEntrySql.<init>(TransactionEntrySql.java:143) 
    at com.foo.myapp.dataaccess.sql.SqlServer.<init>(SqlServer.java:137) 
    at com.foo.myapp.dataaccess.socket.ServerThread.run(ServerThread.java:154) 

    Locked ownable synchronizers: 
    - None 

"ServerThread" prio=6 tid=0x0438a800 nid=0xccc waiting for monitor entry [0x0819e000] 
    java.lang.Thread.State: BLOCKED (on object monitor) 
    at com.sun.deploy.security.CPCallbackHandler$ParentCallback.check(Unknown Source) 
    - waiting to lock <0x1d485f80> (a com.sun.deploy.security.CPCallbackHandler$ParentCallback) 
    at com.sun.deploy.security.CPCallbackHandler$ParentCallback.access$1400(Unknown Source) 
    <SNIP> 
    at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source) 
    - locked <0x1b043cb0> (a org.apache.derby.impl.jdbc.EmbedConnection40) 
    at org.apache.derby.impl.jdbc.EmbedConnection.prepareStatement(Unknown Source) 
    at com.foo.myapp.dataaccess.sql.HierarchyGroupSql.<init>(HierarchyGroupSql.java:53) 
    at com.foo.myapp.dataaccess.sql.SqlServer.<init>(SqlServer.java:144) 
    at com.foo.myapp.dataaccess.socket.ServerThread.run(ServerThread.java:154) 

    Locked ownable synchronizers: 
    - None 

"ServerThread" prio=6 tid=0x04324c00 nid=0x214 waiting for monitor entry [0x0814e000] 
    java.lang.Thread.State: BLOCKED (on object monitor) 
    at com.sun.deploy.security.CPCallbackHandler$ParentCallback.check(Unknown Source) 
    - waiting to lock <0x1d485f80> (a com.sun.deploy.security.CPCallbackHandler$ParentCallback) 
    at com.sun.deploy.security.CPCallbackHandler$ParentCallback.access$1400(Unknown Source) 
    <SNIP> 
    at org.apache.derby.impl.jdbc.EmbedStatement.executeStatement(Unknown Source) 
    - locked <0x1bc4c8b8> (a org.apache.derby.impl.jdbc.EmbedConnection40) 
    at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeStatement(Unknown Source) 
    at org.apache.derby.impl.jdbc.EmbedPreparedStatement.executeQuery(Unknown Source) 
    at com.foo.myapp.dataaccess.sql.SkuSql.updateProductDescriptors(SkuSql.java:1050) 
    at com.foo.myapp.dataaccess.sql.SkuSql.run(SkuSql.java:918) 
    at com.foo.myapp.dataaccess.sql.SqlServerBase.exec(SqlServerBase.java:68) 
    at com.foo.myapp.dataaccess.socket.ServerThread.processTransaction(ServerThread.java:215) 
    at com.foo.myapp.dataaccess.socket.ServerThread.run(ServerThread.java:161) 

    Locked ownable synchronizers: 
    - None 

"Timer-1232" prio=6 tid=0x042e5400 nid=0xcbc in Object.wait() [0x080ff000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    at java.lang.Object.wait(Object.java:485) 
    at java.util.TimerThread.mainLoop(Unknown Source) 
    - locked <0x1b849c78> (a java.util.TaskQueue) 
    at java.util.TimerThread.run(Unknown Source) 

    Locked ownable synchronizers: 
    - None 

"Timer-1225" prio=6 tid=0x04227800 nid=0xcc in Object.wait() [0x0800f000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    at java.lang.Object.wait(Object.java:485) 
    at java.util.TimerThread.mainLoop(Unknown Source) 
    - locked <0x1b5147f8> (a java.util.TaskQueue) 
    at java.util.TimerThread.run(Unknown Source) 

    Locked ownable synchronizers: 
    - None 

"Timer-1200" prio=6 tid=0x041bec00 nid=0x9cc in Object.wait() [0x080af000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    at java.lang.Object.wait(Object.java:485) 
    at java.util.TimerThread.mainLoop(Unknown Source) 
    - locked <0x1a977a20> (a java.util.TaskQueue) 
    at java.util.TimerThread.run(Unknown Source) 

    Locked ownable synchronizers: 
    - None 


[SNIPPED about 70 Timer tasks] 


"AWT-EventQueue-1" prio=6 tid=0x0420c800 nid=0xdb4 in Object.wait() [0x0729f000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    at java.lang.Object.wait(Object.java:485) 
    at java.awt.EventQueue.getNextEvent(Unknown Source) 
    - locked <0x1d492480> (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.SequencedEvent.dispatch(Unknown Source) 
    at java.awt.EventQueue.dispatchEvent(Unknown Source) 
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source) 
    at java.awt.Dialog$1.run(Unknown Source) 
    at java.awt.Dialog$3.run(Unknown Source) 
    at java.security.AccessController.doPrivileged(Native Method) 
    at java.awt.Dialog.show(Unknown Source) 
    at java.awt.Component.show(Unknown Source) 
    at java.awt.Component.setVisible(Unknown Source) 
    at java.awt.Window.setVisible(Unknown Source) 
    at java.awt.Dialog.setVisible(Unknown Source) 
    at com.sun.deploy.ui.DialogTemplate$12.run(Unknown Source) 
    at java.awt.event.InvocationEvent.dispatch(Unknown Source) 
    at java.awt.EventQueue.dispatchEvent(Unknown Source) 
    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) 

    Locked ownable synchronizers: 
    - None 

"SwingWorker-pool-1-thread-1" daemon prio=6 tid=0x03d23400 nid=0xf18 waiting on condition [0x031bf000] 
    java.lang.Thread.State: WAITING (parking) 
    at sun.misc.Unsafe.park(Native Method) 
    - parking to wait for <0x22294b78> (a java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject) 
    at java.util.concurrent.locks.LockSupport.park(Unknown Source) 
    at java.util.concurrent.locks.AbstractQueuedSynchronizer$ConditionObject.await(Unknown Source) 
    at java.util.concurrent.LinkedBlockingQueue.take(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor.getTask(Unknown Source) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

    Locked ownable synchronizers: 
    - None 

"Thread-24" prio=6 tid=0x03f1cc00 nid=0xe20 runnable [0x0565f000] 
    java.lang.Thread.State: RUNNABLE 
    at java.net.PlainSocketImpl.socketAccept(Native Method) 
    at java.net.PlainSocketImpl.accept(Unknown Source) 
    - locked <0x1fc03898> (a java.net.SocksSocketImpl) 
    at java.net.ServerSocket.implAccept(Unknown Source) 
    at java.net.ServerSocket.accept(Unknown Source) 
    at com.foo.myapp.ApplicationRunner$6.run(ApplicationRunner.java:962) 
    at java.lang.Thread.run(Unknown Source) 

    Locked ownable synchronizers: 
    - None 

"Thread-20" prio=6 tid=0x03f2c800 nid=0xba8 waiting on condition [0x0551f000] 
    java.lang.Thread.State: TIMED_WAITING (sleeping) 
    at java.lang.Thread.sleep(Native Method) 
    at com.foo.myapp.UserActivityMonitor.run(UserActivityMonitor.java:42) 

    Locked ownable synchronizers: 
    - None 


"TimerQueue" daemon prio=6 tid=0x02d34400 nid=0x9d8 in Object.wait() [0x04c8f000] 
    java.lang.Thread.State: TIMED_WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    at javax.swing.TimerQueue.run(Unknown Source) 
    - locked <0x1ea5c8d0> (a javax.swing.TimerQueue) 
    at java.lang.Thread.run(Unknown Source) 

    Locked ownable synchronizers: 
    - None 

"derby.rawStoreDaemon" daemon prio=6 tid=0x03ec8000 nid=0x584 in Object.wait() [0x0525f000] 
    java.lang.Thread.State: TIMED_WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    at org.apache.derby.impl.services.daemon.BasicDaemon.rest(Unknown Source) 
    - locked <0x1da8f898> (a org.apache.derby.impl.services.daemon.BasicDaemon) 
    at org.apache.derby.impl.services.daemon.BasicDaemon.run(Unknown Source) 
    at java.lang.Thread.run(Unknown Source) 

    Locked ownable synchronizers: 
    - None 

"Timer-1" daemon prio=6 tid=0x03ec3000 nid=0x2cc in Object.wait() [0x0520f000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x1d816590> (a java.util.TaskQueue) 
    at java.lang.Object.wait(Object.java:485) 
    at java.util.TimerThread.mainLoop(Unknown Source) 
    - locked <0x1d816590> (a java.util.TaskQueue) 
    at java.util.TimerThread.run(Unknown Source) 

    Locked ownable synchronizers: 
    - None 

"derby.antiGC" daemon prio=2 tid=0x03e84000 nid=0xf70 in Object.wait() [0x051bf000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x1d804090> (a org.apache.derby.impl.services.monitor.AntiGC) 
    at java.lang.Object.wait(Object.java:485) 
    at org.apache.derby.impl.services.monitor.AntiGC.run(Unknown Source) 
    - locked <0x1d804090> (a org.apache.derby.impl.services.monitor.AntiGC) 
    at java.lang.Thread.run(Unknown Source) 

    Locked ownable synchronizers: 
    - None 

"Timer-0" prio=6 tid=0x03e71800 nid=0x7c in Object.wait() [0x0511f000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x1d7e7b08> (a java.util.TaskQueue) 
    at java.lang.Object.wait(Object.java:485) 
    at java.util.TimerThread.mainLoop(Unknown Source) 
    - locked <0x1d7e7b08> (a java.util.TaskQueue) 
    at java.util.TimerThread.run(Unknown Source) 

    Locked ownable synchronizers: 
    - None 

"AWT-Shutdown" prio=6 tid=0x03f58000 nid=0xad0 in Object.wait() [0x04bdf000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    at java.lang.Object.wait(Object.java:485) 
    at sun.awt.AWTAutoShutdown.run(Unknown Source) 
    - locked <0x1d480cc8> (a java.lang.Object) 
    at java.lang.Thread.run(Unknown Source) 

    Locked ownable synchronizers: 
    - None 

"NativeSwing Receiver - Swing" daemon prio=6 tid=0x03ed7400 nid=0x80c runnable [0x03dff000] 
    java.lang.Thread.State: RUNNABLE 
    at java.net.SocketInputStream.socketRead0(Native Method) 
    at java.net.SocketInputStream.read(Unknown Source) 
    at java.io.BufferedInputStream.fill(Unknown Source) 
    at java.io.BufferedInputStream.read(Unknown Source) 
    - locked <0x1d840e50> (a java.io.BufferedInputStream) 
    at java.io.ObjectInputStream$PeekInputStream.peek(Unknown Source) 
    at java.io.ObjectInputStream$BlockDataInputStream.peek(Unknown Source) 
    at java.io.ObjectInputStream$BlockDataInputStream.peekByte(Unknown Source) 
    at java.io.ObjectInputStream.readObject0(Unknown Source) 
    at java.io.ObjectInputStream.readUnshared(Unknown Source) 
    at chrriis.dj.nativeswing.swtimpl.OutProcessMessagingInterface.readMessageFromChannel(OutProcessMessagingInterface.java:113) 
    at chrriis.dj.nativeswing.swtimpl.MessagingInterface$2.run(MessagingInterface.java:329) 

    Locked ownable synchronizers: 
    - None 

"NativeSwing Stream Connector" daemon prio=6 tid=0x03ca6800 nid=0xf30 runnable [0x03daf000] 
    java.lang.Thread.State: RUNNABLE 
    at java.io.FileInputStream.readBytes(Native Method) 
    at java.io.FileInputStream.read(Unknown Source) 
    at java.io.BufferedInputStream.read1(Unknown Source) 
    at java.io.BufferedInputStream.read(Unknown Source) 
    - locked <0x1d83c338> (a java.io.BufferedInputStream) 
    at java.io.BufferedInputStream.fill(Unknown Source) 
    at java.io.BufferedInputStream.read1(Unknown Source) 
    at java.io.BufferedInputStream.read(Unknown Source) 
    - locked <0x1d83c358> (a java.io.BufferedInputStream) 
    at java.io.FilterInputStream.read(Unknown Source) 
    at chrriis.dj.nativeswing.swtimpl.NativeInterface$OutProcess$1.run(NativeInterface.java:696) 

    Locked ownable synchronizers: 
    - None 

"NativeSwing Stream Connector" daemon prio=6 tid=0x03ca6400 nid=0xdf4 runnable [0x0382f000] 
    java.lang.Thread.State: RUNNABLE 
    at java.io.FileInputStream.readBytes(Native Method) 
    at java.io.FileInputStream.read(Unknown Source) 
    at java.io.BufferedInputStream.fill(Unknown Source) 
    at java.io.BufferedInputStream.read1(Unknown Source) 
    at java.io.BufferedInputStream.read(Unknown Source) 
    - locked <0x1d83e840> (a java.io.BufferedInputStream) 
    at java.io.FilterInputStream.read(Unknown Source) 
    at chrriis.dj.nativeswing.swtimpl.NativeInterface$OutProcess$1.run(NativeInterface.java:696) 

    Locked ownable synchronizers: 
    - None 

"WebServer" daemon prio=6 tid=0x03caa800 nid=0x464 runnable [0x037cf000] 
    java.lang.Thread.State: RUNNABLE 
    at java.net.PlainSocketImpl.socketAccept(Native Method) 
    at java.net.PlainSocketImpl.accept(Unknown Source) 
    - locked <0x1d83ed08> (a java.net.SocksSocketImpl) 
    at java.net.ServerSocket.implAccept(Unknown Source) 
    at java.net.ServerSocket.accept(Unknown Source) 
    at chrriis.common.WebServer$1.run(WebServer.java:719) 

    Locked ownable synchronizers: 
    - None 

"TimerQueue" daemon prio=6 tid=0x036c3800 nid=0x304 in Object.wait() [0x038ef000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x1d430658> (a javax.swing.TimerQueue) 
    at javax.swing.TimerQueue.run(Unknown Source) 
    - locked <0x1d430658> (a javax.swing.TimerQueue) 
    at java.lang.Thread.run(Unknown Source) 

    Locked ownable synchronizers: 
    - None 

"CacheCleanUpThread" daemon prio=6 tid=0x02dd3000 nid=0xa0 in Object.wait() [0x034af000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    - waiting on <0x1d430698> (a com.sun.deploy.cache.CleanupThread) 
    at java.lang.Object.wait(Object.java:485) 
    at com.sun.deploy.cache.CleanupThread.run(Unknown Source) 
    - locked <0x1d430698> (a com.sun.deploy.cache.CleanupThread) 

    Locked ownable synchronizers: 
    - None 

"CacheMemoryCleanUpThread" daemon prio=6 tid=0x02dd1800 nid=0x14c in Object.wait() [0x0345f000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    at java.lang.ref.ReferenceQueue.remove(Unknown Source) 
    - locked <0x1d430790> (a java.lang.ref.ReferenceQueue$Lock) 
    at java.lang.ref.ReferenceQueue.remove(Unknown Source) 
    at com.sun.deploy.cache.MemoryCache$LoadedResourceCleanupThread.run(Unknown Source) 

    Locked ownable synchronizers: 
    - None 

"DestroyJavaVM" prio=6 tid=0x003a8800 nid=0xc00 waiting on condition [0x00000000] 
    java.lang.Thread.State: RUNNABLE 

    Locked ownable synchronizers: 
    - None 

"Javaws Secure Thread" daemon prio=6 tid=0x02dca400 nid=0x750 in Object.wait() [0x033bf000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    at java.lang.Object.wait(Object.java:485) 
    at java.awt.EventQueue.invokeAndWait(Unknown Source) 
    - locked <0x32961e48> (a java.awt.EventQueue$1AWTInvocationLock) 
    at javax.swing.SwingUtilities.invokeAndWait(Unknown Source) 
    at com.sun.deploy.ui.DialogTemplate.setVisible(Unknown Source) 
    at com.sun.deploy.ui.UIFactory$8.execute(Unknown Source) 
    at com.sun.javaws.ui.JavawsSysRun$SecureThread.doWork(Unknown Source) 
    at com.sun.javaws.ui.JavawsSysRun$SecureThread.run(Unknown Source) 
    - locked <0x1d430890> (a java.lang.Object) 

    Locked ownable synchronizers: 
    - None 

"AWT-Windows" daemon prio=6 tid=0x02dc8c00 nid=0xa28 runnable [0x00a0f000] 
    java.lang.Thread.State: RUNNABLE 
    at sun.awt.windows.WToolkit.eventLoop(Native Method) 
    at sun.awt.windows.WToolkit.run(Unknown Source) 

    Locked ownable synchronizers: 
    - None 

"Java2D Disposer" daemon prio=10 tid=0x02dc6800 nid=0xad4 in Object.wait() [0x032cf000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    at java.lang.ref.ReferenceQueue.remove(Unknown Source) 
    - locked <0x1d430968> (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) 

    Locked ownable synchronizers: 
    - None 

"traceMsgQueueThread" daemon prio=6 tid=0x02d3ec00 nid=0xf74 in Object.wait() [0x0322f000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    at java.lang.Object.wait(Object.java:485) 
    at com.sun.deploy.util.Trace$TraceMsgQueueChecker.run(Unknown Source) 
    - locked <0x1d4309f8> (a java.util.ArrayList) 
    at java.lang.Thread.run(Unknown Source) 

    Locked ownable synchronizers: 
    - None 

"Low Memory Detector" daemon prio=6 tid=0x02d0f400 nid=0x6dc runnable [0x00000000] 
    java.lang.Thread.State: RUNNABLE 

    Locked ownable synchronizers: 
    - None 

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

    Locked ownable synchronizers: 
    - None 

"Attach Listener" daemon prio=10 tid=0x02d07c00 nid=0xf60 waiting on condition [0x00000000] 
    java.lang.Thread.State: RUNNABLE 

    Locked ownable synchronizers: 
    - None 

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

    Locked ownable synchronizers: 
    - None 

"Finalizer" daemon prio=8 tid=0x02cfec00 nid=0x290 in Object.wait() [0x02ecf000] 
    java.lang.Thread.State: WAITING (on object monitor) 
    at java.lang.Object.wait(Native Method) 
    at java.lang.ref.ReferenceQueue.remove(Unknown Source) 
    - locked <0x1d430c20> (a java.lang.ref.ReferenceQueue$Lock) 
    at java.lang.ref.ReferenceQueue.remove(Unknown Source) 
    at java.lang.ref.Finalizer$FinalizerThread.run(Unknown Source) 

    Locked ownable synchronizers: 
    - None 

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

    Locked ownable synchronizers: 
    - None 

"VM Thread" prio=10 tid=0x02cfc000 nid=0xc30 runnable 

"VM Periodic Task Thread" prio=10 tid=0x02d1a000 nid=0x840 waiting on condition 

JNI global references: 2314 

回答

1

你可能遇到的bug 6960427,这是对报道1.6.0_20(死锁问题)。

是否确定发布的堆栈跟踪已完成?您有几个线程正在等待锁定在0x1d485f80上,但没有在该监视器上实际锁定的线程。

+0

它似乎是一个不同的锁造成的问题,但相关。 – 2010-08-26 15:32:13

+0

您好,对于延迟回复表示歉意,我现在只需阅读回复。关于0x1d485f80上的锁,我将这一切都修剪好了,它正在由线程0x05913400保存。它看起来如下:\t - 锁定<0x1d485f80>(一个com.sun.deploy.security.CPCallbackHandler $ ParentCallback) – PhilDin 2010-09-06 09:06:45

+0

[请忽略上述评论,这是预期的]嗨,道歉延迟回复,我刚刚现在阅读回复。关于0x1d485f80上的锁,我将这一切都修剪好了,它正在由线程0x05913400保存。它看起来如下:\t - 锁定<0x1d485f80>(一com.sun.deploy.security.CPCallbackHandler $ ParentCallback)我说得对在训释这意味着被锁定对象的类型是ParentCallback?它看起来类似于错误6960427,但我注意到在错误报告中,它在最后列出了一个死锁,我的jstack输出没有识别任何错误。 – PhilDin 2010-09-06 09:17:26

1

有自称

- waiting to lock <0x1d485f80> (a com.sun.deploy.security.CPCallbackHandler$ParentCallback) 

很多线程的是,在剪断输出召开地方?

看起来像你故意混合可信和不可信代码(“混合代码”),这是一件坏事。从6月19日显示一个警告对话框(实际上应该自动阻止尝试,但似乎有大量的代码利用该错误)。这是警告对话框,似乎是导致问题。

要解决问题,请不要混用可信代码和不可信代码。将“Trusted-Only:true”添加到每个jar的清单中是一个好主意。

+0

嗨汤姆,我遇到了可信/不可信代码警告的问题,但这不是故意的。我已经用自签名证书签署了所有的罐子(我自己的+第三方),所以我没有想到这会是一个问题。我可以问一下,如何从堆栈输出中得知这一点(是否是顶部的“16.3-b01混合模式,共享”行?)其次,您如何从输出中指出警告对话框是问题?谢谢。 – PhilDin 2010-09-06 09:42:31

+0

堆栈跟踪包括诸如'showMixedTrustDialog'之类的东西,其他线程在加载类时似乎在部署代码中被阻塞。 “16.3-b01混合模式,共享”是指HotSpot的版本(现在与JRE版本分离),它使用字节码编译器和解释器,共享的事实是“类数据共享”,这是使用'类。jsa文件,可以提供更快的启动性能。正如我所说的,如果您向您的清单中添加“Trusted-Only:true”,那么应该默默地防止加载不受信任的代码,无论是无意识的还是来自对手。 – 2010-09-06 12:21:48