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 2017/07/24 13:48:46 UTC
svn commit: r1802814 - in /tomcat/tc8.0.x/trunk:
java/org/apache/coyote/http11/Http11Processor.java
java/org/apache/tomcat/util/net/AbstractEndpoint.java
java/org/apache/tomcat/util/net/JIoEndpoint.java webapps/docs/changelog.xml
Author: markt
Date: Mon Jul 24 13:48:45 2017
New Revision: 1802814
URL: http://svn.apache.org/viewvc?rev=1802814&view=rev
Log:
Fix https://bz.apache.org/bugzilla/show_bug.cgi?id=61322
Correct two regressions caused by the fix for bug 60319 when using BIO with an external Executor. Firstly, use the maxThreads setting from the Executor as the default for maxConnections if none is specified. Secondly, use maxThreads from the Executor when calculating the point at which to disable keep-alive.
Modified:
tomcat/tc8.0.x/trunk/java/org/apache/coyote/http11/Http11Processor.java
tomcat/tc8.0.x/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java
tomcat/tc8.0.x/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java
tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml
Modified: tomcat/tc8.0.x/trunk/java/org/apache/coyote/http11/Http11Processor.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=1802814&r1=1802813&r2=1802814&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/coyote/http11/Http11Processor.java (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/coyote/http11/Http11Processor.java Mon Jul 24 13:48:45 2017
@@ -107,7 +107,7 @@ public class Http11Processor extends Abs
// Only calculate a thread ratio when both are >0 to ensure we get a
// sensible result
int maxThreads, threadsBusy;
- if ((maxThreads = endpoint.getMaxThreads()) > 0
+ if ((maxThreads = endpoint.getMaxThreadsWithExecutor()) > 0
&& (threadsBusy = endpoint.getCurrentThreadsBusy()) > 0) {
threadRatio = (threadsBusy * 100) / maxThreads;
}
Modified: tomcat/tc8.0.x/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java?rev=1802814&r1=1802813&r2=1802814&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java Mon Jul 24 13:48:45 2017
@@ -421,6 +421,19 @@ public abstract class AbstractEndpoint<S
protected int getMaxThreadsInternal() {
return maxThreads;
}
+ public int getMaxThreadsWithExecutor() {
+ Executor executor = this.executor;
+ if (internalExecutor) {
+ return maxThreads;
+ } else {
+ if (executor instanceof java.util.concurrent.ThreadPoolExecutor) {
+ return ((java.util.concurrent.ThreadPoolExecutor) executor).getMaximumPoolSize();
+ } else if (executor instanceof ResizableExecutor) {
+ return ((ResizableExecutor) executor).getMaxThreads();
+ }
+ return -1;
+ }
+ }
/**
Modified: tomcat/tc8.0.x/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java?rev=1802814&r1=1802813&r2=1802814&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java (original)
+++ tomcat/tc8.0.x/trunk/java/org/apache/tomcat/util/net/JIoEndpoint.java Mon Jul 24 13:48:45 2017
@@ -348,7 +348,7 @@ public class JIoEndpoint extends Abstrac
// Initialize maxConnections
if (getMaxConnections() == 0) {
// User hasn't set a value - use the default
- setMaxConnections(getMaxThreadsInternal());
+ setMaxConnections(getMaxThreadsWithExecutor());
}
if (serverSocketFactory == null) {
Modified: tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml
URL: http://svn.apache.org/viewvc/tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml?rev=1802814&r1=1802813&r2=1802814&view=diff
==============================================================================
--- tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml (original)
+++ tomcat/tc8.0.x/trunk/webapps/docs/changelog.xml Mon Jul 24 13:48:45 2017
@@ -82,6 +82,18 @@
</fix>
</changelog>
</subsection>
+ <subsection name="Coyote">
+ <changelog>
+ <fix>
+ <bug>61322</bug>: Correct two regressions caused by the fix for
+ <bug>60319</bug> when using BIO with an external Executor. Firstly, use
+ the <code>maxThreads</code> setting from the Executor as the default for
+ <code>maxConnections</code> if none is specified. Secondly, use
+ <code>maxThreads</code> from the Executor when calculating the point at
+ which to disable keep-alive. (markt)
+ </fix>
+ </changelog>
+ </subsection>
<subsection name="Jasper">
<changelog>
<add>
---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org