JDK-6695325 : REGRESSION: Classpath returned by sun.rmi.rmic.BatchEnvironment.createClassPath(
  • Type: Bug
  • Component: core-libs
  • Sub-Component: java.rmi
  • Affected Version: 6u5
  • Priority: P2
  • Status: Closed
  • Resolution: Duplicate
  • OS: solaris_2.5.1
  • CPU: sparc
  • Submitted: 2008-04-29
  • Updated: 2010-04-02
  • Resolved: 2008-05-29
Related Reports
Duplicate :  
Relates :  
Description
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.

Comments
EVALUATION This bug is exactly a duplicate of 6610897. As described in the Evaluation of 6610897, the sun.* API affected by this bug is JDK-internal and unsupported, subject to incompatibile change anyway-- in particular, it has been on the verge of complete removal from the JDK for quite aome time. This bug is not known to affect the one JDK component that actually uses this internal API (the rmic tool).
29-04-2008

WORK AROUND Switch [JAVA_HOME]\lib\tools.jar with a version from a release that does not exhibit the problem i.e. prior to 1.6.0_01 or 1.5.0_11.
29-04-2008