JDK-8029579 : "Application Error" dialog will show up after click "OK" on "Application Blocked" dialog
  • Type: Bug
  • Component: deploy
  • Sub-Component: webstart
  • Affected Version: 8
  • Priority: P3
  • Status: Resolved
  • Resolution: Fixed
  • Submitted: 2013-12-05
  • Updated: 2015-06-03
  • Resolved: 2014-09-11
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 b09Fixed 9Fixed
Description
Test scenarios: the case is to test what 's the behavior when help jar's docbase is NOT listed in ESL while main jar's docbase is listed in ESL.
The behavior in 7u51-b07 is: A "Application Error" dialog will show up after accept the first dialog(invoked by the main jar).
But with latest jre8-b118, there is a extra "Application Blocked" dialog shows up before "Application Error" dialog. I think the blocked dialog is correct behavior after the fix of https://bugs.openjdk.java.net/browse/JDK-8028423. 
But there is no need to show "Application Error" dialog anymore since there already has a "Application Blocked" dialog showing the detail message about why this app is blocked.

        Steps to reproduce:
            0) Install jre8-b118
            1) Set security level to medium
            2) Add "http://kgb.us.oracle.com:8080/JawsESL/jnlp/" to Exception Site List
            3) Launch app that one of jar file is not listed in ESL: javaws http://kgb.us.oracle.com:8080/JawsESL/jnlp/testMultiJar.jnlp
            4) There will be an unsigned dialog shows up since the main jar is unsigned. Accept it.
            5) A "Application Blocked" dialog will show up. See attached 8-blocked-dialog.png         
            6) If after click "OK" on blocked dialog, a "Application Error" dialog will show up, then this bug is reproduced. See attached 8-error-dialog.png.


Note: with jre7u51-b07, there is only a error dialog after accept the first dialog and no "Application Blocked" dialog.
        Steps to reproduce:
            0) Install jre7u51-b07
            1) Set security level to medium
            2) Add "http://kgb.us.oracle.com:8080/JawsESL/jnlp/" to Exception Site List
            3) Launch app that one of jar file is not listed in ESL: javaws http://kgb.us.oracle.com:8080/JawsESL/jnlp/testMultiJar.jnlp
            4) There will be an unsigned dialog shows up since the main jar is unsigned. Accept it.
            5) A "Application Error" will show up and no "Application Blocked" dialog.
Comments
The cause in this instance is as follows: doLaunchApp catches RunTimeException that wraps an ExitException. it then wraps that in another ExitException (launcher.java line 1777): } catch (Exception e) { throw new ExitException(e, ExitException.LAUNCH_ERROR); } instead of using the inner ExitException. so fix is simple, replace the above with: } catch(Exception e) { Throwable cause = e; while (cause != null) { if (cause instanceof ExitException) { throw (ExitException) cause; } cause = cause.getCause(); } throw new ExitException(e, ExitException.LAUNCH_ERROR); The the calling code can recognize that the ExitException is caused by a BlockedException and not so a LaunchErrorDialog.
08-09-2014

defer request to 8u40: reproducible in JDK 8, not a regression in 8u20. Not a security issue since the secondary jar is blocked as it should be. Request deferral to 8u40.
21-07-2014

I still can reproduce this bug with jre8u20-b20
11-07-2014

The secondary jar on port 80 works fine. Can you try it again? See attachment 80port.png
11-07-2014

Closing as incomplete - please reopen if a reproducible test case can be provided
09-07-2014

The secondary jar on port 80 is no longer accessible - so testcase cannot be run.
19-03-2014

Release team: Approved for deferral.
12-12-2013

Request to defer to 8u20. Not a showstopper for JDK 8 release. Not a security issue since the secondary jar is blocked as it should be.
12-12-2013

SQE-OK to defer this issue to future releases
11-12-2013

Similar scenarios could be found in other cases where the loading of a secondary jar is blocked for various reasons in a javaws app once an app is started, but is not a show-stopper. Should not be considered a show-stopper. The loading of the secondary jar is blocked as it should be. Request to defer from JDK8
10-12-2013

regression_test_src: http://sqe-hg.us.oracle.com/hg/index.cgi/testbase/javase/functional/8/deployment2/file/2fc9ac21cd08/new_framework/tests/javaws/JawsESL/src/JawsESLExtraTest.java
05-12-2013

Affected tests: JawsESLExtraTest::testESLUnsignedSandBoxMultiJarVHighNeg
05-12-2013