[
https://issues.apache.org/jira/browse/DERBY-2265?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Myrna van Lunteren closed DERBY-2265.
-------------------------------------
Resolution: Fixed
Fix Version/s: 10.3.0.0
committed http://svn.apache.org/viewvc?view=rev&revision=499200
> bad logic in jvm:guessWSHome() in old test harness affects j9 runs
> ------------------------------------------------------------------
>
> Key: DERBY-2265
> URL: https://issues.apache.org/jira/browse/DERBY-2265
> Project: Derby
> Issue Type: Bug
> Affects Versions: 10.3.0.0
> Environment: wctme5.7_foundation (j2ME 1.0) or weme6.1 (foundation,
> j2ME 1.1)
> Reporter: Myrna van Lunteren
> Assigned To: Myrna van Lunteren
> Priority: Minor
> Fix For: 10.3.0.0
>
> Attachments: DERBY-2265_20070123.diff
>
>
> Running derbyall using either wcmte5.7_foundation or weme6.1 results in the
> following stack trace.
> Exception in thread "main" java.lang.StringIndexOutOfBoundsException
> at java.lang.String.substring(String.java:1043)
> at
> org.apache.derbyTesting.functionTests.harness.jvm.guessWSHome(jvm.java:301)
> at
> org.apache.derbyTesting.functionTests.harness.jvm.getSecurityProps(jvm.java:356)
> at
> org.apache.derbyTesting.functionTests.harness.jvm.setSecurityProps(jvm.java:336)
> at
> org.apache.derbyTesting.functionTests.harness.RunTest.buildTestCommand(RunTest.java:2350)
> at
> org.apache.derbyTesting.functionTests.harness.RunTest.testRun(RunTest.java:498)
> at
> org.apache.derbyTesting.functionTests.harness.RunTest.main(RunTest.java:368)
> I think this code was not reached until various security related changes
> recently, but the code is just bad.
> I think this code was used at one point to attempt to kick off another jvm to
> run a server with, but that is now defunct.
> Rather than try to make the code work, or try to clean it up, I'd rather
> spend time converting tests to the junit framework, so I will just fix this
> up so we don't hit the error.
> The bad code is:
> wshome = jhome.substring(0,jhome.indexOf(sep + "jre"));
> wshome = wshome.substring(0,wshome.lastIndexOf(sep));
> If the jhome ( System.getProperty("java.home")) does not contain 'jre', we
> will get -1 as the 2nd parameter in jhome.substring, and thus cause the
> ArrayIndexOutOfBounds.
> I propose to fix this piece of code as follows:
> int havejre=jhome.indexOf(sep + "jre");
> if (havejre > 0)
> {
> wshome = jhome.substring(0,jhome.indexOf(sep + "jre"));
> wshome = wshome.substring(0,wshome.lastIndexOf(sep));
> }
> else
> wshome = jhome.substring(0,jhome.lastIndexOf(sep));
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.