From f414bd4894265029a1a3e77951c736e673fbdaa3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bj=C3=B6rn=20Kautler?= Date: Thu, 15 Aug 2024 13:25:10 +0200 Subject: [PATCH] Optimize log factory detection (#192) (#280) --- src/main/java/org/apache/commons/logging/LogFactory.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/src/main/java/org/apache/commons/logging/LogFactory.java b/src/main/java/org/apache/commons/logging/LogFactory.java index 238ca9e..4f4a2ef 100644 --- a/src/main/java/org/apache/commons/logging/LogFactory.java +++ b/src/main/java/org/apache/commons/logging/LogFactory.java @@ -938,7 +938,7 @@ public abstract class LogFactory { if (factory == null) { factory = newStandardFactory(baseClassLoader); } - if (factory == null) { + if ((factory == null) && (baseClassLoader != thisClassLoaderRef.get())) { factory = newStandardFactory(thisClassLoaderRef.get()); } if (factory != null) { @@ -1217,13 +1217,12 @@ public abstract class LogFactory { } private static boolean isClassAvailable(final String className, final ClassLoader classLoader) { - final ClassLoader loader = LogFactory.class.getClassLoader(); - logDiagnostic("Checking if class '" + className + "' is available in class loader " + objectId(loader)); + logDiagnostic("Checking if class '" + className + "' is available in class loader " + objectId(classLoader)); try { Class.forName(className, true, classLoader); return true; } catch (final ClassNotFoundException | LinkageError e) { - logDiagnostic("Failed to load class '" + className + "' from class loader " + objectId(loader) + ": " + e.getMessage()); + logDiagnostic("Failed to load class '" + className + "' from class loader " + objectId(classLoader) + ": " + e.getMessage()); } return false; }