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

Reply via email to