You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by tr...@apache.org on 2006/02/24 07:05:43 UTC

svn commit: r380596 - in /directory/trunks/mina/core/src/main/java/org/apache/mina/filter/codec: ProtocolEncoderOutput.java support/SimpleProtocolEncoderOutput.java

Author: trustin
Date: Thu Feb 23 22:05:40 2006
New Revision: 380596

URL: http://svn.apache.org/viewcvs?rev=380596&view=rev
Log:
Fixed issue: DIRMINA-177 (ProtocolEncoderOutput.flush() writes an extra empty buffer.)
* Modified ProtocolEncoderOutput to return null if nothing is flushed.

Modified:
    directory/trunks/mina/core/src/main/java/org/apache/mina/filter/codec/ProtocolEncoderOutput.java
    directory/trunks/mina/core/src/main/java/org/apache/mina/filter/codec/support/SimpleProtocolEncoderOutput.java

Modified: directory/trunks/mina/core/src/main/java/org/apache/mina/filter/codec/ProtocolEncoderOutput.java
URL: http://svn.apache.org/viewcvs/directory/trunks/mina/core/src/main/java/org/apache/mina/filter/codec/ProtocolEncoderOutput.java?rev=380596&r1=380595&r2=380596&view=diff
==============================================================================
--- directory/trunks/mina/core/src/main/java/org/apache/mina/filter/codec/ProtocolEncoderOutput.java (original)
+++ directory/trunks/mina/core/src/main/java/org/apache/mina/filter/codec/ProtocolEncoderOutput.java Thu Feb 23 22:05:40 2006
@@ -53,6 +53,8 @@
      * the session.  This operation is asynchronous; please wait for
      * the returned {@link WriteFuture} if you want to wait for
      * the buffers flushed.
+     * 
+     * @return <tt>null</tt> if there is nothing to flush at all.
      */
     WriteFuture flush();
 }

Modified: directory/trunks/mina/core/src/main/java/org/apache/mina/filter/codec/support/SimpleProtocolEncoderOutput.java
URL: http://svn.apache.org/viewcvs/directory/trunks/mina/core/src/main/java/org/apache/mina/filter/codec/support/SimpleProtocolEncoderOutput.java?rev=380596&r1=380595&r2=380596&view=diff
==============================================================================
--- directory/trunks/mina/core/src/main/java/org/apache/mina/filter/codec/support/SimpleProtocolEncoderOutput.java (original)
+++ directory/trunks/mina/core/src/main/java/org/apache/mina/filter/codec/support/SimpleProtocolEncoderOutput.java Thu Feb 23 22:05:40 2006
@@ -76,7 +76,7 @@
         WriteFuture future = null;
         if( bufferQueue.isEmpty() )
         {
-            future = doFlush( ByteBuffer.allocate( 0 ).flip() ); // write zero bytes
+            return null;
         }
         else
         {
@@ -88,13 +88,12 @@
                     break;
                 }
                 
-                future = doFlush( buf );
+                // Flush only when the buffer has remaining.
+                if( buf.hasRemaining() )
+                {
+                    future = doFlush( buf );
+                }
             }
-        }
-        
-        if( future == null )
-        {
-            throw new IllegalStateException( "doFlush must return future." );
         }
         
         return future;