Return-Path: Delivered-To: apmail-geronimo-scm-archive@www.apache.org Received: (qmail 56069 invoked from network); 10 Sep 2009 07:00:23 -0000 Received: from hermes.apache.org (HELO mail.apache.org) (140.211.11.3) by minotaur.apache.org with SMTP; 10 Sep 2009 07:00:23 -0000 Received: (qmail 78448 invoked by uid 500); 10 Sep 2009 07:00:23 -0000 Delivered-To: apmail-geronimo-scm-archive@geronimo.apache.org Received: (qmail 78363 invoked by uid 500); 10 Sep 2009 07:00:23 -0000 Mailing-List: contact scm-help@geronimo.apache.org; run by ezmlm Precedence: bulk list-help: list-unsubscribe: List-Post: Reply-To: dev@geronimo.apache.org List-Id: Delivered-To: mailing list scm@geronimo.apache.org Received: (qmail 78079 invoked by uid 99); 10 Sep 2009 07:00:22 -0000 Received: from athena.apache.org (HELO athena.apache.org) (140.211.11.136) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 10 Sep 2009 07:00:22 +0000 X-ASF-Spam-Status: No, hits=-2000.0 required=10.0 tests=ALL_TRUSTED X-Spam-Check-By: apache.org Received: from [140.211.11.4] (HELO eris.apache.org) (140.211.11.4) by apache.org (qpsmtpd/0.29) with ESMTP; Thu, 10 Sep 2009 07:00:13 +0000 Received: by eris.apache.org (Postfix, from userid 65534) id 8843B23888C5; Thu, 10 Sep 2009 06:59:53 +0000 (UTC) Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: svn commit: r813264 - in /geronimo/server/branches/2.2/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat: TomcatServerGBean.java connector/ConnectorGBean.java model/ServiceType.java Date: Thu, 10 Sep 2009 06:59:53 -0000 To: scm@geronimo.apache.org From: genspring@apache.org X-Mailer: svnmailer-1.0.8 Message-Id: <20090910065953.8843B23888C5@eris.apache.org> X-Virus-Checked: Checked by ClamAV on apache.org Author: genspring Date: Thu Sep 10 06:59:52 2009 New Revision: 813264 URL: http://svn.apache.org/viewvc?rev=813264&view=rev Log: GERONIMO-4856 Some abnormal conditions with Tomcat NIO HTTPS Connector Modified: geronimo/server/branches/2.2/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/TomcatServerGBean.java geronimo/server/branches/2.2/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/connector/ConnectorGBean.java geronimo/server/branches/2.2/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/model/ServiceType.java Modified: geronimo/server/branches/2.2/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/TomcatServerGBean.java URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.2/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/TomcatServerGBean.java?rev=813264&r1=813263&r2=813264&view=diff ============================================================================== --- geronimo/server/branches/2.2/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/TomcatServerGBean.java (original) +++ geronimo/server/branches/2.2/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/TomcatServerGBean.java Thu Sep 10 06:59:52 2009 @@ -40,6 +40,7 @@ import javax.xml.stream.XMLStreamException; import javax.xml.stream.XMLStreamReader; +import org.apache.catalina.Executor; import org.apache.catalina.Lifecycle; import org.apache.catalina.LifecycleListener; import org.apache.catalina.Server; @@ -70,6 +71,7 @@ private static final String DEFAULT_CATALINA_HOME = "var/catalina"; public static final Map ConnectorName=new HashMap(); public static final List LifecycleListeners=new ArrayList(); + public static final Map executors=new HashMap(); static { try { SERVER_CONTEXT = JAXBContext.newInstance(ServerType.class); Modified: geronimo/server/branches/2.2/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/connector/ConnectorGBean.java URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.2/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/connector/ConnectorGBean.java?rev=813264&r1=813263&r2=813264&view=diff ============================================================================== --- geronimo/server/branches/2.2/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/connector/ConnectorGBean.java (original) +++ geronimo/server/branches/2.2/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/connector/ConnectorGBean.java Thu Sep 10 06:59:52 2009 @@ -23,6 +23,7 @@ import javax.management.j2ee.statistics.Stats; +import org.apache.catalina.Executor; import org.apache.catalina.LifecycleException; import org.apache.catalina.LifecycleListener; import org.apache.catalina.connector.Connector; @@ -36,6 +37,7 @@ import org.apache.geronimo.tomcat.ObjectRetriever; import org.apache.geronimo.tomcat.TomcatContainer; import org.apache.geronimo.tomcat.TomcatServerGBean; +import org.apache.tomcat.util.IntrospectionUtils; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -50,7 +52,7 @@ protected final Connector connector; - private final TomcatContainer container; + protected final TomcatContainer container; private String name; @@ -110,7 +112,64 @@ } public void doStart() throws LifecycleException { + + String executorName=null; + Executor executor=null; + + if (this.connector.getAttribute("executor") != null) { + + Object value = connector.getAttribute("executor"); + if (value == null) + executorName=null; + + if (value instanceof String) + executorName= (String)value; + + if(value instanceof Executor){ + executorName= ((Executor) value).getName(); + } + + executor = TomcatServerGBean.executors.get(executorName); + + if (executor == null) { + + log.warn("No executor found with name:" + executorName+", trying to get default executor with name 'DefaultThreadPool'"); + executor = TomcatServerGBean.executors.get("DefaultThreadPool"); + } + + + } else { + + executor = TomcatServerGBean.executors.get("DefaultThreadPool"); + + if (executor == null) { + + log.warn("No executor found in service with name: DefaultThreadPool"); + + } + } + + + if (executor != null) + + { + log.info("executor"+executor.getName()+" found, set it to connector:"+this.getName() ); + + try { + + IntrospectionUtils.callMethod1(this.connector.getProtocolHandler(), + "setExecutor", + executor, + java.util.concurrent.Executor.class.getName(), + connector.getClass().getClassLoader()); + } catch (Exception e) { + + log.info("connector:"+this.getName()+"does not support executor set, do nothing"); + } + } + container.addConnector(this.connector); + log.debug("{} connector started", name); } Modified: geronimo/server/branches/2.2/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/model/ServiceType.java URL: http://svn.apache.org/viewvc/geronimo/server/branches/2.2/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/model/ServiceType.java?rev=813264&r1=813263&r2=813264&view=diff ============================================================================== --- geronimo/server/branches/2.2/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/model/ServiceType.java (original) +++ geronimo/server/branches/2.2/plugins/tomcat/geronimo-tomcat6/src/main/java/org/apache/geronimo/tomcat/model/ServiceType.java Thu Sep 10 06:59:52 2009 @@ -31,6 +31,7 @@ import org.apache.xbean.recipe.ObjectRecipe; import org.apache.xbean.recipe.Option; import org.apache.geronimo.kernel.Kernel; +import org.apache.geronimo.tomcat.TomcatServerGBean; /** @@ -271,6 +272,7 @@ for (ExecutorType executorType: getExecutor()) { Executor executor = executorType.getExecutor(cl, kernel); service.addExecutor(executor); + TomcatServerGBean.executors.put(executor.getName(), executor); } for (ConnectorType connectorType: getConnector()) { Connector connector = connectorType.getConnector(cl, service);