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-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org