diff --git a/independent-projects/bootstrap/runner/src/main/java/io/quarkus/bootstrap/runner/RunnerClassLoader.java b/independent-projects/bootstrap/runner/src/main/java/io/quarkus/bootstrap/runner/RunnerClassLoader.java index 921c41088b775..d6bf167acdbb4 100644 --- a/independent-projects/bootstrap/runner/src/main/java/io/quarkus/bootstrap/runner/RunnerClassLoader.java +++ b/independent-projects/bootstrap/runner/src/main/java/io/quarkus/bootstrap/runner/RunnerClassLoader.java @@ -15,7 +15,6 @@ /** * Classloader used for production application, using the multi jar strategy - * */ public class RunnerClassLoader extends ClassLoader { @@ -49,10 +48,6 @@ public Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundExce //note that for performance reasons this CL does not do parent first delegation //although the intention is not for it to be a true isolated parent first CL //'delegation misses' where the parent throws a ClassNotFoundException are very expensive - Class<?> loaded = findLoadedClass(name); - if (loaded != null) { - return loaded; - } if (name.startsWith("java.")) { return getParent().loadClass(name); } @@ -61,6 +56,10 @@ public Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundExce return getParent().loadClass(name); } synchronized (getClassLoadingLock(name)) { + Class<?> loaded = findLoadedClass(name); + if (loaded != null) { + return loaded; + } ClassLoadingResource[] resources; if (packageName == null) { resources = resourceDirectoryMap.get("");