The fix for 6612680 (Remove classloader dependency on jkernel) adds a new sun.misc.BootClassLoaderHook class for sun.jkernel.DownloadManager to inject in the class loading mechanism.
java.awt.color.ICC_Profile and java.util.zip.ZipEntry need special handling when running in jkernel enviornment. The current implementation depends on the following two methods:
sun.jkernel.DownloadManager.isCurrentThreadDownloading
sun.jkernel.DownloadManager.downloadFile
and also a static field:
sun.jkernel.DownloadManager.KERNEL_STATIC_MODTIME
In addition, a comment in DownloadManager.java suggests to revisit the need of the KERNEL_STATIC_MODTIME field.
// used to bypass some problems with JAR entry modtimes not matching.
// originally was set to zero, but apparently the epochs are different
// for zip and pack so the pack/unpack cycle was causing the modtimes
// to change. With some recent changes to the reconstruction, I'm
// not sure if this is actually necessary anymore.
public static final int KERNEL_STATIC_MODTIME = 10000000;
We added two methods in sun.misc.BootClassLoaderHook for the above special cases' use.
public abstract boolean isCurrentThreadPrefetching();
public abstract boolean prefetchFile(String name);
See http://hg.openjdk.java.net/jdk7/tl/jdk/rev/c499401bc138
We shall revisit if these 2 methods are needed any more.