You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Myrna van Lunteren (JIRA)" <ji...@apache.org> on 2007/01/23 20:10:49 UTC

[jira] Created: (DERBY-2265) bad logic in jvm:guessWSHome() in old test harness affects j9 runs

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


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.


[jira] Closed: (DERBY-2265) bad logic in jvm:guessWSHome() in old test harness affects j9 runs

Posted by "Myrna van Lunteren (JIRA)" <ji...@apache.org>.
     [ 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

> 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
>          Components: Test
>    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.


[jira] Updated: (DERBY-2265) bad logic in jvm:guessWSHome() in old test harness affects j9 runs

Posted by "Myrna van Lunteren (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-2265?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Myrna van Lunteren updated DERBY-2265:
--------------------------------------

    Component/s: Test

> 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
>          Components: Test
>    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.


[jira] Reopened: (DERBY-2265) bad logic in jvm:guessWSHome() in old test harness affects j9 runs

Posted by "Myrna van Lunteren (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-2265?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Myrna van Lunteren reopened DERBY-2265:
---------------------------------------


> 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
>          Components: Test
>    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.


[jira] Updated: (DERBY-2265) bad logic in jvm:guessWSHome() in old test harness affects j9 runs

Posted by "Myrna van Lunteren (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-2265?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Myrna van Lunteren updated DERBY-2265:
--------------------------------------

    Attachment: DERBY-2265_20070123.diff

put some more ifs in then in my proposed change. Spot-tested this with jdk14, wcmte5.7 and weme6.1, running individual tests and some suites.

> 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
>         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.


[jira] Closed: (DERBY-2265) bad logic in jvm:guessWSHome() in old test harness affects j9 runs

Posted by "Myrna van Lunteren (JIRA)" <ji...@apache.org>.
     [ 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.