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: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org