JDK-4955324 : Java Web Start autodownload of JREs fails - returns http response code: 500
  • Type: Bug
  • Component: deploy
  • Sub-Component: webstart
  • Affected Version: 1.4.2
  • Priority: P2
  • Status: Closed
  • Resolution: Duplicate
  • OS: windows_xp
  • CPU: x86
  • Submitted: 2003-11-17
  • Updated: 2003-11-24
  • Resolved: 2003-11-24
Related Reports
Duplicate :  
Description

Name: jl125535			Date: 11/17/2003


FULL PRODUCT VERSION :
java version "1.4.2"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.4.2-b28)
Java HotSpot(TM) Client VM (build 1.4.2-b28, mixed mode)

FULL OS VERSION :
Microsoft Windows XP [Version 5.1.2600]

A DESCRIPTION OF THE PROBLEM :
When launching a Java Web Start application that requires a JRE that is not currently installed on the user's PC, the autodownload fails 75% of the time.

At seemingly random intervals, various errors can occur, but the most prevalent is the Web Start client receiving an HTTP response code: 500 from sun's servers when attempting to autodownload a runtime environment.

Note that this seems to be a problem with the autodownload servlet, more than with a particular Web Start version.  I have reproduced the problem with Web Start v1.0.1_02, 1.2.0, and 1.4.2.  (some of the actual results/stack traces are from webstart 1.0.1_02 attempting to download JRE 1.4.2 - and labelled as such).

This problem has been occuring for approximately 1 month.


STEPS TO FOLLOW TO REPRODUCE THE PROBLEM :
1. Create a JNLP file that requires a specific JRE

ie.  <j2se version="1.4.2" href="http://java.sun.com/products/autodl/j2se"/>
or
     <j2se version="1.4.1" href="http://java.sun.com/products/autodl/j2se"/>

2. Launch the application from a PC that does not have that version of the JRE installed.

EXPECTED VERSUS ACTUAL BEHAVIOR :
EXPECTED -
Expect that the requested JRE will be installed on the PC.
ACTUAL -
Random Download Errors of two different types:

1) HTTP response code 500

JWS 1.4.2 downloading JRE 1.4.1 example:
 
General
An error occurred while launching/running the application.

Title: title
Vendor: vendor
  Category: Download Error

Unable to load resource: http://java.sun.com/webapps/jawsautodl/AutoDL/j2se/javaws-1_0_1-j2re-1_4_1-inst-windows-i586.jar


JWS 1.0.1_02 -- downloading JRE 1.4.2 example:

General
An error occurred while launching/running the application.

Title: title
Vendor: vendor
  Category: Download Error

Unable to load resource: (http://java.sun.com/products/autodl/j2se, 1.4.2)

2) HTTP response code 400

JWS 1.4.2 -- downloading JRE 1.4.1 example:

General
An error occurred while launching/running the application.

Title: title
Vendor: vendor
  Category: Download Error

Unable to load resource: http://java.sun.com/webapps/jawsautodl/AutoDL/j2se/javaws-1_0_1-j2re-1_4_1-inst-windows-i586.jar


JWS 1.0.1_02 -- downloading JRE 1.4.2 example:

General
An error occurred while launching/running the application.

Title: title
Vendor: vendor
  Category: Download Error

Unable to load resource: http://java.sun.com/webapps/jawsautodl/AutoDL/j2se/javaws-1_0_1-j2re-1_4_2-native-windows-i586.jar



ERROR MESSAGES/STACK TRACES THAT OCCUR :
Error Message Type 1 (HTTP response code 500)

JWS 1.4.2 -- downloading JRE 1.4.1 example:
Unable to load resource: http://java.sun.com/webapps/jawsautodl/AutoDL/j2se/javaws-1_0_1-j2re-1_4_1-inst-windows-i586.jar

Exception
JNLPException[category: Download Error : Exception: java.io.IOException : LaunchDesc: null ]
	at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.getResource(Unknown Source)
	at com.sun.javaws.LaunchDownload.downloadJarFiles(Unknown Source)
	at com.sun.javaws.LaunchDownload.downloadEagerorAll(Unknown Source)
	at com.sun.javaws.Launcher.downloadResources(Unknown Source)
	at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
	at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
	at com.sun.javaws.Launcher.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Wrapped Exception
java.io.IOException
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
	at com.sun.javaws.net.BasicNetworkLayer.doRequest(Unknown Source)
	at com.sun.javaws.net.BasicNetworkLayer.doGetRequest(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.getResource(Unknown Source)
	at com.sun.javaws.LaunchDownload.downloadJarFiles(Unknown Source)
	at com.sun.javaws.LaunchDownload.downloadEagerorAll(Unknown Source)
	at com.sun.javaws.Launcher.downloadResources(Unknown Source)
	at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
	at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
	at com.sun.javaws.Launcher.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: Server returned HTTP response code: 500 for URL: http://java.sun.com/webapps/jawsautodl/AutoDL/j2se/javaws-1_0_1-j2re-1_4_1-inst-windows-i586.jar
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
	at java.net.HttpURLConnection.getResponseCode(Unknown Source)
	... 11 more

JWS 1.0.1_02 -- downloading JRE 1.4.2:

Exception
JNLPException[category: Download Error : Exception: java.io.IOException: Server returned HTTP response code: 500 for URL: http://java.sun.com/webapps/jawsautodl/AutoDL/j2se?version-id=1.4.2&arch=x86&os=Windows+2000&locale=en_US&known-platforms=1.3+ : LaunchDesc: null ]
	at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.getJRE(Unknown Source)
	at com.sun.javaws.LaunchDownload.downloadJRE(Unknown Source)
	at com.sun.javaws.Launcher.downloadResources(Unknown Source)
	at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
	at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
	at com.sun.javaws.Launcher.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Wrapped Exception
java.io.IOException: Server returned HTTP response code: 500 for URL: http://java.sun.com/webapps/jawsautodl/AutoDL/j2se?version-id=1.4.2&arch=x86&os=Windows+2000&locale=en_US&known-platforms=1.3+
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
	at java.net.HttpURLConnection.getResponseCode(Unknown Source)
	at com.sun.javaws.util.URLUtil.doesURLExist(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.getJRE(Unknown Source)
	at com.sun.javaws.LaunchDownload.downloadJRE(Unknown Source)
	at com.sun.javaws.Launcher.downloadResources(Unknown Source)
	at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
	at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
	at com.sun.javaws.Launcher.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)


Error Message Type 2 (HTTP response code 400)

JWS 1.4.2 -- downloading JRE 1.4.1 example:

Exception
JNLPException[category: Download Error : Exception: java.io.IOException : LaunchDesc: null ]
	at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.getResource(Unknown Source)
	at com.sun.javaws.LaunchDownload.downloadJarFiles(Unknown Source)
	at com.sun.javaws.LaunchDownload.downloadEagerorAll(Unknown Source)
	at com.sun.javaws.Launcher.downloadResources(Unknown Source)
	at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
	at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
	at com.sun.javaws.Launcher.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Wrapped Exception
java.io.IOException
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
	at com.sun.javaws.net.BasicNetworkLayer.doRequest(Unknown Source)
	at com.sun.javaws.net.BasicNetworkLayer.doGetRequest(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.getResource(Unknown Source)
	at com.sun.javaws.LaunchDownload.downloadJarFiles(Unknown Source)
	at com.sun.javaws.LaunchDownload.downloadEagerorAll(Unknown Source)
	at com.sun.javaws.Launcher.downloadResources(Unknown Source)
	at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
	at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
	at com.sun.javaws.Launcher.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.io.IOException: Server returned HTTP response code: 400 for URL: http://sunsdlc1-7-vhost1.chntva1-dc1.genuity.net/servlet/EComFileServlet/main_products/SDLC//ESD4/AUTODL/j2se/javaws-1_0_1-j2re-1_4_1-inst-windows-i586.jar?ActionId=verify&TicketId=3qX8klqNPh9U&TicketServerUrl=xt0zQFMOWSwp0bI21gPDTs3GKh8eRBQnONegN88X2hPP3DNfDU1ZEiHEuH3RIMgSx88%2B&GroupName=5PoE
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
	at java.net.HttpURLConnection.getResponseCode(Unknown Source)
	... 11 more


JWS 1.0.1_02 -- downloading JRE 1.4.2 example:

Exception
JNLPException[category: Download Error : Exception: java.io.IOException: Server returned HTTP response code: 400 for URL: http://sunsdlc1-25.cartnj1-dc1.genuity.net/servlet/EComFileServlet/main_products/SDLC//ESD4/AUTODL/j2se/javaws-1_0_1-j2re-1_4_2-native-windows-i586.jar?ActionId=verify&TicketId=3qX8klSBNxhV&TicketServerUrl=xt0zQFMOWSwp0bI21gPDTs3GKh8eRBQnONegN88X2hPP3DNfDU1ZEiHEuH3RIMgSx88%2B&GroupName=5PoE : LaunchDesc: null ]
	at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.getResource(Unknown Source)
	at com.sun.javaws.LaunchDownload.downloadJarFiles(Unknown Source)
	at com.sun.javaws.LaunchDownload.downloadEagerorAll(Unknown Source)
	at com.sun.javaws.Launcher.downloadResources(Unknown Source)
	at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
	at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
	at com.sun.javaws.Launcher.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)

Wrapped Exception
java.io.IOException: Server returned HTTP response code: 400 for URL: http://sunsdlc1-25.cartnj1-dc1.genuity.net/servlet/EComFileServlet/main_products/SDLC//ESD4/AUTODL/j2se/javaws-1_0_1-j2re-1_4_2-native-windows-i586.jar?ActionId=verify&TicketId=3qX8klSBNxhV&TicketServerUrl=xt0zQFMOWSwp0bI21gPDTs3GKh8eRBQnONegN88X2hPP3DNfDU1ZEiHEuH3RIMgSx88%2B&GroupName=5PoE
	at sun.net.www.protocol.http.HttpURLConnection.getInputStream(Unknown Source)
	at java.net.HttpURLConnection.getResponseCode(Unknown Source)
	at com.sun.javaws.util.URLUtil.doesURLExist(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.doDownload(Unknown Source)
	at com.sun.javaws.cache.DownloadProtocol.getResource(Unknown Source)
	at com.sun.javaws.LaunchDownload.downloadJarFiles(Unknown Source)
	at com.sun.javaws.LaunchDownload.downloadEagerorAll(Unknown Source)
	at com.sun.javaws.Launcher.downloadResources(Unknown Source)
	at com.sun.javaws.Launcher.handleApplicationDesc(Unknown Source)
	at com.sun.javaws.Launcher.handleLaunchFile(Unknown Source)
	at com.sun.javaws.Launcher.run(Unknown Source)
	at java.lang.Thread.run(Unknown Source)



REPRODUCIBILITY :
This bug can be reproduced often.

---------- BEGIN SOURCE ----------

<?xml version="1.0" encoding="utf-8"?>
<!-- JNLP File -->
<jnlp
  spec="1.0+"
  codebase="http://codebase/"
  href="href.jnlp">
  <information>
    <title>Title</title>
    <vendor>Vendor Name</vendor>
    <homepage href=...url.../>
    <description>Description</description>
    <description kind="short">Short Description</description>
    <icon href="image.jpg"/>
  </information>
  <security>
      <all-permissions/>
  </security>
  <resources>
    <j2se version="1.4.2" href="http://java.sun.com/products/autodl/j2se"/>
    <jar href=... our jars.....
    />
   </resources>
  <application-desc main-class="package.MainClass">
  </application-desc>
</jnlp>



NOTE:  I have verified this problem with many versions of the j2se runtime environment (1.3, 1.4, 1.4+, 1.4.1, 1.4.2)
---------- END SOURCE ----------

CUSTOMER SUBMITTED WORKAROUND :
Not much of a workaround, but typically after attempting to launch the application between 5 and 20 times, the JRE will successfully download.
(Incident Review ID: 223183) 
======================================================================