I installed the Java 7 update 40 build 35 for OS X, and confirmed that
my test case and full applications launch properly under that version.
Thanks everyone who helped solve this problem and backport it to the
update 40 build! Please keep me in the loop about the timeline for the
general availability of update 40 so that my team can decide how best to
proceed.
Thanks again!
Sam Reid
PhET Interactive Simulations
University of Colorado Boulder
On 8/4/2013 4:29 PM, Sam Reid wrote:
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.