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

              alitvinov Anton Litvinov (Inactive)
              shadowbug Shadow Bug
              Votes:
              0 Vote for this issue
              Watchers:
              2 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved: