From 72bd5612d61957bae6446063687043c5754882ba Mon Sep 17 00:00:00 2001
From: markt
Date: Mon, 6 Dec 2010 16:26:17 +0000
Subject: [PATCH] Fix mix-up of connectionUploadTimeout and connectionTimeout
Use connectionUploadTimeout consistently as attribute name Document
connectionUploadTimeout
git-svn-id: https://svn.apache.org/repos/asf/tomcat/trunk@1042706 13f79535-47bb-0310-9956-ffa450edef68
---
java/org/apache/catalina/connector/Connector.java | 1 -
.../coyote/http11/AbstractHttp11Processor.java | 10 ++++----
.../coyote/http11/AbstractHttp11Protocol.java | 27 +++++++++++++---------
.../apache/coyote/http11/Http11AprProcessor.java | 3 ++-
.../apache/coyote/http11/Http11AprProtocol.java | 16 ++-----------
.../apache/coyote/http11/Http11NioProcessor.java | 3 ++-
.../apache/coyote/http11/Http11NioProtocol.java | 3 ++-
java/org/apache/coyote/http11/Http11Processor.java | 2 +-
java/org/apache/coyote/http11/Http11Protocol.java | 3 ++-
webapps/docs/config/http.xml | 16 +++++++++----
10 files changed, 43 insertions(+), 41 deletions(-)
diff --git a/java/org/apache/catalina/connector/Connector.java b/java/org/apache/catalina/connector/Connector.java
index 6f0677b5e..9ec57b817 100644
--- a/java/org/apache/catalina/connector/Connector.java
+++ b/java/org/apache/catalina/connector/Connector.java
@@ -247,7 +247,6 @@ public class Connector extends LifecycleMBeanBase {
replacements.put("acceptCount", "backlog");
replacements.put("connectionLinger", "soLinger");
replacements.put("connectionTimeout", "soTimeout");
- replacements.put("connectionUploadTimeout", "timeout");
replacements.put("randomFile", "randomfile");
replacements.put("rootFile", "rootfile");
replacements.put("sslProtocols", "protocols");
diff --git a/java/org/apache/coyote/http11/AbstractHttp11Processor.java b/java/org/apache/coyote/http11/AbstractHttp11Processor.java
index 34598a930..22bca8e5b 100644
--- a/java/org/apache/coyote/http11/AbstractHttp11Processor.java
+++ b/java/org/apache/coyote/http11/AbstractHttp11Processor.java
@@ -181,7 +181,7 @@ public abstract class AbstractHttp11Processor implements ActionHook, Processor {
/**
* Maximum timeout on uploads. 5 minutes as in Apache HTTPD server.
*/
- protected int timeout = 300000;
+ protected int connectionUploadTimeout = 300000;
/**
@@ -582,15 +582,15 @@ public abstract class AbstractHttp11Processor implements ActionHook, Processor {
/**
* Set the upload timeout.
*/
- public void setTimeout( int timeouts ) {
- timeout = timeouts ;
+ public void setConnectionUploadTimeout(int timeout) {
+ connectionUploadTimeout = timeout ;
}
/**
* Get the upload timeout.
*/
- public int getTimeout() {
- return timeout;
+ public int getConnectionUploadTimeout() {
+ return connectionUploadTimeout;
}
diff --git a/java/org/apache/coyote/http11/AbstractHttp11Protocol.java b/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
index 3c1c43875..69d323d75 100644
--- a/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
+++ b/java/org/apache/coyote/http11/AbstractHttp11Protocol.java
@@ -152,14 +152,6 @@ public abstract class AbstractHttp11Protocol extends AbstractProtocolHandler {
return endpoint.getKeepAliveTimeout();
}
- public int getTimeout() {
- return getSoTimeout();
- }
-
- public void setTimeout( int timeout ) {
- setSoTimeout(timeout);
- }
-
public int getConnectionTimeout() {
return getSoTimeout();
}
@@ -198,14 +190,27 @@ public abstract class AbstractHttp11Protocol extends AbstractProtocolHandler {
public void setMaxHttpHeaderSize(int valueI) { maxHttpHeaderSize = valueI; }
+ /**
+ * Specifies a different (usually longer) connection timeout during data
+ * upload.
+ */
+ private int connectionUploadTimeout = 300000;
+ public int getConnectionUploadTimeout() { return connectionUploadTimeout; }
+ public void setConnectionUploadTimeout(int i) {
+ connectionUploadTimeout = i;
+ }
+
+
// HTTP
/**
- * If true, the regular socket timeout will be used for the full duration
- * of the connection.
+ * If true, the connectionUploadTimeout will be ignored and the regular
+ * socket timeout will be used for the full duration of the connection.
*/
private boolean disableUploadTimeout = true;
public boolean getDisableUploadTimeout() { return disableUploadTimeout; }
- public void setDisableUploadTimeout(boolean isDisabled) { disableUploadTimeout = isDisabled; }
+ public void setDisableUploadTimeout(boolean isDisabled) {
+ disableUploadTimeout = isDisabled;
+ }
// HTTP
diff --git a/java/org/apache/coyote/http11/Http11AprProcessor.java b/java/org/apache/coyote/http11/Http11AprProcessor.java
index c13c46ed9..c802542ad 100644
--- a/java/org/apache/coyote/http11/Http11AprProcessor.java
+++ b/java/org/apache/coyote/http11/Http11AprProcessor.java
@@ -238,7 +238,8 @@ public class Http11AprProcessor extends AbstractHttp11Processor {
request.setStartTime(System.currentTimeMillis());
keptAlive = true;
if (!disableUploadTimeout) {
- Socket.timeoutSet(socketRef, timeout * 1000);
+ Socket.timeoutSet(socketRef,
+ connectionUploadTimeout * 1000);
}
inputBuffer.parseHeaders();
} catch (IOException e) {
diff --git a/java/org/apache/coyote/http11/Http11AprProtocol.java b/java/org/apache/coyote/http11/Http11AprProtocol.java
index 13756f1b8..4dff0fdcc 100644
--- a/java/org/apache/coyote/http11/Http11AprProtocol.java
+++ b/java/org/apache/coyote/http11/Http11AprProtocol.java
@@ -143,19 +143,6 @@ public class Http11AprProtocol extends AbstractHttp11Protocol {
public boolean getDeferAccept() { return ((AprEndpoint)endpoint).getDeferAccept(); }
public void setDeferAccept(boolean deferAccept) { ((AprEndpoint)endpoint).setDeferAccept(deferAccept); }
- /**
- * This timeout represents the socket timeout which will be used while
- * the adapter execution is in progress, unless disableUploadTimeout
- * is set to true. The default is the same as for Apache HTTP Server
- * (300 000 milliseconds).
- * TODO: Make the timeout attribute names consistent across the connectors
- */
- protected int timeout = 300000;
- @Override
- public int getTimeout() { return timeout; }
- @Override
- public void setTimeout(int timeout) { this.timeout = timeout; }
-
// -------------------- SSL related properties --------------------
/**
@@ -437,7 +424,8 @@ public class Http11AprProtocol extends AbstractHttp11Protocol {
proto.getMaxTrailerSize());
processor.setAdapter(proto.adapter);
processor.setMaxKeepAliveRequests(proto.getMaxKeepAliveRequests());
- processor.setTimeout(proto.timeout);
+ processor.setConnectionUploadTimeout(
+ proto.getConnectionUploadTimeout());
processor.setDisableUploadTimeout(proto.getDisableUploadTimeout());
processor.setCompressionMinSize(proto.getCompressionMinSize());
processor.setCompression(proto.getCompression());
diff --git a/java/org/apache/coyote/http11/Http11NioProcessor.java b/java/org/apache/coyote/http11/Http11NioProcessor.java
index 3d5ff2ce8..cbb815784 100644
--- a/java/org/apache/coyote/http11/Http11NioProcessor.java
+++ b/java/org/apache/coyote/http11/Http11NioProcessor.java
@@ -339,7 +339,8 @@ public class Http11NioProcessor extends AbstractHttp11Processor {
}
request.setStartTime(System.currentTimeMillis());
if (!disableUploadTimeout) { //only for body, not for request headers
- socket.getIOChannel().socket().setSoTimeout(timeout);
+ socket.getIOChannel().socket().setSoTimeout(
+ connectionUploadTimeout);
}
} catch (IOException e) {
if (log.isDebugEnabled()) {
diff --git a/java/org/apache/coyote/http11/Http11NioProtocol.java b/java/org/apache/coyote/http11/Http11NioProtocol.java
index c29edabb9..404cba0af 100644
--- a/java/org/apache/coyote/http11/Http11NioProtocol.java
+++ b/java/org/apache/coyote/http11/Http11NioProtocol.java
@@ -427,7 +427,8 @@ public class Http11NioProtocol extends AbstractHttp11JsseProtocol {
proto.getMaxTrailerSize());
processor.setAdapter(proto.adapter);
processor.setMaxKeepAliveRequests(proto.getMaxKeepAliveRequests());
- processor.setTimeout(proto.getTimeout());
+ processor.setConnectionUploadTimeout(
+ proto.getConnectionUploadTimeout());
processor.setDisableUploadTimeout(proto.getDisableUploadTimeout());
processor.setCompressionMinSize(proto.getCompressionMinSize());
processor.setCompression(proto.getCompression());
diff --git a/java/org/apache/coyote/http11/Http11Processor.java b/java/org/apache/coyote/http11/Http11Processor.java
index 59f790923..a4069aeed 100644
--- a/java/org/apache/coyote/http11/Http11Processor.java
+++ b/java/org/apache/coyote/http11/Http11Processor.java
@@ -199,7 +199,7 @@ public class Http11Processor extends AbstractHttp11Processor {
if (disableUploadTimeout) {
socket.getSocket().setSoTimeout(soTimeout);
} else {
- socket.getSocket().setSoTimeout(timeout);
+ socket.getSocket().setSoTimeout(connectionUploadTimeout);
}
inputBuffer.parseHeaders();
} catch (IOException e) {
diff --git a/java/org/apache/coyote/http11/Http11Protocol.java b/java/org/apache/coyote/http11/Http11Protocol.java
index e4ed1e111..dae125aa9 100644
--- a/java/org/apache/coyote/http11/Http11Protocol.java
+++ b/java/org/apache/coyote/http11/Http11Protocol.java
@@ -299,7 +299,8 @@ public class Http11Protocol extends AbstractHttp11JsseProtocol {
processor.setAdapter(proto.adapter);
processor.setMaxKeepAliveRequests(proto.getMaxKeepAliveRequests());
processor.setKeepAliveTimeout(proto.getKeepAliveTimeout());
- processor.setTimeout(proto.getTimeout());
+ processor.setConnectionUploadTimeout(
+ proto.getConnectionUploadTimeout());
processor.setDisableUploadTimeout(proto.getDisableUploadTimeout());
processor.setCompressionMinSize(proto.getCompressionMinSize());
processor.setCompression(proto.getCompression());
diff --git a/webapps/docs/config/http.xml b/webapps/docs/config/http.xml
index ca3108866..53bbe56eb 100644
--- a/webapps/docs/config/http.xml
+++ b/webapps/docs/config/http.xml
@@ -300,12 +300,18 @@
presented. The default value is 60000 (i.e. 60 seconds).
+
+ Specifies the timeout, in milliseconds, to use while a data upload is
+ in progress. The only takes effect if
+ disableUploadTimeout is set to false.
+
+
+
- This flag allows the servlet container to use a different, longer
- connection timeout while a servlet is being executed, which in the end
- allows either the servlet a longer amount of time to complete its
- execution, or a longer timeout during data upload. If not specified,
- this attribute is set to "true".
+ This flag allows the servlet container to use a different, usually
+ longer connection timeout during data upload. If not specified, this
+ attribute is set to true which disables this longer timeout.
+
--
2.11.0