JDK-6428896 : javap cannot read multiple entries on the extension classpath
  • Type: Bug
  • Component: tools
  • Sub-Component: javap
  • Affected Version: 6
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • OS: generic
  • CPU: generic
  • Submitted: 2006-05-22
  • Updated: 2010-04-02
  • Resolved: 2006-07-01
The Version table provides details related to the release that this issue/RFE will be addressed.

Unresolved : Release in which this issue/RFE will be addressed.
Resolved: Release in which this issue/RFE has been resolved.
Fixed : Release in which this issue/RFE has been fixed. The release containing this fix may be available for download as an Early Access Release or a General Availability Release.

To download the current JDK release, click here.
JDK 6
6 b91Fixed
Related Reports
Relates :  
Relates :  
Description
javap no longer finds classes on the extension classpath. This used to work in earlier releases and in Mustang up to b54 but not in more recent builds:

>/java/re/j2se/1.5.0/latest/binaries/solaris-i586/bin/javap -J-showversion com.sun.crypto.provider.SunJCE
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0-b64)
Java HotSpot(TM) Server VM (build 1.5.0-b64, mixed mode)

Compiled from DashoA6275
public final class com.sun.crypto.provider.SunJCE extends java.security.Provider{
    static final boolean f;
    static final java.security.SecureRandom g;
    public com.sun.crypto.provider.SunJCE();
    static void a(java.lang.Class);
    static final boolean b(java.lang.Class);
    static {};
}

>/java/re/j2se/6/promoted/all/b54/binaries/solaris-i586/bin/javap -J-showversion com.sun.crypto.provider.SunJCE
java version "1.6.0-ea"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.6.0-ea-b54)
Java HotSpot(TM) Server VM (build 1.6.0-ea-b54, mixed mode)

Compiled from "DashoA14*.."
public final class com.sun.crypto.provider.SunJCE extends java.security.Provider{
    static final boolean g;
    static final java.security.SecureRandom h;
    public com.sun.crypto.provider.SunJCE();
    static void a(java.lang.Class);
    static final boolean b(java.lang.Class);
    static {};
}

>/java/re/j2se/6/promoted/all/b55/binaries/solaris-i586/bin/javap -J-showversion com.sun.crypto.provider.SunJCE
java version "1.6.0-ea"
Java(TM) 2 Runtime Environment, Standard Edition (build 1.6.0-ea-b55)
Java HotSpot(TM) Server VM (build 1.6.0-ea-b55, mixed mode)

ERROR:Could not find com.sun.crypto.provider.SunJCE
>

Comments
EVALUATION This is not a regression but a long existing problem in javap. If the extension classpath contains multiple entries, javap cannot handle it correctly. It causes the regression when the extension mechanism was changed to make the default classpath contain two entries.
13-06-2006

SUGGESTED FIX Diffs: ------- JavapEnvironment.java ------- 218,219c218,220 < resolveExdirFilenamehelper(path, classname); < --- > InputStream in = resolveExdirFilenamehelper(path, classname); > if (in != null) > return in; In context: public InputStream resolveExdirFilename(String classname){ if(classpath.indexOf(File.pathSeparator) != -1){ //separates path StringTokenizer st = new StringTokenizer(classpath, File.pathSeparat or); while(st.hasMoreTokens()){ String path = st.nextToken(); InputStream in = resolveExdirFilenamehelper(path, classname); if (in != null) return in; } }else return (resolveExdirFilenamehelper(classpath, classname)); return null; }
27-05-2006