You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2007/06/10 13:46:08 UTC

svn commit: r545868 - /jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpClientHandler.java

Author: olegk
Date: Sun Jun 10 04:46:07 2007
New Revision: 545868

URL: http://svn.apache.org/viewvc?view=rev&rev=545868
Log:
Some minor code refactoring in BufferingHttpClientHandler

Modified:
    jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpClientHandler.java

Modified: jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpClientHandler.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpClientHandler.java?view=diff&rev=545868&r1=545867&r2=545868
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpClientHandler.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpClientHandler.java Sun Jun 10 04:46:07 2007
@@ -191,7 +191,33 @@
         
         try {
             
-            submitRequest(conn, connState);                
+            HttpRequest request = this.execHandler.submitRequest(context);
+            if (request == null) {
+                return;
+            }
+            
+            HttpParamsLinker.link(request, this.params);
+            
+            context.setAttribute(HttpExecutionContext.HTTP_REQUEST, request);
+            this.httpProcessor.process(request, context);
+            connState.setRequest(request);
+            conn.submitRequest(request);
+            connState.setOutputState(ClientConnState.REQUEST_SENT);
+            
+            if (request instanceof HttpEntityEnclosingRequest) {
+                if (((HttpEntityEnclosingRequest) request).expectContinue()) {
+                    int timeout = conn.getSocketTimeout();
+                    connState.setTimeout(timeout);
+                    timeout = this.params.getIntParameter(
+                            HttpProtocolParams.WAIT_FOR_CONTINUE, 3000);
+                    conn.setSocketTimeout(timeout);
+                    connState.setOutputState(ClientConnState.EXPECT_CONTINUE);
+                } else {
+                    prepareRequestBody(
+                            (HttpEntityEnclosingRequest) request, 
+                            connState);
+                }
+            }
             
         } catch (IOException ex) {
             shutdownConnection(conn);
@@ -210,18 +236,16 @@
         HttpContext context = conn.getContext();
 
         ClientConnState connState = (ClientConnState) context.getAttribute(CONN_STATE);
-        
-        connState.setInputState(ClientConnState.RESPONSE_BODY_STREAM);
         ContentInputBuffer buffer = connState.getInbuffer();
 
         try {
 
             buffer.consumeContent(decoder);
             if (decoder.isCompleted()) {
-
                 connState.setInputState(ClientConnState.RESPONSE_BODY_DONE);
                 processResponse(conn, connState);
-                
+            } else {
+                connState.setInputState(ClientConnState.RESPONSE_BODY_STREAM);
             }
             
         } catch (IOException ex) {
@@ -241,22 +265,20 @@
         HttpContext context = conn.getContext();
 
         ClientConnState connState = (ClientConnState) context.getAttribute(CONN_STATE);
-        
-        if (connState.getOutputState() == ClientConnState.EXPECT_CONTINUE) {
-            conn.suspendOutput();
-            return;
-        }
-        
-        connState.setInputState(ClientConnState.REQUEST_BODY_STREAM);
         ContentOutputBuffer buffer = connState.getOutbuffer();
-
+        
         try {
+
+            if (connState.getOutputState() == ClientConnState.EXPECT_CONTINUE) {
+                conn.suspendOutput();
+                return;
+            }
             
             buffer.produceContent(encoder);
             if (encoder.isCompleted()) {
-
                 connState.setInputState(ClientConnState.REQUEST_BODY_DONE);
-                
+            } else {
+                connState.setInputState(ClientConnState.REQUEST_BODY_STREAM);
             }
             
         } catch (IOException ex) {
@@ -346,40 +368,6 @@
         this.execHandler.initalizeContext(context, attachment);
     }
     
-    private void submitRequest(
-            final NHttpClientConnection conn, 
-            final ClientConnState connState) throws IOException, HttpException {
-        
-        connState.resetOutput();
-        
-        HttpContext context = conn.getContext();
-        HttpRequest request = this.execHandler.submitRequest(context);
-        if (request == null) {
-            return;
-        }
-        
-        HttpParamsLinker.link(request, this.params);
-        
-        context.setAttribute(HttpExecutionContext.HTTP_REQUEST, request);
-        this.httpProcessor.process(request, context);
-        connState.setRequest(request);
-        conn.submitRequest(request);
-        connState.setOutputState(ClientConnState.REQUEST_SENT);
-        
-        if (request instanceof HttpEntityEnclosingRequest) {
-            if (((HttpEntityEnclosingRequest) request).expectContinue()) {
-                int timeout = conn.getSocketTimeout();
-                connState.setTimeout(timeout);
-                timeout = this.params.getIntParameter(
-                        HttpProtocolParams.WAIT_FOR_CONTINUE, 3000);
-                conn.setSocketTimeout(timeout);
-                connState.setOutputState(ClientConnState.EXPECT_CONTINUE);
-            } else {
-                prepareRequestBody((HttpEntityEnclosingRequest) request, connState);
-            }
-        }
-    }
-    
     private void continueRequest(
             final NHttpClientConnection conn, 
             final ClientConnState connState) throws IOException {
@@ -455,6 +443,7 @@
         } else {
             // Ready for another request
             connState.resetInput();
+            connState.resetOutput();
             conn.requestOutput();
         }
     }