Hi Ioi,
I have a question for following code in AppClassLoader.loadClass(). If a
class is 'known to not exist' for the AppClassLoader (not in the
AppClassLoader and parent classloaders' shared lookup cache), it seems
findLoadedClass() would only find classes that's dynamically loaded by
the parent loaders. The AppClassLoader would never try to load the
class. Is the AppClassLoader's lookup cache guaranteed to have all the
classes in it's path?
315 if (ucp.knownToNotExist(name)) {
316 // The class of the given name is not found in the parent
317 // class loader as well as its local URLClassPath.
318 // Check if this class has already been defined
dynamically;
319 // if so, return the loaded class; otherwise, skip the
parent
320 // delegation and findClass.
321 synchronized (getClassLoadingLock(name)) {
322 Class<?> c = findLoadedClass(name);
323 if (c != null) {
324 return c;
325 }
326 }
327 throw new ClassNotFoundException(name);
328 }
Thanks,
Jiangli
On 10/27/2014 3:32 PM, Ioi Lam wrote:
Hi David, I have update the latest webrev at:
http://cr.openjdk.java.net/~iklam/8061651-lookup-index-open-v3/
and fixed the "int cache[]" style you mentioned.
This version also contains the JDK test case that Mandy requested:
http://cr.openjdk.java.net/~iklam/8061651-lookup-index-open-v3/jdk/test/sun/misc/URLClassPath/EnableLookupCache.java.html
Thanks
- Ioi