Browse Source

HADOOP-16717. Remove GenericsUtil isLog4jLogger dependency on Log4jLoggerAdapter. Contributed by Xieming Li.

(cherry picked from commit da9435182a8fccec743406e089325655138d9de8)
(cherry picked from commit 06a2e4ccded279381ce65add79e926e6d2679fc0)
Akira Ajisaka 5 năm trước cách đây
mục cha
commit
072958324c

+ 6 - 2
hadoop-common-project/hadoop-common/src/main/java/org/apache/hadoop/util/GenericsUtil.java

@@ -25,7 +25,6 @@ import org.apache.hadoop.classification.InterfaceAudience;
 import org.apache.hadoop.classification.InterfaceStability;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
-import org.slf4j.impl.Log4jLoggerAdapter;
 
 /**
  * Contains utility methods for dealing with Java Generics. 
@@ -85,6 +84,11 @@ public class GenericsUtil {
       return false;
     }
     Logger log = LoggerFactory.getLogger(clazz);
-    return log instanceof Log4jLoggerAdapter;
+    try {
+      Class log4jClass = Class.forName("org.slf4j.impl.Log4jLoggerAdapter");
+      return log4jClass.isInstance(log);
+    } catch (ClassNotFoundException e) {
+      return false;
+    }
   }
 }