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

NPE with logging while launching webstart on jre7u40 if logging is disabled

XMLWordPrintable

    • b02
    • windows_xp
    • Verified

        FULL PRODUCT VERSION :
        Java Web Start 10.40.2.43
        Using JRE version 1.7.0_40-b43 Java HotSpot(TM) Client VM

        ADDITIONAL OS VERSION INFORMATION :
        Microsoft Windows XP [Version 5.1.2600]

        A DESCRIPTION OF THE PROBLEM :
        My application was running fine until i upgraded my jre to 7u40. When my application is initializing its doing Logger.getLogger("ClassName"), i am getting following exception.

        java.lang.ExceptionInInitializerError
            at java.util.logging.Logger.demandLogger(Unknown Source)
            at java.util.logging.Logger.getLogger(Unknown Source)
            at com.company.Application.Applet.<clinit>(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 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)

        Caused by: java.lang.NullPointerException
            at java.util.logging.Logger.setParent(Unknown Source)
            at java.util.logging.LogManager$6.run(Unknown Source)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.util.logging.LogManager.doSetParent(Unknown Source)
            at java.util.logging.LogManager.access$1100(Unknown Source)
            at java.util.logging.LogManager$LogNode.walkAndSetParent(Unknown Source)
            at java.util.logging.LogManager$LoggerContext.addLocalLogger(Unknown Source)
            at java.util.logging.LogManager$LoggerContext.addLocalLogger(Unknown Source)
            at java.util.logging.LogManager.addLogger(Unknown Source)
            at java.util.logging.LogManager$1.run(Unknown Source)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.util.logging.LogManager.<clinit>(Unknown Source)

        The exception is coming from this line

        private static Logger logger = Logger.getLogger(Applet.class.getName());

        Could it be because of any sideeffects with fix http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=8017174 ?

        Workaround is to open java control center and enable logging. This is a concern since by default "Enable Logging" is unchecked. If i select "Enable Logging", application starts fine

        REGRESSION. Last worked in version 7u25

        STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
        1) Launch java control center and unselect "Enable Logging" from advanced tab
        2) Create a sample westart application which initialize logging
        private static Logger logger = Logger.getLogger(Applet.class.getName());
        3) Application is not launching
        4) If you enable "Enable Logging", application launches

        EXPECTED VERSUS ACTUAL BEHAVIOR :
        EXPECTED -
        Should launch always irrespective of the "Enable Logging" checkbox.
        ACTUAL -
        Application fails with a nullpointer exception.

        ERROR MESSAGES/STACK TRACES THAT OCCUR :
        java.lang.ExceptionInInitializerError
            at java.util.logging.Logger.demandLogger(Unknown Source)
            at java.util.logging.Logger.getLogger(Unknown Source)
            at com.company.Application.Applet.<clinit>(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 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)

        Caused by: java.lang.NullPointerException
            at java.util.logging.Logger.setParent(Unknown Source)
            at java.util.logging.LogManager$6.run(Unknown Source)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.util.logging.LogManager.doSetParent(Unknown Source)
            at java.util.logging.LogManager.access$1100(Unknown Source)
            at java.util.logging.LogManager$LogNode.walkAndSetParent(Unknown Source)
            at java.util.logging.LogManager$LoggerContext.addLocalLogger(Unknown Source)
            at java.util.logging.LogManager$LoggerContext.addLocalLogger(Unknown Source)
            at java.util.logging.LogManager.addLogger(Unknown Source)
            at java.util.logging.LogManager$1.run(Unknown Source)
            at java.security.AccessController.doPrivileged(Native Method)
            at java.util.logging.LogManager.<clinit>(Unknown Source)

        REPRODUCIBILITY :
        This bug can be reproduced always.

        ---------- BEGIN SOURCE ----------
        a simple logging enabled applet
        ---------- END SOURCE ----------

        CUSTOMER SUBMITTED WORKAROUND :
        Select "Enable Logging"

              dfuchs Daniel Fuchs
              alanb Alan Bateman
              Votes:
              0 Vote for this issue
              Watchers:
              8 Start watching this issue

                Created:
                Updated:
                Resolved: