Here is a test case to demonstrate the problem. I am not 100% sure whether it is the same as JDK-8017174, but here are the steps to reproduce the problem and the resulting exception:

1. Write and save TestMain.java (source below), which essentially just calls "Logger.getAnonymousLogger();" 2. Write and save test-logger.jnlp (source below), changing the path in codebase="file:///????? to match your machine path

javac TestMain.java
jar -cf myfile.jar *.class
javaws test-logger.jnlp

On my OSX 10.8.4 machine running 1.7.0_25 (build 15), this produces:
Application Error: Unable to launch the application
java.lang.NullPointerException
    at java.util.logging.Logger.doSetParent(Logger.java:1593)
    at java.util.logging.Logger.getAnonymousLogger(Logger.java:534)
    at java.util.logging.Logger.getAnonymousLogger(Logger.java:495)
    at TestMain.main(TestMain.java:6)
(full trace below)

There is an odd issue about the problem that I would like to describe here. I can easily reproduce this problem on Mac OSX 10.8.4. Last week I was also able to reproduce the problem on Windows 8 (also running Java 1.7.0_25), but that OS became corrupted and had to be reinstalled. After reinstalling Windows 8 and Java version 1.7.0_25 on that machine, it no longer has the same exception. I am not sure what caused it to fail before and work now--I did not record the "build number" on the prior Windows failures, but now I am using build 1.7.0_25-b17 and cannot produce the problem on Windows. So this problem may be specific to OSX and to specific builds (or other unknown configuration) for Windows.

After writing this up, I wasn't sure whether it was the same as JDK-8017174 or any of the duplicate bug reports, but perhaps they all have the same root cause. I have not yet tested the java7u40 development builds on my OSX machine. Looking forward to hearing from you!

Best Regards,
Sam Reid
PhET Interactive Simulations
University of Colorado Boulder

##########################
#  TestMain.java
############

import java.util.logging.Logger;

public class TestMain {
    public static void main(String[] args) {
        System.out.println("Running test for logger exception");
        Logger logger = Logger.getAnonymousLogger();
        System.out.println("logger = " + logger);
    }
}

##########################
#  test-logger.jnlp
############

<?xml version="1.0" encoding="utf-8"?>

<jnlp spec="1.0+" codebase="file:///?????" href="test-logger.jnlp">

    <information>

        <title>Test Logger Problem</title>

        <vendor>University of Colorado Boulder</vendor>

        <description>Test for logger problem</description>

    </information>

    <resources>

        <jar href="myfile.jar"/>

    </resources>
    <application-desc main-class="TestMain">
    </application-desc>

</jnlp>

##################
# Full stack trace
##########
java.lang.NullPointerException
    at java.util.logging.Logger.doSetParent(Logger.java:1593)
    at java.util.logging.Logger.getAnonymousLogger(Logger.java:534)
    at java.util.logging.Logger.getAnonymousLogger(Logger.java:495)
    at TestMain.main(TestMain.java:6)
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
    at java.lang.reflect.Method.invoke(Method.java:606)
    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(Thread.java:724)

On 8/2/2013 4:40 PM, Alan Bateman wrote:
On 02/08/2013 10:09, Sam Reid wrote:
One more thing, JDK-8017174 is still not listed in the j7u40 features
& changes [2] even for build 35 so I am still a bit confused about that.
Can you send a test case to demonstrate the NPE that you are seeing in
logging? (to help understand if this is the same issue or something else).

-Alan.

Reply via email to