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

Deadlock involving JNLPClassLoader

    XMLWordPrintable

    Details

      Description

      FULL PRODUCT VERSION :
      JRE 8u102 b14

      ADDITIONAL OS VERSION INFORMATION :
      MS Windows 10 OS

      A DESCRIPTION OF THE PROBLEM :
      The deadlock between locks on an instance of "com.sun.jnlp.JNLPClassLoader" class and a thread context class loader occurs during execution of Java Web Start application starting from JRE 8u102.

      ERROR MESSAGES/STACK TRACES THAT OCCUR :

      ---------- Call stacks of 2 threads blocking each other ----------
      Found one Java-level deadlock:
      =============================
      "<APPLICATION_THREAD>":
        waiting to lock monitor 0x45dda9ec (object 0x1ae44d00, a com.sun.jnlp.JNLPClassLoader),
        which is held by "javawsApplicationMain"
      "javawsApplicationMain":
        waiting to lock monitor 0x45ddb23c (object 0x1af0bc80, a com.sun.jnlp.JNLPClassLoader),
        which is held by "<APPLICATION_THREAD>"

      Java stack information for the threads listed above:
      ===================================================
      "<APPLICATION_THREAD>":
              at com.sun.deploy.security.DeployURLClassPath.getLoader(Unknown Source)
              - waiting to lock <0x1ae44d00> (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 <0x1af0bc80> (a com.sun.jnlp.JNLPClassLoader)
              at com.sun.jnlp.JNLPClassLoader.loadClass(Unknown Source)
              at java.lang.ClassLoader.loadClass(Unknown Source)
              at <APPLICATION_PACKAGE>.AbstractActionProcessor$ActionProcessorSysBean.getSysBeanAttributes(AbstractActionProcessor.java:790)
              at <APPLICATION_PACKAGE>.SysBeanAdapter.<init>(SysBeanAdapter.java:37)
              at <APPLICATION_PACKAGE>.SysBeanAdapterRegistry.addMBean(SysBeanAdapterRegistry.java:65)
              at <APPLICATION_PACKAGE>.SysBeanAdapterRegistry.add(SysBeanAdapterRegistry.java:35)
              at <APPLICATION_PACKAGE>.SysBeanAdapterRegistry.add(SysBeanAdapterRegistry.java:15)
              at <APPLICATION_PACKAGE>.AbstractActionProcessor.registerRegistry(AbstractActionProcessor.java:153)
              at <APPLICATION_PACKAGE>.AbstractActionProcessor.access$2300(AbstractActionProcessor.java:37)
              at <APPLICATION_PACKAGE>.AbstractActionProcessor$RegisterProcess.register(AbstractActionProcessor.java:1483)
              at <APPLICATION_PACKAGE>.AbstractActionProcessor$RegisterProcess.start(AbstractActionProcessor.java:1376)
              at <APPLICATION_PACKAGE>.AbstractActionProcessor.doProcess(AbstractActionProcessor.java:435)
              at <APPLICATION_PACKAGE>.AbstractActionProcessor.access$600(AbstractActionProcessor.java:37)
              at <APPLICATION_PACKAGE>.AbstractActionProcessor$2.execute(AbstractActionProcessor.java:588)
              at <APPLICATION_PACKAGE>.ExecutorScheduler$ExecuteCommand.run(ExecutorScheduler.java:123)
              at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source)
              at java.util.concurrent.FutureTask.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)
      "javawsApplicationMain":
              at java.lang.ClassLoader.loadClass(Unknown Source)
              - waiting to lock <0x1af0bc80> (a com.sun.jnlp.JNLPClassLoader)
              at com.sun.jnlp.JNLPClassLoader.loadClass(Unknown Source)
              at java.lang.ClassLoader.loadClass(Unknown Source)
              - locked <0x1ae44d00> (a com.sun.jnlp.JNLPClassLoader)
              at com.sun.jnlp.JNLPClassLoader.loadClass(Unknown Source)
              at java.lang.ClassLoader.loadClass(Unknown Source)
              at java.lang.Class.forName0(Native Method)
              at java.lang.Class.forName(Unknown Source)
              at javax.swing.SwingUtilities.loadSystemClass(Unknown Source)
              at javax.swing.UIDefaults.getUIClass(Unknown Source)
              at javax.swing.UIDefaults.getUI(Unknown Source)
              at javax.swing.UIManager.getUI(Unknown Source)
              at javax.swing.JPopupMenu.updateUI(Unknown Source)
              at javax.swing.JPopupMenu.<init>(Unknown Source)
              at javax.swing.JPopupMenu.<init>(Unknown Source)
              at javax.swing.plaf.basic.BasicComboPopup.<init>(Unknown Source)
              at javax.swing.plaf.basic.BasicComboBoxUI.createPopup(Unknown Source)
              at javax.swing.plaf.metal.MetalComboBoxUI.createPopup(Unknown Source)
              at javax.swing.plaf.basic.BasicComboBoxUI.installUI(Unknown Source)
              at javax.swing.JComponent.setUI(Unknown Source)
              at javax.swing.JComboBox.setUI(Unknown Source)
              at javax.swing.JComboBox.updateUI(Unknown Source)
              at javax.swing.JComboBox.init(Unknown Source)
              at javax.swing.JComboBox.<init>(Unknown Source)
              at <APPLICATION_PACKAGE>.GuiUtil.<clinit>(GuiUtil.java:51)
              at <APPLICATION_PACKAGE>.JavaClient.<init>(JavaClient.java:274)
              at <APPLICATION_PACKAGE>.JavaClient.main(JavaClient.java:541)
              at <APPLICATION_PACKAGE>.CMSExplorer.main(CMSExplorer.java:9)
              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>.Start.invokeStaticMethod(Start.java:111)
              at <APPLICATION_PACKAGE>.Start.main(Start.java:39)
              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 com.sun.javaws.Launcher.executeApplication(Unknown Source)
              at com.sun.javaws.Launcher.executeMainClass(Unknown Source)
              at com.sun.javaws.Launcher.doLaunchApp(Unknown Source)
              at com.sun.javaws.Launcher.run(Unknown Source)
              at java.lang.Thread.run(Unknown Source)

        Attachments

          Issue Links

            Activity

              People

              • Assignee:
                alitvinov Anton Litvinov
                Reporter:
                shadowbug Shadow Bug
              • Votes:
                0 Vote for this issue
                Watchers:
                2 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: