JDK-8061651 : Add an interface to the JVM's Class/Resource Lookup Index Cache for improving sun.misc.URLClassPath search time
  • Type: Enhancement
  • Component: hotspot
  • Sub-Component: runtime
  • Affected Version: 8u40
  • Priority: P2
  • Status: Closed
  • Resolution: Fixed
  • Submitted: 2014-10-21
  • Updated: 2015-03-18
  • Resolved: 2014-11-04
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 8
8u40 b14Fixed
Description
Some J2EE environments have lots of JAR files in the classpath. However, during run-time, most classes are loaded by custom classloaders which delegate to the system loader. As a result, each class loaded by a custom classloader will cause many JAR search failures (in sun.misc.URLClassPath).

To limit the number of searches in URLClassPath, the 8uX HotSpot VM is going to include a Class/Resource Lookup Index Cache that records information about the class/resource entries in the JAR files in the classpath. This can be used to  improve sun.misc.URLClassPath search time.

This is part 1 of the RFE -- we are adding appropriate interfaces in both the JDK code and the HotSpot code to access this cache.

The plan is to modify URLClassPath.java to call into the HotSpot JVM_XXX APIs to access the cache.

The implementation of this cache is done in part 2 of this RFE.

Note that this enhancement is for JDK 8uX only. In JDK9 and beyond, we are considering an alternative implementation where the cache is maintained in the core libs code, outside of HotSpot.