Author: markt Date: Fri Nov 25 09:35:20 2016 New Revision: 1771263 URL: http://svn.apache.org/viewvc?rev=1771263&view=rev Log: Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=60381 Provide a standard toString() implementation for components that implement Contained.
Added: tomcat/trunk/java/org/apache/catalina/util/ToStringUtil.java (with props) Modified: tomcat/trunk/java/org/apache/catalina/core/StandardPipeline.java tomcat/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java tomcat/trunk/java/org/apache/catalina/session/StoreBase.java tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java tomcat/trunk/java/org/apache/catalina/valves/ValveBase.java tomcat/trunk/webapps/docs/changelog.xml Modified: tomcat/trunk/java/org/apache/catalina/core/StandardPipeline.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/core/StandardPipeline.java?rev=1771263&r1=1771262&r2=1771263&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/core/StandardPipeline.java (original) +++ tomcat/trunk/java/org/apache/catalina/core/StandardPipeline.java Fri Nov 25 09:35:20 2016 @@ -32,6 +32,7 @@ import org.apache.catalina.LifecycleStat import org.apache.catalina.Pipeline; import org.apache.catalina.Valve; import org.apache.catalina.util.LifecycleBase; +import org.apache.catalina.util.ToStringUtil; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.ExceptionUtils; @@ -213,10 +214,7 @@ public class StandardPipeline extends Li */ @Override public String toString() { - StringBuilder sb = new StringBuilder("Pipeline["); - sb.append(container); - sb.append(']'); - return sb.toString(); + return ToStringUtil.toString(this); } Modified: tomcat/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java?rev=1771263&r1=1771262&r2=1771263&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java (original) +++ tomcat/trunk/java/org/apache/catalina/ha/tcp/SimpleTcpCluster.java Fri Nov 25 09:35:20 2016 @@ -55,6 +55,7 @@ import org.apache.catalina.tribes.group. import org.apache.catalina.tribes.group.interceptors.MessageDispatchInterceptor; import org.apache.catalina.tribes.group.interceptors.TcpFailureDetector; import org.apache.catalina.util.LifecycleMBeanBase; +import org.apache.catalina.util.ToStringUtil; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.res.StringManager; @@ -639,15 +640,7 @@ public class SimpleTcpCluster extends Li */ @Override public String toString() { - StringBuilder sb = new StringBuilder(this.getClass().getName()); - sb.append('['); - if (container == null) { - sb.append("Container is null"); - } else { - sb.append(container.getName()); - } - sb.append(']'); - return sb.toString(); + return ToStringUtil.toString(this); } Modified: tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java?rev=1771263&r1=1771262&r2=1771263&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java (original) +++ tomcat/trunk/java/org/apache/catalina/loader/WebappLoader.java Fri Nov 25 09:35:20 2016 @@ -38,6 +38,7 @@ import org.apache.catalina.LifecycleExce import org.apache.catalina.LifecycleState; import org.apache.catalina.Loader; import org.apache.catalina.util.LifecycleMBeanBase; +import org.apache.catalina.util.ToStringUtil; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.ExceptionUtils; @@ -360,11 +361,7 @@ public class WebappLoader extends Lifecy */ @Override public String toString() { - StringBuilder sb = new StringBuilder("WebappLoader["); - if (context != null) - sb.append(context.getName()); - sb.append("]"); - return (sb.toString()); + return ToStringUtil.toString(this, context); } Modified: tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java?rev=1771263&r1=1771262&r2=1771263&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java (original) +++ tomcat/trunk/java/org/apache/catalina/realm/RealmBase.java Fri Nov 25 09:35:20 2016 @@ -49,6 +49,7 @@ import org.apache.catalina.connector.Req import org.apache.catalina.connector.Response; import org.apache.catalina.util.LifecycleMBeanBase; import org.apache.catalina.util.SessionConfig; +import org.apache.catalina.util.ToStringUtil; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.IntrospectionUtils; @@ -1101,10 +1102,7 @@ public abstract class RealmBase extends */ @Override public String toString() { - StringBuilder sb = new StringBuilder("Realm["); - sb.append(getName()); - sb.append(']'); - return sb.toString(); + return ToStringUtil.toString(this); } Modified: tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java?rev=1771263&r1=1771262&r2=1771263&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java (original) +++ tomcat/trunk/java/org/apache/catalina/session/ManagerBase.java Fri Nov 25 09:35:20 2016 @@ -47,6 +47,7 @@ import org.apache.catalina.SessionIdGene import org.apache.catalina.util.LifecycleMBeanBase; import org.apache.catalina.util.SessionIdGeneratorBase; import org.apache.catalina.util.StandardSessionIdGenerator; +import org.apache.catalina.util.ToStringUtil; import org.apache.juli.logging.Log; import org.apache.juli.logging.LogFactory; import org.apache.tomcat.util.res.StringManager; @@ -1213,15 +1214,7 @@ public abstract class ManagerBase extend @Override public String toString() { - StringBuilder sb = new StringBuilder(this.getClass().getName()); - sb.append('['); - if (context == null) { - sb.append("Context is null"); - } else { - sb.append(context.getName()); - } - sb.append(']'); - return sb.toString(); + return ToStringUtil.toString(this, context); } Modified: tomcat/trunk/java/org/apache/catalina/session/StoreBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/session/StoreBase.java?rev=1771263&r1=1771262&r2=1771263&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/session/StoreBase.java (original) +++ tomcat/trunk/java/org/apache/catalina/session/StoreBase.java Fri Nov 25 09:35:20 2016 @@ -30,6 +30,7 @@ import org.apache.catalina.Manager; import org.apache.catalina.Store; import org.apache.catalina.util.CustomObjectInputStream; import org.apache.catalina.util.LifecycleBase; +import org.apache.catalina.util.ToStringUtil; import org.apache.tomcat.util.res.StringManager; /** @@ -277,14 +278,6 @@ public abstract class StoreBase extends */ @Override public String toString() { - StringBuilder sb = new StringBuilder(this.getClass().getName()); - sb.append('['); - if (manager == null) { - sb.append("Manager is null"); - } else { - sb.append(manager); - } - sb.append(']'); - return sb.toString(); + return ToStringUtil.toString(this, manager); } } Modified: tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java?rev=1771263&r1=1771262&r2=1771263&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java (original) +++ tomcat/trunk/java/org/apache/catalina/startup/Tomcat.java Fri Nov 25 09:35:20 2016 @@ -643,34 +643,37 @@ public class Tomcat { * @return a realm instance */ protected Realm createDefaultRealm() { - return new RealmBase() { - @Override - protected String getName() { - return "Simple"; - } + return new SimpleRealm(); + } - @Override - protected String getPassword(String username) { - return userPass.get(username); - } - @Override - protected Principal getPrincipal(String username) { - Principal p = userPrincipals.get(username); - if (p == null) { - String pass = userPass.get(username); - if (pass != null) { - p = new GenericPrincipal(username, pass, - userRoles.get(username)); - userPrincipals.put(username, p); - } + private class SimpleRealm extends RealmBase { + @Override + protected String getName() { + return "Simple"; + } + + @Override + protected String getPassword(String username) { + return userPass.get(username); + } + + @Override + protected Principal getPrincipal(String username) { + Principal p = userPrincipals.get(username); + if (p == null) { + String pass = userPass.get(username); + if (pass != null) { + p = new GenericPrincipal(username, pass, + userRoles.get(username)); + userPrincipals.put(username, p); } - return p; } - - }; + return p; + } } + protected void initBaseDir() { String catalinaHome = System.getProperty(Globals.CATALINA_HOME_PROP); if (basedir == null) { Added: tomcat/trunk/java/org/apache/catalina/util/ToStringUtil.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/util/ToStringUtil.java?rev=1771263&view=auto ============================================================================== --- tomcat/trunk/java/org/apache/catalina/util/ToStringUtil.java (added) +++ tomcat/trunk/java/org/apache/catalina/util/ToStringUtil.java Fri Nov 25 09:35:20 2016 @@ -0,0 +1,62 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package org.apache.catalina.util; + +import org.apache.catalina.Contained; +import org.apache.catalina.Container; +import org.apache.catalina.Manager; + +/** + * Utility class used to help generate return values for calls to + * {@link Object#toString()}. + */ +public class ToStringUtil { + + private ToStringUtil() { + // Utility class. Hide default constructor + } + + + public static final String toString(Contained contained) { + return toString(contained, contained.getContainer()); + } + + + public static final String toString(Object obj, Container container) { + return containedToString(obj, container, "Container"); + } + + + public static final String toString(Object obj, Manager manager) { + return containedToString(obj, manager, "Manager"); + } + + + private static final String containedToString(Object contained, Object container, + String containerTypeName) { + StringBuilder sb = new StringBuilder(contained.getClass().getSimpleName()); + sb.append('['); + if (container == null) { + sb.append(containerTypeName); + sb.append(" is null"); + } else { + sb.append(container.toString()); + } + sb.append(']'); + return sb.toString(); + } +} Propchange: tomcat/trunk/java/org/apache/catalina/util/ToStringUtil.java ------------------------------------------------------------------------------ svn:eol-style = native 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=1771263&r1=1771262&r2=1771263&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/catalina/valves/ValveBase.java (original) +++ tomcat/trunk/java/org/apache/catalina/valves/ValveBase.java Fri Nov 25 09:35:20 2016 @@ -23,6 +23,7 @@ import org.apache.catalina.LifecycleStat import org.apache.catalina.Pipeline; import org.apache.catalina.Valve; import org.apache.catalina.util.LifecycleMBeanBase; +import org.apache.catalina.util.ToStringUtil; import org.apache.juli.logging.Log; import org.apache.tomcat.util.res.StringManager; @@ -183,15 +184,7 @@ public abstract class ValveBase extends */ @Override public String toString() { - StringBuilder sb = new StringBuilder(this.getClass().getName()); - sb.append('['); - if (container == null) { - sb.append("Container is null"); - } else { - sb.append(container.getName()); - } - sb.append(']'); - return sb.toString(); + return ToStringUtil.toString(this); } Modified: tomcat/trunk/webapps/docs/changelog.xml URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1771263&r1=1771262&r2=1771263&view=diff ============================================================================== --- tomcat/trunk/webapps/docs/changelog.xml (original) +++ tomcat/trunk/webapps/docs/changelog.xml Fri Nov 25 09:35:20 2016 @@ -85,6 +85,11 @@ Osipov. (markt) </fix> <fix> + <bug>60381</bug>: Provide a standard <code>toString()</code> + implementation for components that implement <code>Contained</code>. + (markt) + </fix> + <fix> <bug>60387</bug>: Correct the javadoc for <code>o.a.catalina.AccessLog.setRequestAttributesEnabled</code>. The default value is different for the different implementations. --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org