diff --git a/jdk/src/java.management/share/classes/com/sun/jmx/remote/util/ClassLoaderWithRepository.java b/jdk/src/java.management/share/classes/com/sun/jmx/remote/util/ClassLoaderWithRepository.java index 9433bf891e7..a5d337ff1d2 100644 --- a/jdk/src/java.management/share/classes/com/sun/jmx/remote/util/ClassLoaderWithRepository.java +++ b/jdk/src/java.management/share/classes/com/sun/jmx/remote/util/ClassLoaderWithRepository.java @@ -39,8 +39,9 @@ public class ClassLoaderWithRepository extends ClassLoader { } 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 @@ public class ClassLoaderWithRepository extends ClassLoader { throw cne; } } + + if(!cls.getName().equals(name)){ + if (cl2 != null) { + return cl2.loadClass(name); + } else { + throw new ClassNotFoundException(name); + } + } + return cls; } private ClassLoaderRepository repository;