JDK-8064358 : JnlpxArgs NullPointerException
  • Type: Bug
  • Component: deploy
  • Sub-Component: webstart
  • Affected Version: 8u11
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: windows_7
  • CPU: x86
  • Submitted: 2014-07-29
  • Updated: 2016-06-07
  • Resolved: 2014-11-21
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 8 JDK 9
8u40 b17Fixed 9Fixed
Related Reports
Relates :  
Relates :  
Relates :  
Description
FULL PRODUCT VERSION :
java version "1.8.0_11"
Java(TM) SE Runtime Environment (build 1.8.0_11-b12)
Java HotSpot(TM) Client VM (build 25.11-b03, mixed mode)

ADDITIONAL OS VERSION INFORMATION :
Microsoft Windows [Version 6.1.7601]

A DESCRIPTION OF THE PROBLEM :
With the release of Java 7 update 65 and Java 8 update 11 a bug has been introduced into javaws on windows platforms which is causing our project's unchanged jnlp launch file to trigger the following error:

java.lang.NullPointerException
	at com.sun.javaws.JnlpxArgs.execProgram(Unknown Source)
	at com.sun.javaws.Launcher.relaunch(Unknown Source)
	at com.sun.javaws.Launcher.prepareResources(Unknown Source)
	at com.sun.javaws.Launcher.prepareAllResources(Unknown Source)
	at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
	at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
	at com.sun.javaws.Launcher.launch(Unknown Source)
	at com.sun.javaws.Main.launchApp(Unknown Source)
	at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
	at com.sun.javaws.Main.access$000(Unknown Source)
	at com.sun.javaws.Main$1.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
From java console:
Cannot use secure launcher with main class: "-Dhttp.agent=IGB/8.1 (Webstart)"
#### Java Web Start Error:
#### null

JNLP File Contents:

<?xml version="1.0" encoding="utf-8"?>
<jnlp spec="6.0+" version="8.1" codebase="http://bioviz.org/igb/releases/igb-8.1.1">
	<information>
		<title>IGB 8.1</title>
		<vendor>Genoviz Project</vendor>
		<homepage href="http://genoviz.sourceforge.net/" />
		<description>Integrated Genome Browser (8.1)</description>
		<icon href="igb.gif"/>
		<!--		<icon href="igb_splash.gif" kind="splash" />-->
		<offline-allowed/>
		<shortcut online="true">
			<desktop/>
			<menu submenu="IGB" />
		</shortcut>
	</information>
	<security>
		<all-permissions/>
	</security>
	<resources>
		<java version="1.6+" initial-heap-size="32m" max-heap-size="1024m"/>
		<jar href="igb_exe.jar" main="true" />
		<!-- jar href="igb-i18n.jar" / -->
		<property name="apple.laf.useScreenMenuBar" value="true" />
		<property name="http.agent" value="IGB/8.1 (Webstart)" />
	</resources>
	<application-desc main-class="com.affymetrix.main.Main" name="IGB">
		<argument>-prefs</argument>
		<argument>http://bioviz.org/igb/releases/igb-8.1.1/igb_prefs.xml</argument>
		<!-- Wildcard values inserted to allow modifications after signing -->
		<argument>-href</argument>
		<argument>*</argument>
		<argument>-scriptfile</argument>
		<argument>*</argument>
	</application-desc>
</jnlp>

Please note the removal of the http.agent property resolves the NPE, but this is a valid property which has been a part of the project's launch file for years.  



REGRESSION.  Last worked in version 8u5

ADDITIONAL REGRESSION INFORMATION: 
java version "1.8.0_05"
Java(TM) SE Runtime Environment (build 1.8.0_05-b13)
Java HotSpot(TM) 64-Bit Server VM (build 25.5-b02, mixed mode)

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Unfortunately, I have been unable to create a small toy demo example of this bug and cannot yet separate the bug from the context of our project; however, it is very easy for anyone to confirm this bug using the following steps.

1. Launch the following JNLP file (http://bioviz.org/igb/releases/igb-8.1.9/igb.jnlp) using 1.8.0_5 and note there are no problems.
2. Launch the same file using 1.8.0_11 or 1.7.0_65
3. Note the error message and stacktrace
4. Enable console logging to see the additional error message cited above (i.e. Cannot use secure launcher with main class: "-Dhttp.agent=IGB/8.1 (Webstart)" )

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Result should be a successful launch of our open source genome browsing software.

ERROR MESSAGES/STACK TRACES THAT OCCUR :
java.lang.NullPointerException
	at com.sun.javaws.JnlpxArgs.execProgram(Unknown Source)
	at com.sun.javaws.Launcher.relaunch(Unknown Source)
	at com.sun.javaws.Launcher.prepareResources(Unknown Source)
	at com.sun.javaws.Launcher.prepareAllResources(Unknown Source)
	at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
	at com.sun.javaws.Launcher.prepareToLaunch(Unknown Source)
	at com.sun.javaws.Launcher.launch(Unknown Source)
	at com.sun.javaws.Main.launchApp(Unknown Source)
	at com.sun.javaws.Main.continueInSecureThread(Unknown Source)
	at com.sun.javaws.Main.access$000(Unknown Source)
	at com.sun.javaws.Main$1.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)


From java console:
Cannot use secure launcher with main class: "-Dhttp.agent=IGB/8.1 (Webstart)"
#### Java Web Start Error:
#### null

REPRODUCIBILITY :
This bug can be reproduced always.


Comments
Verified with http://jre.us.oracle.com/java/re/jdk/9/jdk9-client/b42_2014-12-08-0301_1870 NPE can't be seen, but app still can't be launched with exception java.io.FileNotFoundException: Resource config_en.properties not found. Looks like app bug not jdk bug.
10-12-2014