Author: carnold
Date: Wed Jan 14 10:53:15 2009
New Revision: 734480

URL: http://svn.apache.org/viewvc?rev=734480&view=rev
Log:
Bug 46163: LoggerDynamicMBean needs to handle a null Appender name

Modified:
    logging/log4j/trunk/src/changes/changes.xml
    
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/AbstractDynamicMBean.java
    
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/AppenderDynamicMBean.java
    
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/LoggerDynamicMBean.java

Modified: logging/log4j/trunk/src/changes/changes.xml
URL: 
http://svn.apache.org/viewvc/logging/log4j/trunk/src/changes/changes.xml?rev=734480&r1=734479&r2=734480&view=diff
==============================================================================
--- logging/log4j/trunk/src/changes/changes.xml (original)
+++ logging/log4j/trunk/src/changes/changes.xml Wed Jan 14 10:53:15 2009
@@ -72,6 +72,7 @@
        <action action="fix" issue="46271">SyslogAppender.append throws 
exception if layout is not set.</action>
        <action action="fix" issue="46144">QuietWriter.write should check for 
null argument.</action>
        <action action="fix" issue="46512">LogFactor5 CategoryPath doesn't 
replace slashes with dots.</action>
+       <action action="fix" issue="46163">LoggerDynamicMBean needs to handle a 
null Appender name.</action>
     </release>
 
   

Modified: 
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/AbstractDynamicMBean.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/AbstractDynamicMBean.java?rev=734480&r1=734479&r2=734480&view=diff
==============================================================================
--- 
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/AbstractDynamicMBean.java
 (original)
+++ 
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/AbstractDynamicMBean.java
 Wed Jan 14 10:53:15 2009
@@ -35,6 +35,7 @@
 import javax.management.RuntimeOperationsException;
 
 import org.apache.log4j.Logger;
+import org.apache.log4j.Appender;
 
 public abstract class AbstractDynamicMBean implements DynamicMBean,
                                                       MBeanRegistration {
@@ -43,6 +44,22 @@
   MBeanServer server;
   private final Vector mbeanList = new Vector();
 
+    /**
+     * Get MBean name.
+     * @param appender appender, may not be null.
+     * @return name.
+     * @since 1.2.16
+     */
+  static protected String getAppenderName(final Appender appender){
+      String name = appender.getName();
+      if (name == null || name.trim().length() == 0) {
+          // try to get some form of a name, because null is not allowed 
(exception), and empty string certainly isn't useful in JMX..
+          name = appender.toString();
+      }
+      return name;
+  }
+      
+
   /**
    * Enables the to get the values of several attributes of the Dynamic MBean.
    */

Modified: 
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/AppenderDynamicMBean.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/AppenderDynamicMBean.java?rev=734480&r1=734479&r2=734480&view=diff
==============================================================================
--- 
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/AppenderDynamicMBean.java
 (original)
+++ 
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/AppenderDynamicMBean.java
 Wed Jan 14 10:53:15 2009
@@ -193,7 +193,7 @@
     if(layout == null)
       return;
 
-    String name = appender.getName()+",layout="+layout.getClass().getName();
+    String name = 
getAppenderName(appender)+",layout="+layout.getClass().getName();
     cat.debug("Adding LayoutMBean:"+name);
     ObjectName objectName = null;
     try {

Modified: 
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/LoggerDynamicMBean.java
URL: 
http://svn.apache.org/viewvc/logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/LoggerDynamicMBean.java?rev=734480&r1=734479&r2=734480&view=diff
==============================================================================
--- 
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/LoggerDynamicMBean.java 
(original)
+++ 
logging/log4j/trunk/src/main/java/org/apache/log4j/jmx/LoggerDynamicMBean.java 
Wed Jan 14 10:53:15 2009
@@ -255,7 +255,7 @@
   }
 
   void registerAppenderMBean(Appender appender) {
-    String name = appender.getName();
+    String name = getAppenderName(appender);
     cat.debug("Adding AppenderMBean for appender named "+name);
     ObjectName objectName = null;
     try {



---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to