You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by rj...@apache.org on 2010/05/15 14:59:21 UTC

svn commit: r944633 - in /tomcat/trunk: java/org/apache/catalina/manager/JMXProxyServlet.java webapps/docs/changelog.xml

Author: rjung
Date: Sat May 15 12:59:21 2010
New Revision: 944633

URL: http://svn.apache.org/viewvc?rev=944633&view=rev
Log:
List array elements in the JMX proxy output of the
Manager application.

Modified:
    tomcat/trunk/java/org/apache/catalina/manager/JMXProxyServlet.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/java/org/apache/catalina/manager/JMXProxyServlet.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/manager/JMXProxyServlet.java?rev=944633&r1=944632&r2=944633&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/manager/JMXProxyServlet.java (original)
+++ tomcat/trunk/java/org/apache/catalina/manager/JMXProxyServlet.java Sat May 15 12:59:21 2010
@@ -21,6 +21,7 @@ package org.apache.catalina.manager;
 
 import java.io.IOException;
 import java.io.PrintWriter;
+import java.lang.reflect.Array;
 import java.util.Iterator;
 import java.util.Set;
 import javax.management.MBeanServer;
@@ -169,6 +170,7 @@ public class JMXProxyServlet extends Htt
                     if( ! attrs[i].isReadable() ) continue;
                     if( ! isSupported( attrs[i].getType() )) continue;
                     String attName=attrs[i].getName();
+                    if( "modelerType".equals( attName)) continue;
                     if( attName.indexOf( "=") >=0 ||
                             attName.indexOf( ":") >=0 ||
                             attName.indexOf( " ") >=0 ) {
@@ -183,9 +185,43 @@ public class JMXProxyServlet extends Htt
                         continue;
                     }
                     if( value==null ) continue;
-                    if( "modelerType".equals( attName)) continue;
-                    String valueString=value.toString();
-                    writer.println( attName + ": " + escape(valueString));
+                    String valueString;
+                    try {
+                        Class c = value.getClass();
+                        if (c.isArray()) {
+                            int len = Array.getLength(value);
+                            StringBuilder sb = new StringBuilder("Array[" +
+                                    c.getComponentType().getName() + "] of length " + len);
+                            if (len > 0) {
+                                sb.append("\r\n");
+                            }
+                            for (int j = 0; j < len; j++) {
+                                sb.append("\t");
+                                Object item = Array.get(value, j);
+                                if (item == null) {
+                                    sb.append("NULL VALUE");
+                                } else {
+                                    try {
+                                        sb.append(escape(item.toString()));
+                                    }
+                                    catch (Throwable t) {
+                                        sb.append("NON-STRINGABLE VALUE");
+                                    }
+                                }
+                                if (j < len - 1) {
+                                    sb.append("\r\n");
+                                }
+                            }
+                            valueString = sb.toString();
+                        }
+                        else {
+                            valueString = escape(value.toString());
+                        }
+                        writer.println( attName + ": " + valueString);
+                    }
+                    catch (Throwable t) {
+                        // Ignore
+                    }
                 }
             } catch (Exception e) {
                 // Ignore

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=944633&r1=944632&r2=944633&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Sat May 15 12:59:21 2010
@@ -213,6 +213,10 @@
         CSRF protection was added to the Manager and Host Manager applications.
         (markt)
       </add>
+      <add>
+        List array elements in the JMX proxy output of the Manager application.
+        (rjung)
+      </add>
     </changelog>
   </subsection>
   <subsection name="Extras">



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org