You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2013/05/03 12:15:07 UTC

svn commit: r1478713 - /tomcat/trunk/java/org/apache/coyote/http11/

Author: markt
Date: Fri May  3 10:15:06 2013
New Revision: 1478713

URL: http://svn.apache.org/r1478713
Log:
Servlet 3.1 non-blocking refactoring
Pull up InputBuffer to AbstractHttp11Processor

Modified:
    tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
    tomcat/trunk/java/org/apache/coyote/http11/AbstractInputBuffer.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
    tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java
    tomcat/trunk/java/org/apache/coyote/http11/InternalAprInputBuffer.java
    tomcat/trunk/java/org/apache/coyote/http11/InternalInputBuffer.java
    tomcat/trunk/java/org/apache/coyote/http11/InternalNioInputBuffer.java

Modified: tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java?rev=1478713&r1=1478712&r2=1478713&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/AbstractHttp11Processor.java Fri May  3 10:15:06 2013
@@ -65,6 +65,12 @@ public abstract class AbstractHttp11Proc
 
 
     /**
+     * Input.
+     */
+    protected AbstractInputBuffer<S> inputBuffer ;
+
+
+    /**
      * Output.
      */
     protected AbstractOutputBuffer<S> outputBuffer;

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=1478713&r1=1478712&r2=1478713&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/AbstractInputBuffer.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/AbstractInputBuffer.java Fri May  3 10:15:06 2013
@@ -238,9 +238,14 @@ public abstract class AbstractInputBuffe
     protected abstract void init(SocketWrapper<S> socketWrapper,
             AbstractEndpoint endpoint) throws IOException;
 
+    /**
+     * Issues a non blocking read.
+     * @return int  Number of bytes read
+     */
+    protected abstract int nbRead() throws IOException;
 
-    // --------------------------------------------------------- Public Methods
 
+    // --------------------------------------------------------- Public Methods
 
     /**
      * Recycle the input buffer. This should be called when closing the

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java?rev=1478713&r1=1478712&r2=1478713&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11AprProcessor.java Fri May  3 10:15:06 2013
@@ -74,13 +74,6 @@ public class Http11AprProcessor extends 
 
     // ----------------------------------------------------- Instance Variables
 
-
-    /**
-     * Input.
-     */
-    protected final InternalAprInputBuffer inputBuffer;
-
-
     /**
      * Sendfile data.
      */

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java?rev=1478713&r1=1478712&r2=1478713&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11NioProcessor.java Fri May  3 10:15:06 2013
@@ -79,11 +79,6 @@ public class Http11NioProcessor extends 
 
 
     // ----------------------------------------------------- Instance Variables
-    /**
-     * Input.
-     */
-    protected final InternalNioInputBuffer inputBuffer;
-
 
     /**
      * Sendfile data.
@@ -283,7 +278,8 @@ public class Http11NioProcessor extends 
         // open
         openSocket = true;
         // Check to see if we have read any of the request line yet
-        if (inputBuffer.getParsingRequestLinePhase() < 2) {
+        if (((InternalNioInputBuffer)
+                inputBuffer).getParsingRequestLinePhase() < 2) {
             if (socket.getLastAccess() > -1 || keptAlive) {
                 // Haven't read the request line and have previously processed a
                 // request. Must be keep-alive. Make sure poller uses keepAlive.

Modified: tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java?rev=1478713&r1=1478712&r2=1478713&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/Http11Processor.java Fri May  3 10:15:06 2013
@@ -66,13 +66,6 @@ public class Http11Processor extends Abs
 
     // ----------------------------------------------------- Instance Variables
 
-
-    /**
-     * Input.
-     */
-    protected final InternalInputBuffer inputBuffer ;
-
-
     /**
      * SSL information.
      */
@@ -164,7 +157,8 @@ public class Http11Processor extends Abs
                 }
             }
             socket.getSocket().setSoTimeout(firstReadTimeout);
-            if (!inputBuffer.fill()) {
+            // Blocking IO so fill() always blocks
+            if (!inputBuffer.fill(true)) {
                 throw new EOFException(sm.getString("iib.eof.error"));
             }
             // Once the first byte has been read, the standard timeout should be

Modified: tomcat/trunk/java/org/apache/coyote/http11/InternalAprInputBuffer.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/InternalAprInputBuffer.java?rev=1478713&r1=1478712&r2=1478713&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/InternalAprInputBuffer.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/InternalAprInputBuffer.java Fri May  3 10:15:06 2013
@@ -629,9 +629,15 @@ public class InternalAprInputBuffer exte
     }
 
 
-    // ------------------------------------- InputStreamInputBuffer Inner Class
+    @Override
+    protected int nbRead() throws IOException {
+        // TODO Auto-generated method stub
+        return 0;
+    }
 
 
+    // ------------------------------------- InputStreamInputBuffer Inner Class
+
     /**
      * This class is an input buffer which will read its data from an input
      * stream.

Modified: tomcat/trunk/java/org/apache/coyote/http11/InternalInputBuffer.java
URL: http://svn.apache.org/viewvc/tomcat/trunk/java/org/apache/coyote/http11/InternalInputBuffer.java?rev=1478713&r1=1478712&r2=1478713&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/InternalInputBuffer.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/InternalInputBuffer.java Fri May  3 10:15:06 2013
@@ -547,9 +547,15 @@ public class InternalInputBuffer extends
     }
 
 
-    // ------------------------------------- InputStreamInputBuffer Inner Class
+    @Override
+    protected int nbRead() throws IOException {
+        // TODO Auto-generated method stub
+        return 0;
+    }
 
 
+    // ------------------------------------- InputStreamInputBuffer Inner Class
+
     /**
      * This class is an input buffer which will read its data from an input
      * stream.

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=1478713&r1=1478712&r2=1478713&view=diff
==============================================================================
--- tomcat/trunk/java/org/apache/coyote/http11/InternalNioInputBuffer.java (original)
+++ tomcat/trunk/java/org/apache/coyote/http11/InternalNioInputBuffer.java Fri May  3 10:15:06 2013
@@ -189,17 +189,13 @@ public class InternalNioInputBuffer exte
         return available;
     }
 
-    /**
-     * Issues a non blocking read
-     * @return int - nr of bytes read
-     * @throws IOException
-     */
+
+    @Override
     public int nbRead() throws IOException {
         return readSocket(true,false);
     }
 
 
-
     /**
      * Recycle the input buffer. This should be called when closing the
      * connection.



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