2010-08-26 3 views
6

J'ai une application Java/Swing de bureau qui est déployée via Java Webstart (les clients utilisent Java 6u20 sous XP). J'ai reçu des rapports intermittents des utilisateurs de l'application suspendue. J'ai réussi à me connecter à un tel système au cours d'un blocage constaté que l'interface n'était pas en train d'être tirée (comme si EDT était bloqué). J'ai utilisé jstack pour lister les threads; Je ne vois aucune mention de deadlocks sur la sortie et depuis que je suis tout à fait nouveau à jstack je ne sais pas quoi d'autre je devrais rechercher.Aide à la compréhension de la sortie jstack

J'ai dû modifier la trace de la pile pour lui permettre de respecter les limites stackoverflow, je l'espère rien de significatif n'a été laissé.

Merci,
Phil

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 

Répondre

1

Vous avez probablement courir en bogue 6960427, qui a été signalé contre 1.6.0_20 (problème de verrouillage mort).

Etes-vous sûr que la trace de la pile affichée est terminée? Vous avez plusieurs threads en attente de verrouillage sur 0x1d485f80, mais pas de thread avec un verrou réel sur ce moniteur.

+0

Il semble que ce soit un verrou différent qui soit à l'origine du problème, mais apparenté. –

+0

Salut, excuses pour le retard dans la réponse, je viens de lire les réponses maintenant. En ce qui concerne le verrouillage sur 0x1d485f80, j'ai coupé ce droit, il est détenu par thread 0x05913400. Il ressemble à ce qui suit: \t - verrouillé <0x1d485f80> (un com.sun.deploy.security.CPCallbackHandler $ ParentCallback) – PhilDin

+0

[S'il vous plaît ignorer le commentaire ci-dessus, voici le prévu] Salut, excuses pour le retard dans la réponse, je viens de lire les réponses maintenant. En ce qui concerne le verrouillage sur 0x1d485f80, j'ai coupé ce droit, il est détenu par thread 0x05913400. Il se présente comme suit: \t - <0x1d485f80> verrouillé (un ParentCallback com.sun.deploy.security.CPCallbackHandler $) Ai-je raison interpretting cela signifie que le type d'objet verrouillé est un ParentCallback? Cela ressemble au bug 6960427 mais je remarque que dans le rapport de bug, il liste un blocage à la fin, ma sortie jstack n'en identifie aucune. – PhilDin

1

Il y a beaucoup de fil prétendant

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

Est-ce lieu quelque part dans la sortie snipped?

Il semble que vous mélangez intentionnellement le code de confiance et non fiable (« code mixte »), ce qui est une mauvaise chose. A partir de 6h19, une boîte de dialogue d'avertissement est affichée (la tentative devrait être automatiquement bloquée, mais il semble y avoir beaucoup de code qui exploite le bogue). C'est cette boîte de dialogue d'avertissement qui semble causer le problème.

Pour fixer, ne pas mélanger le code de confiance et non fiable. C'est une bonne idée d'ajouter "Trusted-Only: true" au manifeste de chaque pot.

+0

Salut Tom, J'ai eu des problèmes avec les avertissements de code de confiance/non fiables mais ce n'est pas intentionnel. J'ai signé tous les pots (le mien + troisième partie) avec un cert auto-signé, donc je ne m'attendais pas à ce que ce soit un problème. Puis-je vous demander comment vous pouvez le dire à partir de la sortie de la pile (est-ce la ligne 16.3-b01 en mode mixte, partage?) Deuxièmement, comment pouvez-vous dire à partir de la sortie que le dialogue d'avertissement est le problème? Merci. – PhilDin

+0

Les traces de la pile incluent des expressions telles que 'showMixedTrustDialog' et d'autres threads semblent bloquer dans le code de déploiement lors du chargement des classes. "16.3-b01 mode mixte, partage" se réfère à la version de HotSpot (maintenant découplée de la version JRE), le fait qu'il utilise à la fois le compilateur bytecode et l'interpréteur, et le partage est "Class Data Sharing" qui est l'utilisation de les 'classes.fichier jsa' qui accélère les performances de démarrage. Comme je l'ai dit, si vous ajoutez «Trusted-Only: true» à vos manifestes, cela devrait empêcher le chargement de code non fiable, qu'il soit involontaire ou hostile. –

Questions connexes