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/05/16 23:09:55 UTC

svn commit: r538731 - in /jakarta/httpcomponents/httpcore/trunk: ./ module-nio/src/main/java/org/apache/http/impl/nio/ module-nio/src/main/java/org/apache/http/nio/protocol/

Author: olegk
Date: Wed May 16 14:09:54 2007
New Revision: 538731

URL: http://svn.apache.org/viewvc?view=rev&rev=538731
Log:
HTTPCORE-75: DefaultNHttpServerConnection and DefaultNHttpClientConnection now correctly terminate the underlying I/O session when closed. BufferingHttpServiceHandler now correctly applies connection keep-alive strategy when sending a response with no content body.  

Contributed by Steffen Pingel <spingel at limewire.com>
Reviewed by Oleg Kalnichevski

Modified:
    jakarta/httpcomponents/httpcore/trunk/RELEASE_NOTES.txt
    jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpClientConnection.java
    jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpServerConnection.java
    jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpServiceHandler.java

Modified: jakarta/httpcomponents/httpcore/trunk/RELEASE_NOTES.txt
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/RELEASE_NOTES.txt?view=diff&rev=538731&r1=538730&r2=538731
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/RELEASE_NOTES.txt (original)
+++ jakarta/httpcomponents/httpcore/trunk/RELEASE_NOTES.txt Wed May 16 14:09:54 2007
@@ -1,5 +1,11 @@
 Changes since 4.0 Alpha 4
 
+* [HTTPCORE-75]: DefaultNHttpServerConnection and DefaultNHttpClientConnection 
+  now correctly terminate the underlying I/O session when closed. 
+  BufferingHttpServiceHandler now correctly applies connection keep-alive 
+  strategy when sending a response with no content body.
+  Contributed by Steffen Pingel <spingel at limewire.com>
+
 * [HTTPCORE-73]: Fixed bug preventing NHttpServiceHandler#responseReady and 
   NHttpClientHandler#requestReady events from being fired if the HTTP message 
   has no content body.

Modified: jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpClientConnection.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpClientConnection.java?view=diff&rev=538731&r1=538730&r2=538731
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpClientConnection.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpClientConnection.java Wed May 16 14:09:54 2007
@@ -143,11 +143,14 @@
                 }
                 
                 if (this.contentEncoder == null && !this.outbuf.hasData()) {
+                    if (this.closed) {
+                        this.session.close();
+                        return;
+                    }
+                    
                     this.session.clearEvent(EventMask.WRITE);
                     
-                    if (!this.closed) {
-                        handler.requestReady(this);
-                    }
+                    handler.requestReady(this);
                 }
             }
         } catch (IOException ex) {

Modified: jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpServerConnection.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpServerConnection.java?view=diff&rev=538731&r1=538730&r2=538731
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpServerConnection.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/impl/nio/DefaultNHttpServerConnection.java Wed May 16 14:09:54 2007
@@ -142,11 +142,14 @@
                 }
                 
                 if (this.contentEncoder == null && !this.outbuf.hasData()) {
+                    if (this.closed) {
+                        this.session.close();
+                        return;
+                    }
+                    
                     this.session.clearEvent(EventMask.WRITE);
                
-                    if (!this.closed) {
-                        handler.responseReady(this);
-                    }
+                    handler.responseReady(this);
                 }
             }
         } catch (IOException ex) {

Modified: jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpServiceHandler.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpServiceHandler.java?view=diff&rev=538731&r1=538730&r2=538731
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpServiceHandler.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-nio/src/main/java/org/apache/http/nio/protocol/BufferingHttpServiceHandler.java Wed May 16 14:09:54 2007
@@ -427,7 +427,11 @@
             outstream.close();
         } else {
             connState.resetOutput();
-            conn.requestInput();
+            if (!this.connStrategy.keepAlive(response, context)) {
+                conn.close();
+            } else {
+                conn.requestInput();
+            }
         }
     }