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

Reply via email to