This is an automated email from the ASF dual-hosted git repository.

phunt pushed a commit to branch branch-3.6
in repository https://gitbox.apache.org/repos/asf/zookeeper.git


The following commit(s) were added to refs/heads/branch-3.6 by this push:
     new 3dcc996  ZOOKEEPER-3737: Detect log4j 1.2 jmx support better
3dcc996 is described below

commit 3dcc996ee6089d8001d699d2461decddf4d76c4f
Author: Christopher Tubbs <[email protected]>
AuthorDate: Sat Feb 29 21:42:47 2020 -0800

    ZOOKEEPER-3737: Detect log4j 1.2 jmx support better
    
    * Look for jmx class that exists only in the log4j 1.2 jar, but not in
      the log4j2 1.2 compatibility jar.
    * Check if disabled before attempting to detect log4j 1.2 jmx classes.
    * Update log messages to highlight that they are referring to log4j 1.2
      and not log4j2 or other versions.
    * Minor javadoc fixup
    
    Author: Christopher Tubbs <[email protected]>
    
    Reviewers: [email protected]
    
    Closes #1270 from ctubbsii/ZK-3737
    
    Change-Id: I7ebd7a28386d3fee33fcc9078d7f573dc766e8ee
    (cherry picked from commit 5a2332058deba04313ad37fa05cbb1515c83b8e6)
    Signed-off-by: Patrick Hunt <[email protected]>
---
 .../java/org/apache/zookeeper/jmx/ManagedUtil.java | 24 ++++++++++------------
 1 file changed, 11 insertions(+), 13 deletions(-)

diff --git 
a/zookeeper-server/src/main/java/org/apache/zookeeper/jmx/ManagedUtil.java 
b/zookeeper-server/src/main/java/org/apache/zookeeper/jmx/ManagedUtil.java
index b476daa..633cb17 100644
--- a/zookeeper-server/src/main/java/org/apache/zookeeper/jmx/ManagedUtil.java
+++ b/zookeeper-server/src/main/java/org/apache/zookeeper/jmx/ManagedUtil.java
@@ -35,27 +35,25 @@ public class ManagedUtil {
     private static boolean isLog4jJmxEnabled() {
         boolean enabled = false;
 
-        try {
-            Class.forName("org.apache.log4j.spi.LoggerRepository");
-
-            if (Boolean.getBoolean("zookeeper.jmx.log4j.disable")) {
-                LOG.info("Log4j found but jmx support is disabled.");
-            } else {
+        if (Boolean.getBoolean("zookeeper.jmx.log4j.disable")) {
+            LOG.info("Log4j 1.2 jmx support is disabled by property.");
+        } else {
+            try {
+                Class.forName("org.apache.log4j.jmx.HierarchyDynamicMBean");
                 enabled = true;
-                LOG.info("Log4j found with jmx enabled.");
+                LOG.info("Log4j 1.2 jmx support found and enabled.");
+            } catch (ClassNotFoundException e) {
+                LOG.info("Log4j 1.2 jmx support not found; jmx disabled.");
             }
-
-        } catch (ClassNotFoundException e) {
-            LOG.info("Log4j not found.");
         }
 
         return enabled;
     }
 
     /**
-     * Register the log4j JMX mbeans. Set environment variable
+     * Register the log4j JMX mbeans. Set system property
      * "zookeeper.jmx.log4j.disable" to true to disable registration.
-     * See 
http://logging.apache.org/log4j/1.2/apidocs/index.html?org/apache/log4j/jmx/package-summary.html
+     * @see 
http://logging.apache.org/log4j/1.2/apidocs/index.html?org/apache/log4j/jmx/package-summary.html
      * @throws JMException if registration fails
      */
     @SuppressWarnings("rawtypes")
@@ -108,7 +106,7 @@ public class ManagedUtil {
                     hdm.getClass().getMethod("addLoggerMBean", 
String.class).invoke(hdm, loggerName);
                 }
             } catch (Exception e) {
-                LOG.error("Problems while registering log4j jmx beans!", e);
+                LOG.error("Problems while registering log4j 1.2 jmx beans!", 
e);
                 throw new JMException(e.toString());
             }
         }

Reply via email to