Author: markt Date: Wed Nov 12 10:48:41 2014 New Revision: 1638744 URL: http://svn.apache.org/r1638744 Log: Switch to using lastAsyncStart to calculate the async timeouts
Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Modified: tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java?rev=1638744&r1=1638743&r2=1638744&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/AbstractEndpoint.java Wed Nov 12 10:48:41 2014 @@ -129,7 +129,7 @@ public abstract class AbstractEndpoint<S } long now = System.currentTimeMillis(); for (SocketWrapperBase<S> socket : waitingRequests) { - long access = socket.getLastAccess(); + long access = socket.getLastAsyncStart(); if (socket.getTimeout() > 0 && (now - access) > socket.getTimeout()) { processSocket(socket, SocketStatus.TIMEOUT, true); } Modified: tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java?rev=1638744&r1=1638743&r2=1638744&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/NioEndpoint.java Wed Nov 12 10:48:41 2014 @@ -1292,7 +1292,7 @@ public class NioEndpoint extends Abstrac processKey(key,ka); } else if (!ka.isAsync() || ka.getTimeout() > 0) { // Async requests with a timeout of 0 or less never timeout - long delta = now - ka.getLastAccess(); + long delta = now - ka.getLastAsyncStart(); long timeout = (ka.getTimeout()==-1)?((long) socketProperties.getSoTimeout()):(ka.getTimeout()); boolean isTimedout = delta > timeout; if (isTimedout) { Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java?rev=1638744&r1=1638743&r2=1638744&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java (original) +++ tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapperBase.java Wed Nov 12 10:48:41 2014 @@ -118,15 +118,9 @@ public abstract class SocketWrapperBase< public void setSecure(boolean secure) { this.secure = secure; } public long getLastAccess() { return lastAccess; } public void access() { - // Async timeouts are based on the time between the call to startAsync() - // and complete() / dispatch() so don't update the last access time - // (that drives the timeout) on every read and write when using async - // processing. - if (!isAsync()) { - access(System.currentTimeMillis()); - } + access(System.currentTimeMillis()); } - public void access(long access) { lastAccess = access; } + void access(long access) { lastAccess = access; } public void setTimeout(long timeout) {this.timeout = timeout;} public long getTimeout() {return this.timeout;} public boolean getError() { return error; } --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org