Author: markt Date: Tue Oct 22 08:34:32 2013 New Revision: 1534540 URL: http://svn.apache.org/r1534540 Log: Check for closed sockets earlier and reduce code duplication.
Modified: tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletInputStream.java tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletOutputStream.java 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=1534540&r1=1534539&r2=1534540&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletInputStream.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletInputStream.java Tue Oct 22 08:34:32 2013 @@ -44,6 +44,10 @@ public class AprServletInputStream exten protected int doRead(boolean block, byte[] b, int off, int len) throws IOException { + if (closed) { + throw new IOException(sm.getString("apr.closed", Long.valueOf(socket))); + } + Lock readLock = wrapper.getBlockingStatusReadLock(); WriteLock writeLock = wrapper.getBlockingStatusWriteLock(); @@ -52,9 +56,6 @@ public class AprServletInputStream exten try { readLock.lock(); if (wrapper.getBlockingStatus() == block) { - if (closed) { - throw new IOException(sm.getString("apr.closed", Long.valueOf(socket))); - } result = Socket.recv(socket, b, off, len); readDone = true; } @@ -72,9 +73,6 @@ public class AprServletInputStream exten try { readLock.lock(); writeLock.unlock(); - if (closed) { - throw new IOException(sm.getString("apr.closed", Long.valueOf(socket))); - } result = Socket.recv(socket, b, off, len); } finally { readLock.unlock(); 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=1534540&r1=1534539&r2=1534540&view=diff ============================================================================== --- tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletOutputStream.java (original) +++ tomcat/trunk/java/org/apache/coyote/http11/upgrade/AprServletOutputStream.java Tue Oct 22 08:34:32 2013 @@ -56,15 +56,16 @@ public class AprServletOutputStream exte protected int doWrite(boolean block, byte[] b, int off, int len) throws IOException { + if (closed) { + throw new IOException(sm.getString("apr.closed", Long.valueOf(socket))); + } + Lock readLock = wrapper.getBlockingStatusReadLock(); WriteLock writeLock = wrapper.getBlockingStatusWriteLock(); try { readLock.lock(); if (wrapper.getBlockingStatus() == block) { - if (closed) { - throw new IOException(sm.getString("apr.closed", Long.valueOf(socket))); - } return doWriteInternal(b, off, len); } } finally { @@ -85,9 +86,6 @@ public class AprServletOutputStream exte try { readLock.lock(); writeLock.unlock(); - if (closed) { - throw new IOException(sm.getString("apr.closed", Long.valueOf(socket))); - } return doWriteInternal(b, off, len); } finally { readLock.unlock(); --------------------------------------------------------------------- To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org For additional commands, e-mail: dev-h...@tomcat.apache.org