You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@mina.apache.org by el...@apache.org on 2014/09/08 16:17:57 UTC

git commit: Called the statistic updateThroughput metho din the TailFilter, so that the user don't have to do it. See DIRMINA-967

Repository: mina
Updated Branches:
  refs/heads/2.0 d500b2e97 -> 478a8a87d


Called the statistic updateThroughput metho din the TailFilter, so that
the user don't have to do it. See DIRMINA-967

Project: http://git-wip-us.apache.org/repos/asf/mina/repo
Commit: http://git-wip-us.apache.org/repos/asf/mina/commit/478a8a87
Tree: http://git-wip-us.apache.org/repos/asf/mina/tree/478a8a87
Diff: http://git-wip-us.apache.org/repos/asf/mina/diff/478a8a87

Branch: refs/heads/2.0
Commit: 478a8a87de9128bdbbc6d38c8b320d769f5d1441
Parents: d500b2e
Author: Emmanuel Lécharny <el...@symas.com>
Authored: Mon Sep 8 14:13:09 2014 +0200
Committer: Emmanuel Lécharny <el...@symas.com>
Committed: Mon Sep 8 14:13:09 2014 +0200

----------------------------------------------------------------------
 .../mina/core/filterchain/DefaultIoFilterChain.java   | 14 ++++++++++++++
 .../apache/mina/core/session/AbstractIoSession.java   |  7 +++----
 2 files changed, 17 insertions(+), 4 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/mina/blob/478a8a87/mina-core/src/main/java/org/apache/mina/core/filterchain/DefaultIoFilterChain.java
----------------------------------------------------------------------
diff --git a/mina-core/src/main/java/org/apache/mina/core/filterchain/DefaultIoFilterChain.java b/mina-core/src/main/java/org/apache/mina/core/filterchain/DefaultIoFilterChain.java
index 9e3825e..25185cd 100644
--- a/mina-core/src/main/java/org/apache/mina/core/filterchain/DefaultIoFilterChain.java
+++ b/mina-core/src/main/java/org/apache/mina/core/filterchain/DefaultIoFilterChain.java
@@ -28,6 +28,7 @@ import org.apache.mina.core.buffer.IoBuffer;
 import org.apache.mina.core.filterchain.IoFilter.NextFilter;
 import org.apache.mina.core.future.ConnectFuture;
 import org.apache.mina.core.future.IoFuture;
+import org.apache.mina.core.service.AbstractIoService;
 import org.apache.mina.core.session.AbstractIoSession;
 import org.apache.mina.core.session.AttributeKey;
 import org.apache.mina.core.session.IdleStatus;
@@ -709,6 +710,12 @@ public class DefaultIoFilterChain implements IoFilterChain {
                 s.increaseReadMessages(System.currentTimeMillis());
             }
 
+            // Update the statistics
+            if (session.getService() instanceof AbstractIoService) {
+                ((AbstractIoService) session.getService()).getStatistics().updateThroughput(System.currentTimeMillis());
+            }
+
+            // Propagate the message
             try {
                 session.getHandler().messageReceived(s, message);
             } finally {
@@ -721,6 +728,13 @@ public class DefaultIoFilterChain implements IoFilterChain {
         @Override
         public void messageSent(NextFilter nextFilter, IoSession session, WriteRequest writeRequest) throws Exception {
             ((AbstractIoSession) session).increaseWrittenMessages(writeRequest, System.currentTimeMillis());
+
+            // Update the statistics
+            if (session.getService() instanceof AbstractIoService) {
+                ((AbstractIoService) session.getService()).getStatistics().updateThroughput(System.currentTimeMillis());
+            }
+
+            // Propagate the message
             session.getHandler().messageSent(session, writeRequest.getMessage());
         }
 

http://git-wip-us.apache.org/repos/asf/mina/blob/478a8a87/mina-core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java
----------------------------------------------------------------------
diff --git a/mina-core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java b/mina-core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java
index de8516a..40a60d8 100644
--- a/mina-core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java
+++ b/mina-core/src/main/java/org/apache/mina/core/session/AbstractIoSession.java
@@ -761,10 +761,9 @@ public abstract class AbstractIoSession implements IoSession {
         int interval = (int) (currentTime - lastThroughputCalculationTime);
 
         long minInterval = getConfig().getThroughputCalculationIntervalInMillis();
-        if ((minInterval == 0) || (interval < minInterval)) {
-            if (!force) {
-                return;
-            }
+
+        if (((minInterval == 0) || (interval < minInterval)) && !force) {
+            return;
         }
 
         readBytesThroughput = (readBytes - lastReadBytes) * 1000.0 / interval;