You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by tr...@apache.org on 2007/12/10 11:03:54 UTC

svn commit: r602837 - in /mina/trunk/core/src/main/java/org/apache/mina/filter/codec/statemachine: DecodingStateMachine.java DecodingStateProtocolDecoder.java

Author: trustin
Date: Mon Dec 10 02:03:42 2007
New Revision: 602837

URL: http://svn.apache.org/viewvc?rev=602837&view=rev
Log:
Fixed a silly bug that DecodingStateProtocolDecoder just dropped undecoded data.

Modified:
    mina/trunk/core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateMachine.java
    mina/trunk/core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateProtocolDecoder.java

Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateMachine.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateMachine.java?rev=602837&r1=602836&r2=602837&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateMachine.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateMachine.java Mon Dec 10 02:03:42 2007
@@ -129,7 +129,6 @@
             nextState = finishDecode(childProducts, out);
             if (state == null) {
                 cleanup();
-
             }
         }
         return nextState;

Modified: mina/trunk/core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateProtocolDecoder.java
URL: http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateProtocolDecoder.java?rev=602837&r1=602836&r2=602837&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateProtocolDecoder.java (original)
+++ mina/trunk/core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateProtocolDecoder.java Mon Dec 10 02:03:42 2007
@@ -21,7 +21,7 @@
 
 import org.apache.mina.common.IoBuffer;
 import org.apache.mina.common.IoSession;
-import org.apache.mina.filter.codec.ProtocolDecoder;
+import org.apache.mina.filter.codec.CumulativeProtocolDecoder;
 import org.apache.mina.filter.codec.ProtocolDecoderOutput;
 
 /**
@@ -29,7 +29,7 @@
  * @author The Apache MINA Project (dev@mina.apache.org)
  * @version $Rev$, $Date$
  */
-public class DecodingStateProtocolDecoder implements ProtocolDecoder {
+public class DecodingStateProtocolDecoder extends CumulativeProtocolDecoder {
     private final DecodingState state;
 
     public DecodingStateProtocolDecoder(DecodingState stateMachine) {
@@ -39,15 +39,19 @@
         this.state = stateMachine;
     }
     
-    public void decode(IoSession session, IoBuffer in, ProtocolDecoderOutput out)
-            throws Exception {
+    @Override
+    protected boolean doDecode(IoSession session, IoBuffer in,
+            ProtocolDecoderOutput out) throws Exception {
         state.decode(in, out);
+        return !in.hasRemaining();
     }
 
+    @Override
     public void finishDecode(IoSession session, ProtocolDecoderOutput out)
             throws Exception {
         state.finishDecode(out);
     }
 
+    @Override
     public void dispose(IoSession session) throws Exception {}
 }