OPERATING SYSTEM(S):
ALL
FULL JDK VERSION(S):
java version "1.6.0_05"
Java(TM) SE Runtime Environment (build 1.6.0_05-b13)
Java HotSpot(TM) Client VM (build 10.0-b19, mixed mode)
java version "1.5.0_15"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_15-b04)
Java HotSpot(TM) Client VM (build 1.5.0_15-b04, mixed mode)
DESCRIPTION:
The format of the String returned by sun.rmi.rmic.BatchEnvironment.createClassPath() changed at 1.6.0_01 and 1.5.0_11, probably as a result of the fix for CR 6473331.
In the 1.6.0 GA release, and 1.5.0_10 and earlier, the output looks like this:
C:\builds\sun\jdk6.0\jdk-6-fcs-bin-b105-windows-i586-29_nov_2006\jdk6\jre\lib\resources.jar;C:\builds\sun\jdk6.0\jdk-6-fcs-bin-b105-windows-i586-29_nov_2006\jdk6\jre\lib\rt.jar;C:\builds\sun\jdk6.0\jdk-6-fcs-bin-b105-windows-i586-29_nov_2006\jdk6\jre\lib\sunrsasign.jar;C:\builds\sun\jdk6.0\jdk-6-fcs-bin-b105-windows-i586-29_nov_2006\jdk6\jre\lib\jsse.jar;C:\builds\sun\jdk6.0\jdk-6-fcs-bin-b105-windows-i586-29_nov_2006\jdk6\jre\lib\jce.jar;C:\builds\sun\jdk6.0\jdk-6-fcs-bin-b105-windows-i586-29_nov_2006\jdk6\jre\lib\charsets.jar;C:\builds\sun\jdk6.0\jdk-6-fcs-bin-b105-windows-i586-29_nov_2006\jdk6\jre\classes;C:\builds\sun\jdk6.0\jdk-6-fcs-bin-b105-windows-i586-29_nov_2006\jdk6\jre\lib\ext\dnsns.jar;C:\builds\sun\jdk6.0\jdk-6-fcs-bin-b105-windows-i586-29_nov_2006\jdk6\jre\lib\ext\localedata.jar;C:\builds\sun\jdk6.0\jdk-6-fcs-bin-b105-windows-i586-29_nov_2006\jdk6\jre\lib\ext\sunjce_provider.jar;C:\builds\sun\jdk6.0\jdk-6-fcs-bin-b105-windows-i586-29_nov_2006\jdk6\jre\lib\ext\sunmscapi.jar;C:\builds\sun\jdk6.0\jdk-6-fcs-bin-b105-windows-i586-29_nov_2006\jdk6\jre\lib\ext\sunpkcs11.jar;.
Whereas in 1.6.0_01 and later, and 1.5.0_11 and later, the output looks like this:
C:\builds\sun\jdk6.0\jdk-6u1-fcs-bin-b06-windows-i586-14_mar_2007\jdk6_01\jre\lib\resources.jar\C:\builds\sun\jdk6.0\jdk-6u1-fcs-bin-b06-windows-i586-14_mar_2007\jdk6_01\jre\lib\rt.jar\C:\builds\sun\jdk6.0\jdk-6u1-fcs-bin-b06-windows-i586-14_mar_2007\jdk6_01\jre\lib\sunrsasign.jar\C:\builds\sun\jdk6.0\jdk-6u1-fcs-bin-b06-windows-i586-14_mar_2007\jdk6_01\jre\lib\jsse.jar\C:\builds\sun\jdk6.0\jdk-6u1-fcs-bin-b06-windows-i586-14_mar_2007\jdk6_01\jre\lib\jce.jar\C:\builds\sun\jdk6.0\jdk-6u1-fcs-bin-b06-windows-i586-14_mar_2007\jdk6_01\jre\lib\charsets.jar\C:\builds\sun\jdk6.0\jdk-6u1-fcs-bin-b06-windows-i586-14_mar_2007\jdk6_01\jre\classes\C:\builds\sun\jdk6.0\jdk-6u1-fcs-bin-b06-windows-i586-14_mar_2007\jdk6_01\jre\lib\ext\dnsns.jar\C:\builds\sun\jdk6.0\jdk-6u1-fcs-bin-b06-windows-i586-14_mar_2007\jdk6_01\jre\lib\ext\localedata.jar\C:\builds\sun\jdk6.0\jdk-6u1-fcs-bin-b06-windows-i586-14_mar_2007\jdk6_01\jre\lib\ext\sunjce_provider.jar\C:\builds\sun
\jdk6.0\jdk-6u1-fcs-bin-b06-windows-i586-14_mar_2007\jdk6_01\jre\lib\ext\sunmscapi.jar\C:\builds\sun\jdk6.0\jdk-6u1-fcs-bin-b06-windows-i586-14_mar_2007\jdk6_01\jre\lib\ext\sunpkcs11.jar\.
Note that the semicolon separators ';' have been replaced by backslashes '\'. The same problem occurs on Solaris and Linux, with forward slashes '/' in place of the correct colon ':' separator.
This change has serious consequences for one of our product groups and needs to be addressed as soon as possible.
TESTCASE SOURCE:
Note that the following testcase needs to be compiled and executed with [JAVA_HOME]\lib\tools.jar on the classpath.
----------------------------------------------------------------------
import sun.rmi.rmic.*;
public class ClassPathTest {
public static void main (String args[]) {
System.out.println(sun.rmi.rmic.BatchEnvironment.createClassPath(null, null, null));
}
}
----------------------------------------------------------------------
Release Regression From : 6.0
The above release value was the last known release where this
bug was not reproducible. Since then there has been a regression.