Author: trustin
Date: Mon Mar 17 00:28:10 2008
New Revision: 637767

URL: http://svn.apache.org/viewvc?rev=637767&view=rev
Log:
Fixed a problem that VmPipeSession.writtenBytes is not updated


Modified:
    
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeFilterChain.java
    
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSessionImpl.java
    
mina/trunk/core/src/test/java/org/apache/mina/transport/vmpipe/VmPipeEventOrderTest.java

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeFilterChain.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeFilterChain.java?rev=637767&r1=637766&r2=637767&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeFilterChain.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeFilterChain.java
 Mon Mar 17 00:28:10 2008
@@ -180,9 +180,15 @@
                         return;
                     }
                     WriteRequest req;
+                    long currentTime = System.currentTimeMillis();
                     while ((req = queue.poll(session)) != null) {
+                        Object m = req.getMessage();
                         
session.getRemoteSession().getFilterChain().fireMessageReceived(
-                                getMessageCopy(req.getMessage()));
+                                getMessageCopy(m));
+                        if (m instanceof IoBuffer) {
+                            session.increaseWrittenBytes0(
+                                    ((IoBuffer) m).remaining(), currentTime);
+                        }
                         session.getFilterChain().fireMessageSent(req);
                     }
                 } finally {

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSessionImpl.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSessionImpl.java?rev=637767&r1=637766&r2=637767&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSessionImpl.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/transport/vmpipe/VmPipeSessionImpl.java
 Mon Mar 17 00:28:10 2008
@@ -150,6 +150,10 @@
     public VmPipeAddress getServiceAddress() {
         return serviceAddress;
     }
+    
+    void increaseWrittenBytes0(long increment, long currentTime) {
+        super.increaseWrittenBytes(increment, currentTime);
+    }
 
     WriteRequestQueue getWriteRequestQueue0() {
         return super.getWriteRequestQueue();

Modified: 
mina/trunk/core/src/test/java/org/apache/mina/transport/vmpipe/VmPipeEventOrderTest.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/test/java/org/apache/mina/transport/vmpipe/VmPipeEventOrderTest.java?rev=637767&r1=637766&r2=637767&view=diff
==============================================================================
--- 
mina/trunk/core/src/test/java/org/apache/mina/transport/vmpipe/VmPipeEventOrderTest.java
 (original)
+++ 
mina/trunk/core/src/test/java/org/apache/mina/transport/vmpipe/VmPipeEventOrderTest.java
 Mon Mar 17 00:28:10 2008
@@ -204,6 +204,7 @@
 
         semaphore.tryAcquire(1, TimeUnit.SECONDS);
         vmPipeAcceptor.unbind(vmPipeAddress);
+        Assert.assertEquals(1, connectFuture.getSession().getWrittenBytes());
         Assert.assertEquals("ABCD", stringBuffer.toString());
     }
 }


Reply via email to