Author: trustin
Date: Thu Dec 20 20:59:01 2007
New Revision: 606096

URL: http://svn.apache.org/viewvc?rev=606096&view=rev
Log:
Fixed a problem that readMessages doesn't increase


Modified:
    mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java
    
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChain.java

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java?rev=606096&r1=606095&r2=606096&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java 
(original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoSession.java 
Thu Dec 20 20:59:01 2007
@@ -502,21 +502,7 @@
         return scheduledWriteMessages.get();
     }
 
-    protected final void increaseReadBytesAndMessages(
-            Object message, long currentTime) {
-        if (message instanceof IoBuffer) {
-            IoBuffer b = (IoBuffer) message;
-            if (b.hasRemaining()) {
-                increaseReadBytes(((IoBuffer) message).remaining(), 
currentTime);
-            } else {
-                increaseReadMessages(currentTime);
-            }
-        } else {
-            increaseReadMessages(currentTime);
-        }
-    }
-    
-    private void increaseReadBytes(long increment, long currentTime) {
+    protected final void increaseReadBytes(long increment, long currentTime) {
         if (increment <= 0) {
             return;
         }
@@ -531,11 +517,12 @@
         }
     }
     
-    private void increaseReadMessages(long currentTime) {
+    protected final void increaseReadMessages(long currentTime) {
         readMessages++;
-        lastWriteTime = currentTime;
+        lastReadTime = currentTime;
         idleCountForBoth = 0;
         idleCountForRead = 0;
+        
         if (getService() instanceof AbstractIoService) {
             ((AbstractIoService) 
getService()).increaseReadMessages(currentTime);
         }

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChain.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChain.java?rev=606096&r1=606095&r2=606096&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChain.java 
(original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/common/DefaultIoFilterChain.java 
Thu Dec 20 20:59:01 2007
@@ -385,7 +385,13 @@
     }
 
     public void fireMessageReceived(Object message) {
-        session.increaseReadBytesAndMessages(message, 
System.currentTimeMillis());
+        if (message instanceof IoBuffer) {
+            IoBuffer buf = (IoBuffer) message;
+            if (buf.hasRemaining()) {
+                session.increaseReadBytes(buf.remaining(), 
System.currentTimeMillis());
+            }
+        }
+
         Entry head = this.head;
         callNextMessageReceived(head, session, message);
     }
@@ -725,6 +731,12 @@
         public void messageReceived(NextFilter nextFilter, IoSession session,
                 Object message) throws Exception {
             AbstractIoSession s = (AbstractIoSession) session;
+            if (!(message instanceof IoBuffer)) {
+                s.increaseReadMessages(System.currentTimeMillis());
+            } else if (!((IoBuffer) message).hasRemaining()) {
+                s.increaseReadMessages(System.currentTimeMillis());
+            }
+
             try {
                 session.getHandler().messageReceived(s, message);
             } finally {


Reply via email to