JDK-6507009 : Web Start application installed from CD will not run under Java 6u1
  • Type: Bug
  • Component: deploy
  • Sub-Component: webstart
  • Affected Version: 6
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • OS: windows_xp
  • CPU: x86
  • Submitted: 2006-12-21
  • Updated: 2011-02-16
  • Resolved: 2007-01-18
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 6 JDK 7
6u1 b03Fixed 7Fixed
Description
FULL PRODUCT VERSION :
java version "1.6.0_01-ea"
Java(TM) SE Runtime Environment (build 1.6.0_01-ea-b01)
Java HotSpot(TM) Client VM (build 1.6.0_01-ea-b01, mixed mode)

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

A DESCRIPTION OF THE PROBLEM :
I install a Web Start application using an alternative codebase - as per the Web Start FAQ - using the command:

C:\Progra~1\Java\jre1.6.0_01\bin\javaws.exe -import virtualstage/virtualstage.jnlp -codebase file:./virtualstage

The application installs correctly, appears in the Java Web Cache and an icon appears on the desktop.

However, when I try to run the program, it pops up a dialog saying:

The application has requested to go online. Do you want to continue?

If I am online, it will download the entire application. If I am offline, it will fail. The message in the console is that it cannot find the jnlp file (with the full URL). It is as though, the JNLP file imported with the alternative codebase is not recognised as being the one for the application.

This is a regression because it was working in Java 5 (1.5).

STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
Create an application.
Install it using an alternative codebase.

Try to run it.

(I can provide files if helpful - contact me by email)

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
I would expect the program to launch successfully.
ACTUAL -
It pops up a dialog saying:

The application has requested to go online. Do you want to continue?

If I am online, it will download the entire application. If I am offline, it will fail. The message in the console is that it cannot find the jnlp file (with the full URL)

REPRODUCIBILITY :
This bug can be reproduced always.

CUSTOMER SUBMITTED WORKAROUND :
None.
Simply cannot launch the application imported in this way (unlike in 1.5)

Release Regression From : 5.0u9
The above release value was the last known release where this 
bug was not reproducible. Since then there has been a regression.

Comments
SUGGESTED FIX http://web-east.east/deployment/www/webrevs/ngthomas/6507009/webrev/
03-01-2007

EVALUATION problem is in the cache index entry url. when we do a -import -codebase <alt url>, we store the <alt url> as the url entry in the cache index file. but instead, we should use the jnlp file original codebase url as the cache index url entry. therefore when we launch the application, java web start cannot find the cached jnlp file, and try to connect to the network and download the jnlp file again.
02-01-2007

EVALUATION i can reproduce the problem using the testcase provided. exception stack trace: java.net.UnknownHostException: www.dakinewave.com at java.net.PlainSocketImpl.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at java.net.Socket.connect(Unknown Source) at sun.net.NetworkClient.doConnect(Unknown Source) at sun.net.www.http.HttpClient.openServer(Unknown Source) at sun.net.www.http.HttpClient.openServer(Unknown Source) at sun.net.www.http.HttpClient.<init>(Unknown Source) at sun.net.www.http.HttpClient.New(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.getNewHttpClient(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.plainConnect(Unknown Source) at sun.net.www.protocol.http.HttpURLConnection.connect(Unknown Source) at com.sun.deploy.net.BasicHttpRequest.doRequest(BasicHttpRequest.java:166) at com.sun.deploy.net.BasicHttpRequest.doRequest(BasicHttpRequest.java:94) at com.sun.deploy.net.BasicHttpRequest.doGetRequest(BasicHttpRequest.java:55) at com.sun.javaws.jnl.LaunchDescFactory.buildDescriptor(LaunchDescFactory.java:85) at com.sun.javaws.LaunchDownload.getUpdatedLaunchDesc(LaunchDownload.java:184) at com.sun.javaws.Launcher.downloadJNLPFile(Launcher.java:1033) at com.sun.javaws.Launcher.prepareLaunchFile(Launcher.java:399) at com.sun.javaws.Launcher.prepareToLaunch(Launcher.java:165) at com.sun.javaws.Launcher.launch(Launcher.java:95) at com.sun.javaws.Main.launchApp(Main.java:299) at com.sun.javaws.Main.continueInSecureThread(Main.java:209) at com.sun.javaws.Main$1.run(Main.java:106) at java.lang.Thread.run(Unknown Source)
02-01-2007