JDK-6742564 : Webstart hangs reporting error on extension
  • Type: Bug
  • Component: deploy
  • Sub-Component: deployment_toolkit
  • Affected Version: 6
  • Priority: P3
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2008-08-28
  • Updated: 2010-09-26
  • Resolved: 2009-03-05
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.
6u14 b01Fixed 7Fixed
Following JNLP file:

<?xml version="1.0" encoding="UTF-8"?>
<jnlp spec="1.0+" codebase="file:///C:/j2d/FXStatup/FXTests/new/dummy/" href="launch_fx.jnlp">
        <homepage href=""/>
        <description kind="short">DummyWS</description>
        <j2se version="1.6+"/>
        <jar href="DummyWS.jar" main="true" download="eager"/>
        <extension name="junk" href="jars/Scenario.jar"/>
    <application-desc main-class="dummyws.Main">

leads to JNLP error on start. 
Perhaps the reason of error is that jars are signed with different certificates
(this is what i get if i change extension to jar tag). However, i can not get details
- pressing "Details" button leads to hung.

Note that this is not deadlock. It seems that WebStart's EDT is just sitting inside 
same Swing method (i've checked the code and line 176 corresponds to array allocation).
Perhaps this is Swing issue but this can also be caused by multithread use of Swing or weird parameters.
Stacktrace from jstack is attached (i have collectend number of them and they all are _exactly the same)
as well as testcase (you need to fix codebase in the jnlp file).

Problem is reproducible at least with 60u10 b27, b28 and b30 on Vista and XP.

EVALUATION The cause of the error dialog is the invalid jnlp file, which is actually a jar. The invalid jnlp file error dialog tries to add the contents of the jnlp file to one of the tabs by creating a JTextArea, and calling setText(xxx) where xxx is the contents of the jnlp file. This clearly should be filtered to be legal characters for JTextArea.setText(), and contain some reasonable limit on size.