Author: jvermillard
Date: Mon Feb 13 09:18:00 2012
New Revision: 1243450

URL: http://svn.apache.org/viewvc?rev=1243450&view=rev
Log:
DIRMINA-850 saving last read time and the number of byte read, first step for 
managing idle

Modified:
    mina/trunk/core/src/main/java/org/apache/mina/session/AbstractIoSession.java
    
mina/trunk/core/src/test/java/org/apache/mina/session/AbstractIoSessionTest.java

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/session/AbstractIoSession.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/session/AbstractIoSession.java?rev=1243450&r1=1243449&r2=1243450&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/session/AbstractIoSession.java 
(original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/session/AbstractIoSession.java 
Mon Feb 13 09:18:00 2012
@@ -604,6 +604,10 @@ public abstract class AbstractIoSession 
     public void processMessageReceived(ByteBuffer message) {
         LOG.debug("processing message '{}' received event for session {}", 
message, this);
 
+        // save basic statistics 
+        readBytes += message.remaining();
+        lastReadTime = System.currentTimeMillis();
+
         if (chain.length < 1) {
             LOG.debug("Nothing to do, the chain is empty");
         } else {

Modified: 
mina/trunk/core/src/test/java/org/apache/mina/session/AbstractIoSessionTest.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/test/java/org/apache/mina/session/AbstractIoSessionTest.java?rev=1243450&r1=1243449&r2=1243450&view=diff
==============================================================================
--- 
mina/trunk/core/src/test/java/org/apache/mina/session/AbstractIoSessionTest.java
 (original)
+++ 
mina/trunk/core/src/test/java/org/apache/mina/session/AbstractIoSessionTest.java
 Mon Feb 13 09:18:00 2012
@@ -173,11 +173,16 @@ public class AbstractIoSessionTest {
     @Test
     public void chain_reads() {
         DummySession session = new DummySession(service);
-        ByteBuffer buffer = mock(ByteBuffer.class);
+        ByteBuffer buffer = ByteBuffer.allocate(1024);
+
+        long before = System.currentTimeMillis();
         session.processMessageReceived(buffer);
         verify(filter1).messageReceived(eq(session), eq(buffer), 
any(ReadFilterChainController.class));
         verify(filter2).messageReceived(eq(session), eq(buffer), 
any(ReadFilterChainController.class));
         verify(filter3).messageReceived(eq(session), eq(buffer), 
any(ReadFilterChainController.class));
+        assertEquals(1024L, session.getReadBytes());
+        long lastRead = session.getLastReadTime();
+        assertTrue(lastRead - before < 100);
     }
 
     @Test


Reply via email to