Author: trustin
Date: Tue Mar  8 20:19:46 2005
New Revision: 156608

URL: http://svn.apache.org/viewcvs?view=rev&rev=156608
Log:
Fixed: Asn1CodecEncoder doesn't merge when ASN1 codec generates a collection of 
ByteBuffers. (DIR-108)
Fixed: IoAdpater's default ProtocolEncoderOutput.mergeAll() doesn't check the 
number of the cumulated bytebuffers

Modified:
    
incubator/directory/network/mina/trunk/src/java/org/apache/mina/protocol/codec/Asn1CodecEncoder.java
    
incubator/directory/network/mina/trunk/src/java/org/apache/mina/protocol/io/IoAdapter.java

Modified: 
incubator/directory/network/mina/trunk/src/java/org/apache/mina/protocol/codec/Asn1CodecEncoder.java
URL: 
http://svn.apache.org/viewcvs/incubator/directory/network/mina/trunk/src/java/org/apache/mina/protocol/codec/Asn1CodecEncoder.java?view=diff&r1=156607&r2=156608
==============================================================================
--- 
incubator/directory/network/mina/trunk/src/java/org/apache/mina/protocol/codec/Asn1CodecEncoder.java
 (original)
+++ 
incubator/directory/network/mina/trunk/src/java/org/apache/mina/protocol/codec/Asn1CodecEncoder.java
 Tue Mar  8 20:19:46 2005
@@ -71,6 +71,8 @@
                 {
                     this.encodeOccurred( codec, bufArray[ i ] );
                 }
+
+                encOut.mergeAll();
             }
             else if( encoded instanceof Iterator )
             {
@@ -79,6 +81,8 @@
                 {
                     this.encodeOccurred( codec, it.next() );
                 }
+                
+                encOut.mergeAll();
             }
             else if( encoded instanceof Collection )
             {
@@ -87,6 +91,8 @@
                 {
                     this.encodeOccurred( codec, it.next() );
                 }
+                
+                encOut.mergeAll();
             }
             else if( encoded instanceof Enumeration )
             {
@@ -95,6 +101,8 @@
                 {
                     this.encodeOccurred( codec, e.nextElement() );
                 }
+                
+                encOut.mergeAll();
             }
             else
             {

Modified: 
incubator/directory/network/mina/trunk/src/java/org/apache/mina/protocol/io/IoAdapter.java
URL: 
http://svn.apache.org/viewcvs/incubator/directory/network/mina/trunk/src/java/org/apache/mina/protocol/io/IoAdapter.java?view=diff&r1=156607&r2=156608
==============================================================================
--- 
incubator/directory/network/mina/trunk/src/java/org/apache/mina/protocol/io/IoAdapter.java
 (original)
+++ 
incubator/directory/network/mina/trunk/src/java/org/apache/mina/protocol/io/IoAdapter.java
 Tue Mar  8 20:19:46 2005
@@ -429,6 +429,12 @@
             int sum = 0;
             final int size = queue.size();
             
+            if( size < 2 )
+            {
+                // no need to merge!
+                return;
+            }
+            
             // Get the size of merged BB
             for( int i = size - 1; i >= 0; i -- )
             {


Reply via email to