Author: trustin
Date: Thu Jul 26 00:17:47 2007
New Revision: 559730

URL: http://svn.apache.org/viewvc?view=rev&rev=559730
Log:
Fixed issue: DIRMINA-405 (IoSession.suspendRead() doesn't suspend read 
operation immediately when ProtocolCodecFilter is used.)
* IoSession.receivedMessage was being increased too early.


Modified:
    
mina/branches/1.0/core/src/main/java/org/apache/mina/filter/codec/support/SimpleProtocolDecoderOutput.java
    
mina/branches/1.1/core/src/main/java/org/apache/mina/filter/codec/support/SimpleProtocolDecoderOutput.java
    
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/support/SimpleProtocolDecoderOutput.java

Modified: 
mina/branches/1.0/core/src/main/java/org/apache/mina/filter/codec/support/SimpleProtocolDecoderOutput.java
URL: 
http://svn.apache.org/viewvc/mina/branches/1.0/core/src/main/java/org/apache/mina/filter/codec/support/SimpleProtocolDecoderOutput.java?view=diff&rev=559730&r1=559729&r2=559730
==============================================================================
--- 
mina/branches/1.0/core/src/main/java/org/apache/mina/filter/codec/support/SimpleProtocolDecoderOutput.java
 (original)
+++ 
mina/branches/1.0/core/src/main/java/org/apache/mina/filter/codec/support/SimpleProtocolDecoderOutput.java
 Thu Jul 26 00:17:47 2007
@@ -46,14 +46,14 @@
     
     public void write(Object message) {
         messageQueue.push(message);
-        if (session instanceof BaseIoSession) {
-            ((BaseIoSession) session).increaseReadMessages();
-        }
     }
 
     public void flush() {
         while (!messageQueue.isEmpty()) {
             if (session.getTrafficMask().isReadable()) {
+                if (session instanceof BaseIoSession) {
+                    ((BaseIoSession) session).increaseReadMessages();
+                }
                 nextFilter.messageReceived(session, messageQueue.pop());
             } else {
                 break;

Modified: 
mina/branches/1.1/core/src/main/java/org/apache/mina/filter/codec/support/SimpleProtocolDecoderOutput.java
URL: 
http://svn.apache.org/viewvc/mina/branches/1.1/core/src/main/java/org/apache/mina/filter/codec/support/SimpleProtocolDecoderOutput.java?view=diff&rev=559730&r1=559729&r2=559730
==============================================================================
--- 
mina/branches/1.1/core/src/main/java/org/apache/mina/filter/codec/support/SimpleProtocolDecoderOutput.java
 (original)
+++ 
mina/branches/1.1/core/src/main/java/org/apache/mina/filter/codec/support/SimpleProtocolDecoderOutput.java
 Thu Jul 26 00:17:47 2007
@@ -48,14 +48,14 @@
     
     public void write(Object message) {
         messageQueue.add(message);
-        if (session instanceof BaseIoSession) {
-            ((BaseIoSession) session).increaseReadMessages();
-        }
     }
 
     public void flush() {
         while (!messageQueue.isEmpty()) {
             if (session.getTrafficMask().isReadable()) {
+                if (session instanceof BaseIoSession) {
+                    ((BaseIoSession) session).increaseReadMessages();
+                }
                 nextFilter.messageReceived(session, messageQueue.remove(0));
             } else {
                 break;

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/support/SimpleProtocolDecoderOutput.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/support/SimpleProtocolDecoderOutput.java?view=diff&rev=559730&r1=559729&r2=559730
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/support/SimpleProtocolDecoderOutput.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/support/SimpleProtocolDecoderOutput.java
 Thu Jul 26 00:17:47 2007
@@ -52,14 +52,14 @@
         }
 
         messageQueue.offer(message);
-        if (session instanceof BaseIoSession) {
-            ((BaseIoSession) session).increaseReadMessages();
-        }
     }
 
     public void flush() {
         while (!messageQueue.isEmpty()) {
             if (session.getTrafficMask().isReadable()) {
+                if (session instanceof BaseIoSession) {
+                    ((BaseIoSession) session).increaseReadMessages();
+                }
                 nextFilter.messageReceived(session, messageQueue.poll());
             } else {
                 break;


Reply via email to