8157739: Classloader Consistency Checking
Reviewed-by: ahgross, akulyakh, dfuchs, jwilhelm, skoivu
diff --git a/jdk/src/share/classes/com/sun/jmx/remote/util/ClassLoaderWithRepository.java b/jdk/src/share/classes/com/sun/jmx/remote/util/ClassLoaderWithRepository.java
index 9433bf8..a5d337f 100644
--- a/jdk/src/share/classes/com/sun/jmx/remote/util/ClassLoaderWithRepository.java
+++ b/jdk/src/share/classes/com/sun/jmx/remote/util/ClassLoaderWithRepository.java
@@ -39,8 +39,9 @@
}
protected Class<?> findClass(String name) throws ClassNotFoundException {
+ Class<?> cls;
try {
- return repository.loadClass(name);
+ cls = repository.loadClass(name);
} catch (ClassNotFoundException cne) {
if (cl2 != null) {
return cl2.loadClass(name);
@@ -48,6 +49,15 @@
throw cne;
}
}
+
+ if(!cls.getName().equals(name)){
+ if (cl2 != null) {
+ return cl2.loadClass(name);
+ } else {
+ throw new ClassNotFoundException(name);
+ }
+ }
+ return cls;
}
private ClassLoaderRepository repository;