Author: markt
Date: Wed Aug 28 10:20:21 2013
New Revision: 1518144

URL: http://svn.apache.org/r1518144
Log:
Refactoring.
Pull up code from NIO that also does a non-blocking read in the available() 
call. This makes NIO and APR consistent. BIO is unaffected as it overrides 
available() and always returns 1.

Modified:
    tomcat/trunk/java/org/apache/coyote/http11/AbstractInputBuffer.java
    tomcat/trunk/java/org/apache/coyote/http11/InternalNioInputBuffer.java

Modified: tomcat/trunk/java/org/apache/coyote/http11/AbstractInputBuffer.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractInputBuffer.java?rev=1518144&r1=1518143&r2=1518144&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/AbstractInputBuffer.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/AbstractInputBuffer.java Wed Aug 
28 10:20:21 2013
@@ -343,6 +343,21 @@ public abstract class AbstractInputBuffe
                 available = activeFilters[i].available();
             }
         }
+        if (available > 0) {
+            return available;
+        }
+
+        try {
+            available = nbRead();
+        } catch (IOException ioe) {
+            if (getLog().isDebugEnabled()) {
+                getLog().debug(sm.getString("iib.available.readFail"), ioe);
+            }
+            // Not ideal. This will indicate that data is available which 
should
+            // trigger a read which in turn will trigger another IOException 
and
+            // that one can be thrown.
+            available = 1;
+        }
         return available;
     }
 

Modified: tomcat/trunk/java/org/apache/coyote/http11/InternalNioInputBuffer.java
URL: 
http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/InternalNioInputBuffer.java?rev=1518144&r1=1518143&r2=1518144&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/InternalNioInputBuffer.java 
(original)
+++ tomcat/trunk/java/org/apache/coyote/http11/InternalNioInputBuffer.java Wed 
Aug 28 10:20:21 2013
@@ -158,29 +158,6 @@ public class InternalNioInputBuffer exte
     // --------------------------------------------------------- Public Methods
 
     @Override
-    public int available() {
-
-        int available = super.available();
-        if (available>0) {
-            return available;
-        }
-
-        try {
-            available = nbRead();
-        }catch (IOException ioe) {
-            if (log.isDebugEnabled()) {
-                log.debug(sm.getString("iib.available.readFail"), ioe);
-            }
-            // Not ideal. This will indicate that data is available which 
should
-            // trigger a read which in turn will trigger another IOException 
and
-            // that one can be thrown.
-            available = 1;
-        }
-        return available;
-    }
-
-
-    @Override
     public int nbRead() throws IOException {
         return readSocket(true,false);
     }



---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscr...@tomcat.apache.org
For additional commands, e-mail: dev-h...@tomcat.apache.org

Reply via email to