Index: harmony/enhanced/classlib/trunk/modules/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/JarExecTest.java =================================================================== --- harmony/enhanced/classlib/trunk/modules/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/JarExecTest.java (revision 490124) +++ harmony/enhanced/classlib/trunk/modules/archive/src/test/java/org/apache/harmony/archive/tests/java/util/jar/JarExecTest.java (working copy) @@ -196,13 +196,13 @@ JarOutputStream joutBoo = new JarOutputStream(new FileOutputStream(booJar)); joutBoo.putNextEntry(new JarEntry("foo/bar/execjartest/Foo.class")); - String booBody = new String(getResource(resources, "hyts_Foo.ser")); - booBody = booBody.replaceFirst("FOO", "BOO"); - joutBoo.write(booBody.getBytes()); + byte[] booBody = getResource(resources, "hyts_Foo.ser"); + replace(booBody, new byte[] {'F', 'O', 'O'}, new byte[] {'B', 'O', 'O'}); + joutBoo.write(booBody); joutBoo.putNextEntry(new JarEntry("foo/bar/execjartest/Bar.class")); - String farBody = new String(getResource(resources, "hyts_Bar.ser")); - farBody = farBody.replaceFirst("BAR", "FAR"); - joutBoo.write(farBody.getBytes()); + byte[] farBody = getResource(resources, "hyts_Bar.ser"); + replace(farBody, new byte[] {'B', 'A', 'R'}, new byte[] {'F', 'A', 'R'}); + joutBoo.write(farBody); joutBoo.close(); res = Support_Exec.execJava(args, new String[] {booJar.getAbsolutePath()}, new String[] { "CLASSPATH=" + fooJar.getAbsolutePath() }, false); @@ -221,13 +221,13 @@ JarOutputStream joutZoo = new JarOutputStream(new FileOutputStream(zooJar), man); joutZoo.putNextEntry(new JarEntry("foo/bar/execjartest/Foo.class")); - String zooBody = new String(getResource(resources, "hyts_Foo.ser")); - zooBody = zooBody.replaceFirst("FOO", "ZOO"); - joutZoo.write(zooBody.getBytes()); + byte[] zooBody = getResource(resources, "hyts_Foo.ser"); + replace(zooBody, new byte[] {'F', 'O', 'O'}, new byte[] {'Z', 'O', 'O'}); + joutZoo.write(zooBody); joutZoo.putNextEntry(new JarEntry("foo/bar/execjartest/Bar.class")); - String zarBody = new String(getResource(resources, "hyts_Bar.ser")); - zarBody = zarBody.replaceFirst("BAR", "ZAR"); - joutZoo.write(zarBody.getBytes()); + byte[] zarBody = getResource(resources, "hyts_Bar.ser"); + replace(zarBody, new byte[] {'B', 'A', 'R'}, new byte[] {'Z', 'A', 'R'}); + joutZoo.write(zarBody); joutZoo.close(); args = new String[] {"-jar", zooJar.getAbsolutePath()}; @@ -252,4 +252,21 @@ return resourceBody; } + private static void replace(byte[] arr, byte[] from, byte[] to) { + bigLoop: + for(int i = 0; i < arr.length; ++i) { + if(arr[i] != from[0]) { + continue; + } + for(int j = 0; j < from.length; ++j) { + if(from[j] != arr[i + j]) { + continue bigLoop; + } + } + for(int j = 0; j < from.length; ++j) { + arr[i + j] = to[j]; + } + break; + } + } } Index: harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/Support_Exec.java =================================================================== --- harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/Support_Exec.java (revision 490471) +++ harmony/enhanced/classlib/trunk/support/src/test/java/tests/support/Support_Exec.java (working copy) @@ -104,7 +104,7 @@ classPathString += classpath[i]; } execArgs[1] = "-cp"; - execArgs[2] = "\"" + classPathString + "\""; + execArgs[2] = classPathString; } for (int i = 0; i < args.length; i++)