Author: markt Date: Mon Nov 1 17:22:33 2010 New Revision: 1029755 URL: http://svn.apache.org/viewvc?rev=1029755&view=rev Log: Make Tomcat more tolerant of nulls when generating JMX names for Valves.
Modified: tomcat/trunk/java/org/apache/catalina/mbeans/MBeanUtils.java tomcat/trunk/java/org/apache/catalina/valves/ValveBase.java tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/java/org/apache/catalina/mbeans/MBeanUtils.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/mbeans/MBeanUtils.java?rev=1029755&r1=1029754&r2=1029755&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/mbeans/MBeanUtils.java (original) +++ tomcat/trunk/java/org/apache/catalina/mbeans/MBeanUtils.java Mon Nov 1 17:22:33 2010 @@ -1690,7 +1690,7 @@ public class MBeanUtils { Container c = container; StringBuilder keyProperties = new StringBuilder(); - int unknown = 0; + int containerCount = 0; // Work up container hierarchy, add a component to the name for // each container @@ -1708,10 +1708,16 @@ public class MBeanUtils { } else if (c instanceof Host) { keyProperties.append(",host="); keyProperties.append(c.getName()); + } else if (c == null) { + // May happen in unit testing and/or some embedding scenarios + keyProperties.append(",container"); + keyProperties.append(containerCount++); + keyProperties.append("=null"); + break; } else { // Should never happen... - keyProperties.append(",unknown"); - keyProperties.append(unknown++); + keyProperties.append(",container"); + keyProperties.append(containerCount++); keyProperties.append('='); keyProperties.append(c.getName()); } Modified: tomcat/trunk/java/org/apache/catalina/valves/ValveBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/valves/ValveBase.java?rev=1029755&r1=1029754&r2=1029755&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/valves/ValveBase.java (original) +++ tomcat/trunk/java/org/apache/catalina/valves/ValveBase.java Mon Nov 1 17:22:33 2010 @@ -27,6 +27,7 @@ import org.apache.catalina.Contained; import org.apache.catalina.Container; import org.apache.catalina.LifecycleException; import org.apache.catalina.LifecycleState; +import org.apache.catalina.Pipeline; import org.apache.catalina.Valve; import org.apache.catalina.comet.CometEvent; import org.apache.catalina.connector.Request; @@ -289,19 +290,24 @@ public abstract class ValveBase extends name.append(MBeanUtils.getContainerKeyProperties(container)); int seq = 0; - for (Valve valve : container.getPipeline().getValves()) { - // Skip null valves - if (valve == null) { - continue; - } - // Only compare valves in pipeline until we find this valve - if (valve == this) { - break; - } - if (valve.getClass() == this.getClass()) { - // Duplicate valve earlier in pipeline - // increment sequence number - seq ++; + + // Pipeline may not be present in unit testing + Pipeline p = container.getPipeline(); + if (p != null) { + for (Valve valve : p.getValves()) { + // Skip null valves + if (valve == null) { + continue; + } + // Only compare valves in pipeline until we find this valve + if (valve == this) { + break; + } + if (valve.getClass() == this.getClass()) { + // Duplicate valve earlier in pipeline + // increment sequence number + seq ++; + } } } Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1029755&r1=1029754&r2=1029755&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Mon Nov 1 17:22:33 2010 @@ -87,6 +87,10 @@ <bug>49180</bug>: Add option to disable log rotation in juli FileHandler. credit: Pid (pidster at apache ) </fix> + <fix> + Make Tomcat more tolerant of <code>null</code> when generating JMX names + for Valves. (markt) + </fix> </changelog> </subsection> <subsection name="Jasper"> --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org