United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: JDK-6742564 Webstart hangs reporting error on extension
JDK-6742564 : Webstart hangs reporting error on extension

Details
Type:
Bug
Submit Date:
2008-08-28
Status:
Closed
Updated Date:
2010-09-26
Project Name:
JDK
Resolved Date:
2009-03-05
Component:
deploy
OS:
generic
Sub-Component:
deployment_toolkit
CPU:
generic
Priority:
P3
Resolution:
Fixed
Affected Versions:
6
Fixed Versions:
6u14 (b01)

Related Reports
Backport:

Sub Tasks

Description
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">
    <information>
        <title>DummyWS</title>
        <vendor>igor</vendor>
        <homepage href=""/>
        <description>DummyWS</description>
        <description kind="short">DummyWS</description>
    </information>
    <security>
        <all-permissions/>
    </security>
    <resources>
        <j2se version="1.6+"/>
        <jar href="DummyWS.jar" main="true" download="eager"/>
        <extension name="junk" href="jars/Scenario.jar"/>
    </resources>
    <application-desc main-class="dummyws.Main">
    </application-desc>
</jnlp>

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.

                                    

Comments
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.
                                     
2009-01-01



Hardware and Software, Engineered to Work Together