JDK-8033705 : Array out of bounds exception in PluginMain.performSSVValidation
  • Type: Bug
  • Component: deploy
  • Sub-Component: plugin
  • Affected Version: 7u55,8u5
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2014-02-05
  • Updated: 2014-07-17
  • Resolved: 2014-02-10
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.
7u55Fixed 8u11Fixed 9Fixed
there is the following code in performSSVValidation:
           int dashIndex1 = selectedVersion.indexOf("-");

            if (dashIndex1 != -1) {
                // ignore anything after '-' in the version
                // e.g 1.8.0-ea becomes 1.8.0
                selectedVersion = selectedVersion.substring(0, dashIndex);
The problem is the typo in the last line to use dashIndex instead of dashIndex1.
This is within the scope of dashIndex, which is used above on the "runningVersion" where this is the "selectedVersion"

If (for example) selectedVersion is "1.7.0_55-internal" and runningVersion is "1.7.0_55" this will cause an exception.

I found this with the internal version in my path, running jcontrol (puts it in the properties file), then ran tck test pointing javaws executable at final "1.7.0_55" (putting it second in list in deployment.properties) then ran test jnlp_file/appletDesc.

can probably be reproduced using two unregistered versions, one internal and one fcs and running any appletDesc jnlp file thru java web start.

SQE OK to take this

critical request for 14_02: simple change to fix an array out of bounds exception. Fix pushed to 7u-cpu and 8u-cpu

crucible review is completed