JDK-8163590 : Deadlock when launching WebStart app
  • Type: Bug
  • Component: deploy
  • Sub-Component: webstart
  • Affected Version: 7u111
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • OS: windows
  • Submitted: 2016-08-10
  • Updated: 2016-09-13
  • Resolved: 2016-08-18
Related Reports
Duplicate :  
Description
FULL PRODUCT VERSION :
JRE 7u111 b31

ADDITIONAL OS VERSION INFORMATION :
MS Windows 7 OS

A DESCRIPTION OF THE PROBLEM :
The deadlock occurs during execution of Java Web Start application.

ERROR MESSAGES/STACK TRACES THAT OCCUR :

---------- Call stacks of 3 threads blocking each other ----------
Found one Java-level deadlock:
=============================
"Thread-20":
  waiting to lock monitor 0x0a6d0044 (object 0x29950240, a com.sun.jnlp.JNLPClassLoader),
  which is held by "pool-1-thread-2"
"pool-1-thread-2":
  waiting to lock monitor 0x07e333f4 (object 0x29950428, a com.sun.jnlp.JNLPClassLoader),
  which is held by "AWT-EventQueue-2"
"AWT-EventQueue-2":
  waiting to lock monitor 0x0a6d0044 (object 0x29950240, a com.sun.jnlp.JNLPClassLoader),
  which is held by "pool-1-thread-2"

Java stack information for the threads listed above:
===================================================
"Thread-20":
        at java.lang.Class.getDeclaringClass0(Native Method)
        at java.lang.Class.getDeclaringClass(Unknown Source)
        at java.lang.Class.getEnclosingClass(Unknown Source)
        at java.lang.Class.getCanonicalName(Unknown Source)
        at sun.net.www.protocol.https.HttpsClient.afterConnect(Unknown Source)
        at sun.net.www.protocol.https.AbstractDelegateHttpsURLConnection.connect(Unknown Source)
        at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
        - locked <0x24f65f68> (a sun.net.www.protocol.https.DelegateHttpsURLConnection)
        at sun.net.www.protocol.http.HttpURLConnection.getHeaderField(Unknown Source)
        at java.net.HttpURLConnection.getHeaderFieldDate(Unknown Source)
        at java.net.URLConnection.getLastModified(Unknown Source)
        at sun.net.www.protocol.https.HttpsURLConnectionImpl.getLastModified(Unknown Source)
        at com.sun.deploy.util.SecurityBaseline.checkForUpdate(Unknown Source)
        at com.sun.deploy.util.SecurityBaseline.access$100(Unknown Source)
        at com.sun.deploy.util.SecurityBaseline$1.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
"pool-1-thread-2":
        at java.lang.ClassLoader.loadClass(Unknown Source)
        - waiting to lock <0x29950428> (a com.sun.jnlp.JNLPClassLoader)
        at com.sun.jnlp.JNLPClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        - locked <0x29950240> (a com.sun.jnlp.JNLPClassLoader)
        at com.sun.jnlp.JNLPClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at <APPLICATION_CLASS>.ladeBenutzerPostkoerbe(Unknown Source)
        at <APPLICATION_CLASS>.ladePostkoerbeDesBenutzersBD(Unknown Source)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
        at java.lang.reflect.Method.invoke(Unknown Source)
        at <APPLICATION_PACKAGE>.AbstractBasisPresentationModel$2.doInBackground(Unknown Source)
        at org.jdesktop.swingworker.SwingWorker$1.call(Unknown Source)
        at java.util.concurrent.FutureTask.run(Unknown Source)
        at org.jdesktop.swingworker.SwingWorker.run(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
        at java.lang.Thread.run(Unknown Source)
"AWT-EventQueue-2":
        at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)
        - waiting to lock <0x29950240> (a com.sun.jnlp.JNLPClassLoader)
        at com.sun.deploy.security.DeployURLClassPath.getResource(Unknown Source)
        at java.net.URLClassLoader$1.run(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 com.sun.jnlp.JNLPClassLoader.findClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        - locked <0x29950428> (a com.sun.jnlp.JNLPClassLoader)
        at com.sun.jnlp.JNLPClassLoader.loadClass(Unknown Source)
        at java.lang.ClassLoader.loadClass(Unknown Source)
        at org.bouncycastle.jcajce.provider.digest.MD5$Mappings.configure(Unknown Source)
        at org.bouncycastle.jce.provider.BouncyCastleProvider.loadAlgorithms(Unknown Source)
        at org.bouncycastle.jce.provider.BouncyCastleProvider.setup(Unknown Source)
        at org.bouncycastle.jce.provider.BouncyCastleProvider.access$000(Unknown Source)
        at org.bouncycastle.jce.provider.BouncyCastleProvider$1.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at org.bouncycastle.jce.provider.BouncyCastleProvider.<init>(Unknown Source)
        at <APPLICATION_PACKAGE>.DocumentCache.<init>(Unknown Source)
        at <APPLICATION_PACKAGE>.DocumentCache.getInstance(Unknown Source)
        - locked <0x24b635c8> (a java.lang.Class for <APPLICATION_PACKAGE>.DocumentCache)
        at <APPLICATION_CLASS>.ready(Unknown Source)
        at com.jgoodies.application.AbstractApplication$ReadyOnEmptyEventQueue.done(Unknown Source)
        at org.jdesktop.swingworker.SwingWorker$5.run(Unknown Source)
        at org.jdesktop.swingworker.SwingWorker$DoSubmitAccumulativeRunnable.run(Unknown Source)
        at org.jdesktop.swingworker.AccumulativeRunnable.run(Unknown Source)
        at org.jdesktop.swingworker.SwingWorker$DoSubmitAccumulativeRunnable.actionPerformed(Unknown Source)
        at javax.swing.Timer.fireActionPerformed(Unknown Source)
        at javax.swing.Timer$DoPostEvent.run(Unknown Source)
        at java.awt.event.InvocationEvent.dispatch(Unknown Source)
        at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
        at java.awt.EventQueue.access$300(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.awt.EventQueue$3.run(Unknown Source)
        at java.security.AccessController.doPrivileged(Native Method)
        at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(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)
Comments
The provided thread dump was analyzed. Though call stacks of blocked threads in this bug are different from call stacks of blocked threads in the bug JDK-8161700, the deadlocks in both bugs occur because of the same fix and partially in the same place. The user was provided with the custom build of JDK 7u111 compiled from the source code of JDK 7u111 b31 to which the fix for JDK-8161700 was added and the user confirmed that the bug could not be reproduced with the provided custom build of JDK 7u111. Closing the bug as a duplicate of JDK-8161700.
18-08-2016