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/10/12 13:54:38 UTC

svn commit: r584141 - in /jakarta/httpcomponents/httpcore/trunk: RELEASE_NOTES.txt module-niossl/src/main/java/org/apache/http/impl/nio/reactor/SSLIOSession.java

Author: olegk
Date: Fri Oct 12 04:54:37 2007
New Revision: 584141

URL: http://svn.apache.org/viewvc?rev=584141&view=rev
Log:
HTTPCORE-123: SSLSession loses buffered data, if the connection has been closed by the peer.

Contributed by Risto Reinpõld <risto.reinpold at gmail.com>
Reviewed by Oleg Kalnichevski

Modified:
    jakarta/httpcomponents/httpcore/trunk/RELEASE_NOTES.txt
    jakarta/httpcomponents/httpcore/trunk/module-niossl/src/main/java/org/apache/http/impl/nio/reactor/SSLIOSession.java

Modified: jakarta/httpcomponents/httpcore/trunk/RELEASE_NOTES.txt
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/RELEASE_NOTES.txt?rev=584141&r1=584140&r2=584141&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/RELEASE_NOTES.txt (original)
+++ jakarta/httpcomponents/httpcore/trunk/RELEASE_NOTES.txt Fri Oct 12 04:54:37 2007
@@ -1,3 +1,9 @@
+Changes since 4.0 Alpha 6
+
+* [HTTPCORE-123] Fixed problem with SSLSession losing buffered data, if the 
+  connection has been closed by the peer.
+  Contributed by Risto Reinpõld <risto.reinpold at gmail.com>
+
 Release 4.0 Alpha 6
 -------------------
 

Modified: jakarta/httpcomponents/httpcore/trunk/module-niossl/src/main/java/org/apache/http/impl/nio/reactor/SSLIOSession.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-niossl/src/main/java/org/apache/http/impl/nio/reactor/SSLIOSession.java?rev=584141&r1=584140&r2=584141&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-niossl/src/main/java/org/apache/http/impl/nio/reactor/SSLIOSession.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-niossl/src/main/java/org/apache/http/impl/nio/reactor/SSLIOSession.java Fri Oct 12 04:54:37 2007
@@ -271,7 +271,7 @@
         updateEventMask();
     }
     
-    private synchronized int wrap(final ByteBuffer src) throws SSLException {
+    private synchronized int writePlain(final ByteBuffer src) throws SSLException {
         if (src == null) {
             throw new IllegalArgumentException("Byte buffer may not be null");
         }
@@ -294,13 +294,10 @@
         }
     }
     
-    private synchronized int unwrap(final ByteBuffer dst) throws SSLException {
+    private synchronized int readPlain(final ByteBuffer dst) throws SSLException {
         if (dst == null) {
             throw new IllegalArgumentException("Byte buffer may not be null");
         }
-        if (this.status != ACTIVE) {
-            return -1;
-        }
         if (this.inPlain.position() > 0) {
             this.inPlain.flip();
             int n = Math.min(this.inPlain.remaining(), dst.remaining());
@@ -310,7 +307,11 @@
             this.inPlain.compact();
             return n; 
         } else {
-            return 0;
+            if (this.status == ACTIVE) {
+                return 0;
+            } else {
+                return -1;
+            }
         }
     }
     
@@ -434,11 +435,11 @@
     private class InternalByteChannel implements ByteChannel {
 
         public int write(final ByteBuffer src) throws IOException {
-            return wrap(src);
+            return writePlain(src);
         }
 
         public int read(final ByteBuffer dst) throws IOException {
-            return unwrap(dst);
+            return readPlain(dst);
         }
 
         public void close() throws IOException {