United StatesChange Country, Oracle Worldwide Web Sites Communities I am a... I want to...
Bug ID: 6473331 rmic does not use manifest classpath
6473331 : rmic does not use manifest classpath

Details
Type:
Bug
Submit Date:
2006-09-21
Status:
Resolved
Updated Date:
2011-01-19
Project Name:
JDK
Resolved Date:
2007-02-10
Component:
core-libs
OS:
solaris_9
Sub-Component:
java.rmi
CPU:
sparc
Priority:
P3
Resolution:
Fixed
Affected Versions:
5.0u9
Fixed Versions:
7

Related Reports
Backport:
Backport:
Relates:
Relates:
Relates:
Relates:

Sub Tasks

Description
As of JDK 1.5, both java and javac recurse the manifest classpath of a jar on the java classpath.  However, rmic compiler does not use the manifest classpath at all.  This impacts a number of our customers adversely.  We have made necessary internal changes to our product that make extensive use of manifest classpaths.  This bug prevents the loading of required classes when using rmic with the altered jars.

                                    

Comments
WORK AROUND

The only workaround is to potentially put a large number of jar files explicitly on the java classpath.  This would require an unacceptable change to many of our customers.
                                     
2006-09-21
EVALUATION

The current default implementation of rmic is still based on the so-called "oldjavac" libraries, which do not support JAR manifest Class-Path entries.  If all of the other JDK tools now support JAR manifest Class-Path entries for JAR files in their application class paths, then it does seem like a bug that rmic does not do so as well.

The implementation of rmic enabled by the "-Xnew" option, which is based on the current javac implementation (through javadoc), inherits javac's support for JAR manifest Class-Path entries, so this bug will be fixed at the latest when that implementation becomes the default (see 4819896).
                                     
2006-09-21
WORK AROUND

If neither the "-idl" nor the "-iiop" options to rmic need to be used (i.e. rmic is being used to generate RMI/JRMP stub classes), then use "-Xnew" as the first option to rmic.  That option enables a newer internal implementation of rmic, which is based on the current javac implementation (through javadoc), and thus it implicitly inherits javac's support for JAR manifest Class-Path entries.  Unfortunately, this newer implementation does not yet support the CORBA (RMI/IIOP) modes of operation (see 4911536 & 4819896).
                                     
2006-09-21



Hardware and Software, Engineered to Work Together