diff --git a/compiler/preloader/src/org/jetbrains/kotlin/preloading/MemoryBasedClassLoader.java b/compiler/preloader/src/org/jetbrains/kotlin/preloading/MemoryBasedClassLoader.java index 3e79f2e9eb1..636d1942917 100644 --- a/compiler/preloader/src/org/jetbrains/kotlin/preloading/MemoryBasedClassLoader.java +++ b/compiler/preloader/src/org/jetbrains/kotlin/preloading/MemoryBasedClassLoader.java @@ -41,22 +41,22 @@ public class MemoryBasedClassLoader extends ClassLoader { } @Override - public Class loadClass(String name) throws ClassNotFoundException { + protected synchronized Class loadClass(String name, boolean resolve) throws ClassNotFoundException { if (classesToLoadByParent != null && classesToLoadByParent.accept(name)) { if (parent == null) { - return super.loadClass(name); + return super.loadClass(name, resolve); } try { return parent.loadClass(name); } catch (ClassNotFoundException e) { - return super.loadClass(name); + return super.loadClass(name, resolve); } } // Look in this class loader and then in the parent one - Class aClass = super.loadClass(name); + Class aClass = super.loadClass(name, resolve); if (aClass == null) { if (parent == null) { throw new ClassNotFoundException("Class not available in preloader: " + name); @@ -66,6 +66,11 @@ public class MemoryBasedClassLoader extends ClassLoader { return aClass; } + @Override + public Class loadClass(String name) throws ClassNotFoundException { + return loadClass(name, false); + } + @Override protected Class findClass(String name) throws ClassNotFoundException { String internalName = name.replace('.', '/').concat(".class");