Author: markt
Date: Thu Sep 19 10:41:27 2013
New Revision: 1524683
URL: http://svn.apache.org/r1524683
Log:
Revert addition of closing flag on wrapper. A more robust solution is required.
Modified:
tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java
tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletInputStream.java
tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletOutputStream.java
tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapper.java
Modified: tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java?rev=1524683&r1=1524682&r2=1524683&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java (original)
+++ tomcat/trunk/java/org/apache/coyote/AbstractProtocol.java Thu Sep 19
10:41:27 2013
@@ -703,7 +703,6 @@ public abstract class AbstractProtocol<S
} else {
// Connection closed. OK to recycle the processor. Upgrade
// processors are not recycled.
- wrapper.setClosing(true);
connections.remove(socket);
if (processor.isUpgrade()) {
processor.getHttpUpgradeHandler().destroy();
Modified:
tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletInputStream.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletInputStream.java?rev=1524683&r1=1524682&r2=1524683&view=diff
==============================================================================
---
tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletInputStream.java
(original)
+++
tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletInputStream.java
Thu Sep 19 10:41:27 2013
@@ -50,7 +50,7 @@ public class AprServletInputStream exten
try {
readLock.lock();
if (wrapper.getBlockingStatus() == block) {
- if (closed || wrapper.isClosing()) {
+ if (closed) {
throw new IOException(sm.getString("apr.closed"));
}
result = Socket.recv(socket, b, off, len);
@@ -70,7 +70,7 @@ public class AprServletInputStream exten
try {
readLock.lock();
writeLock.unlock();
- if (closed || wrapper.isClosing()) {
+ if (closed) {
throw new IOException(sm.getString("apr.closed"));
}
result = Socket.recv(socket, b, off, len);
Modified:
tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletOutputStream.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletOutputStream.java?rev=1524683&r1=1524682&r2=1524683&view=diff
==============================================================================
---
tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletOutputStream.java
(original)
+++
tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletOutputStream.java
Thu Sep 19 10:41:27 2013
@@ -60,7 +60,7 @@ public class AprServletOutputStream exte
try {
readLock.lock();
if (wrapper.getBlockingStatus() == block) {
- if (closed || wrapper.isClosing()) {
+ if (closed) {
throw new IOException(sm.getString("apr.closed"));
}
return doWriteInternal(b, off, len);
@@ -83,7 +83,7 @@ public class AprServletOutputStream exte
try {
readLock.lock();
writeLock.unlock();
- if (closed || wrapper.isClosing()) {
+ if (closed) {
throw new IOException(sm.getString("apr.closed"));
}
return doWriteInternal(b, off, len);
Modified: tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapper.java
URL:
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapper.java?rev=1524683&r1=1524682&r2=1524683&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapper.java (original)
+++ tomcat/trunk/java/org/apache/tomcat/util/net/SocketWrapper.java Thu Sep 19
10:41:27 2013
@@ -64,17 +64,6 @@ public class SocketWrapper<E> {
private Set<DispatchType> dispatches = new LinkedHashSet<>();
- /*
- * Used to indicate that the socket is in the process of closing / has been
- * closed. Once this flag has been set, no further reads or writes should
- * take place. Its primary purpose is with upgraded connections where a
- * socket may be in use in application code with no immediate way to signal
- * that the socket is no longer valid. Checking this flag before any
- * application triggered read or write will enable an IOException to be
- * thrown.
- */
- private boolean closing = false;
-
public SocketWrapper(E socket) {
this.socket = socket;
ReentrantReadWriteLock lock = new ReentrantReadWriteLock();
@@ -142,13 +131,10 @@ public class SocketWrapper<E> {
public void clearDispatches() {
dispatches.clear();
}
- public boolean isClosing() { return closing; }
- public void setClosing(boolean closing) { this.closing = closing; }
public void reset(E socket, long timeout) {
async = false;
blockingStatus = true;
- closing = false;
comet = false;
dispatches.clear();
error = false;
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]