JDK-8154155 : NPE when launching any Web Start applications
  • Type: Bug
  • Component: deploy
  • Sub-Component: webstart
  • Affected Version: 9
  • Priority: P3
  • Status: Closed
  • Resolution: Duplicate
  • OS: windows_7
  • CPU: x86
  • Submitted: 2016-04-08
  • Updated: 2016-09-23
  • Resolved: 2016-04-13
Related Reports
Duplicate :  
Description
FULL PRODUCT VERSION :
java version "9-ea"
Java(TM) SE Runtime Environment (build 9-ea+113)
Java HotSpot(TM) Client VM (build 9-ea+113, mixed mode)


ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows [Version 6.1.7601]

A DESCRIPTION OF THE PROBLEM :
Launching Web Start applications fails very early on in the launch process with a NullPointerException

REGRESSION.  Last worked in version 8u77

ADDITIONAL REGRESSION INFORMATION: 
java version "9-ea"
Java(TM) SE Runtime Environment (build 9-ea+113)
Java HotSpot(TM) Client VM (build 9-ea+113, mixed mode)


STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Compile a basic Java class and deploy as a Web Start application with all-permissions
2. Run the application

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Application should run
ACTUAL -
Application crashes on startup

ERROR MESSAGES/STACK TRACES THAT OCCUR :
java.lang.NullPointerException
	at sun.reflect.NativeMethodAccessorImpl.invoke0(java.base@9-ea/Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(java.base@9-ea/NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(java.base@9-ea/DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(java.base@9-ea/Method.java:531)
	at com.sun.deploy.security.JarIndexWrapper.getJarFiles(jdk.deploy@9-ea/JarIndexWrapper.java:89)
	at com.sun.deploy.security.DeployURLClassPath$JarLoader$1.run(jdk.deploy@9-ea/DeployURLClassPath.java:763)
	at com.sun.deploy.security.DeployURLClassPath$JarLoader$1.run(jdk.deploy@9-ea/DeployURLClassPath.java:755)
	at java.security.AccessController.doPrivileged(java.base@9-ea/Native Method)
	at com.sun.deploy.security.DeployURLClassPath$JarLoader.ensureOpen(jdk.deploy@9-ea/DeployURLClassPath.java:754)
	at com.sun.deploy.security.DeployURLClassPath$JarLoader.<init>(jdk.deploy@9-ea/DeployURLClassPath.java:743)
	at com.sun.deploy.security.DeployURLClassPath$3.run(jdk.deploy@9-ea/DeployURLClassPath.java:429)
	at com.sun.deploy.security.DeployURLClassPath$3.run(jdk.deploy@9-ea/DeployURLClassPath.java:419)
	at java.security.AccessController.doPrivileged(java.base@9-ea/Native Method)
	at com.sun.deploy.security.DeployURLClassPath.getLoader(jdk.deploy@9-ea/DeployURLClassPath.java:419)
	at com.sun.deploy.security.DeployURLClassPath.getLoader(jdk.deploy@9-ea/DeployURLClassPath.java:393)
	at com.sun.deploy.security.DeployURLClassPath.getResource(jdk.deploy@9-ea/DeployURLClassPath.java:251)
	at com.sun.deploy.security.DeployURLClassLoader$1.run(jdk.deploy@9-ea/DeployURLClassLoader.java:285)
	at com.sun.deploy.security.DeployURLClassLoader$1.run(jdk.deploy@9-ea/DeployURLClassLoader.java:282)
	at java.security.AccessController.doPrivileged(java.base@9-ea/Native Method)
	at com.sun.deploy.security.DeployURLClassLoader.findClass(jdk.deploy@9-ea/DeployURLClassLoader.java:281)
	at com.sun.jnlp.JNLPClassLoader.findClass(jdk.javaws@9-ea/JNLPClassLoader.java:372)
	at java.lang.ClassLoader.loadClass(java.base@9-ea/ClassLoader.java:486)
	at java.lang.ClassLoader.loadClass(java.base@9-ea/ClassLoader.java:473)
	at java.lang.ClassLoader.loadClass(java.base@9-ea/ClassLoader.java:419)
	at com.sun.javaws.Launcher.doLaunchApp(jdk.javaws@9-ea/Launcher.java:1495)
	at com.sun.javaws.Launcher.run(jdk.javaws@9-ea/Launcher.java:164)
	at java.lang.Thread.run(java.base@9-ea/Thread.java:804)


REPRODUCIBILITY :
This bug can be reproduced always.

---------- BEGIN SOURCE ----------
// Test.java
public class Test {
    public static void main(String[] args) {
    }
}

// test.jnlp
<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="6.0+" codebase="http://www.example.com/webstart" href="test.jnlp">
  <security>
      <all-permissions/>
  </security>
  <resources>
    <j2se version="1.8+" href="http://java.sun.com/products/autodl/j2se" initial-heap-size="64m" max-heap-size="384m" java-vm-args="-ea"/>
    <jar href="test.jar" main="true"/>
  </resources>
  <application-desc main-class="Test"/>
</jnlp>


---------- END SOURCE ----------


Comments
This seems a prevalent issue as the verify applet from java.com returns similar result. Checked this for 9 ea b113 and the verify applet failed with java.lang.NullPointerException at sun.reflect.NativeMethodAccessImpl.invoke0(java.base@9-ea/NativeMethod)
13-04-2016