You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2016/10/31 12:10:23 UTC

svn commit: r1767259 - in /tomcat/trunk: java/org/apache/catalina/connector/Connector.java java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java webapps/docs/changelog.xml

Author: markt
Date: Mon Oct 31 12:10:22 2016
New Revision: 1767259

URL: http://svn.apache.org/viewvc?rev=1767259&view=rev
Log:
When a Connector is configured to use an executor, ensure that the StoreConfig component includes the executor name when writing the Connector configuration.

Modified:
    tomcat/trunk/java/org/apache/catalina/connector/Connector.java
    tomcat/trunk/java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java
    tomcat/trunk/webapps/docs/changelog.xml

Modified: tomcat/trunk/java/org/apache/catalina/connector/Connector.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/connector/Connector.java?rev=1767259&r1=1767258&r2=1767259&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/connector/Connector.java (original)
+++ tomcat/trunk/java/org/apache/catalina/connector/Connector.java Mon Oct 31 12:10:22 2016
@@ -59,6 +59,9 @@ public class Connector extends Lifecycle
         Boolean.parseBoolean(System.getProperty("org.apache.catalina.connector.RECYCLE_FACADES", "false"));
 
 
+    public static final String INTERNAL_EXECUTOR_NAME = "Internal";
+
+
     // ------------------------------------------------------------ Constructor
 
     /**
@@ -788,7 +791,7 @@ public class Connector extends Lifecycle
         if (obj instanceof org.apache.catalina.Executor) {
             return ((org.apache.catalina.Executor) obj).getName();
         }
-        return "Internal";
+        return INTERNAL_EXECUTOR_NAME;
     }
 
 

Modified: tomcat/trunk/java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java?rev=1767259&r1=1767258&r2=1767259&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java (original)
+++ tomcat/trunk/java/org/apache/catalina/storeconfig/ConnectorStoreAppender.java Mon Oct 31 12:10:22 2016
@@ -25,8 +25,10 @@ import java.io.IOException;
 import java.io.PrintWriter;
 import java.util.ArrayList;
 import java.util.HashMap;
+import java.util.HashSet;
 import java.util.Iterator;
 import java.util.List;
+import java.util.Set;
 
 import org.apache.catalina.connector.Connector;
 import org.apache.coyote.ProtocolHandler;
@@ -43,6 +45,7 @@ import org.apache.tomcat.util.net.Socket
 public class ConnectorStoreAppender extends StoreAppender {
 
     protected static final HashMap<String, String> replacements = new HashMap<>();
+    protected static final Set<String> internalExecutorAttributes = new HashSet<>();
     static {
         replacements.put("timeout", "connectionUploadTimeout");
         replacements.put("clientauth", "clientAuth");
@@ -52,6 +55,10 @@ public class ConnectorStoreAppender exte
         replacements.put("keytype", "keystoreType");
         replacements.put("protocol", "sslProtocol");
         replacements.put("protocols", "sslProtocols");
+
+        internalExecutorAttributes.add("maxThreads");
+        internalExecutorAttributes.add("minSpareThreads");
+        internalExecutorAttributes.add("threadPriority");
     }
 
     @Override
@@ -93,8 +100,13 @@ public class ConnectorStoreAppender exte
                 printValue(writer, indent, key, value);
             }
         }
-        if (protocol != null && !"HTTP/1.1".equals(protocol))
+        if (protocol != null && !"HTTP/1.1".equals(protocol)) {
             super.printValue(writer, indent, "protocol", protocol);
+        }
+        String executorName = connector.getExecutorName();
+        if (!Connector.INTERNAL_EXECUTOR_NAME.equals(executorName)) {
+            super.printValue(writer, indent, "executor", executorName);
+        }
 
     }
 
@@ -103,7 +115,7 @@ public class ConnectorStoreAppender exte
      *
      * @param bean The connector
      * @return List of Connector property names
-     * @throws IntrospectionException Error intropecting connector
+     * @throws IntrospectionException Error introspecting connector
      */
     protected List<String> getPropertyKeys(Connector bean)
             throws IntrospectionException {
@@ -147,6 +159,10 @@ public class ConnectorStoreAppender exte
                 continue; // Must be a read-write primitive or String
             }
             String key = descriptor.getName();
+            if (!Connector.INTERNAL_EXECUTOR_NAME.equals(bean.getExecutorName()) &&
+                    internalExecutorAttributes.contains(key)) {
+                continue;
+            }
             if (replacements.get(key) != null) {
                 key = replacements.get(key);
             }

Modified: tomcat/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/trunk/webapps/docs/changelog.xml?rev=1767259&r1=1767258&r2=1767259&view=diff
==============================================================================
--- tomcat/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/trunk/webapps/docs/changelog.xml Mon Oct 31 12:10:22 2016
@@ -92,6 +92,11 @@
         detection enabled (the default) but without the command line option it
         now requires. (markt)
       </add>
+      <fix>
+        When a Connector is configured to use an executor, ensure that the
+        StoreConfig component includes the executor name when writing the
+        Connector configuration. (markt)
+      </fix>
     </changelog>
   </subsection>
   <subsection name="Coyote">



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