Author: trustin
Date: Thu Nov 15 21:40:19 2007
New Revision: 595561

URL: http://svn.apache.org/viewvc?rev=595561&view=rev
Log:
* Fixed a problem that throughput is not reset when there's no managed session.

Modified:
    mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoService.java
    mina/trunk/core/src/main/java/org/apache/mina/common/IoService.java
    
mina/trunk/core/src/main/java/org/apache/mina/common/IoServiceListenerSupport.java

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoService.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoService.java?rev=595561&r1=595560&r2=595561&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoService.java 
(original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/AbstractIoService.java 
Thu Nov 15 21:40:19 2007
@@ -257,21 +257,34 @@
     }
     
     public double getReadBytesThroughput() {
+        resetThroughput();
         return readBytesThroughput;
     }
 
     public double getWrittenBytesThroughput() {
+        resetThroughput();
         return writtenBytesThroughput;
     }
 
     public double getReadMessagesThroughput() {
+        resetThroughput();
         return readMessagesThroughput;
     }
 
     public double getWrittenMessagesThroughput() {
+        resetThroughput();
         return writtenMessagesThroughput;
     }
     
+    private void resetThroughput() {
+        if (getManagedSessionCount() == 0) {
+            readBytesThroughput = 0;
+            writtenBytesThroughput = 0;
+            readMessagesThroughput = 0;
+            writtenMessagesThroughput = 0;
+        }
+    }
+
     private void updateThroughput(long currentTime) {
         synchronized (throughputCalculationLock) {
             int interval = (int) (currentTime - lastThroughputCalculationTime);

Modified: mina/trunk/core/src/main/java/org/apache/mina/common/IoService.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IoService.java?rev=595561&r1=595560&r2=595561&view=diff
==============================================================================
--- mina/trunk/core/src/main/java/org/apache/mina/common/IoService.java 
(original)
+++ mina/trunk/core/src/main/java/org/apache/mina/common/IoService.java Thu Nov 
15 21:40:19 2007
@@ -80,16 +80,14 @@
     
     /**
      * Returns the maximum number of sessions which were being managed at the
-     * same time.  This value is reset to <tt>0</tt> when the service is
-     * activated.
+     * same time.
      */
     int getLargestManagedSessionCount();
     
     /**
      * Returns the cumulative number of sessions which were managed (or are
      * being managed) by this service, which means 'currently managed session
-     * count + closed session count'.  This value is reset to <tt>0</tt> when
-     * the service is activated.
+     * count + closed session count'.
      */
     long getCumulativeManagedSessionCount();
 

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/common/IoServiceListenerSupport.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/common/IoServiceListenerSupport.java?rev=595561&r1=595560&r2=595561&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/common/IoServiceListenerSupport.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/common/IoServiceListenerSupport.java
 Thu Nov 15 21:40:19 2007
@@ -118,8 +118,6 @@
         }
 
         activationTime = System.currentTimeMillis();
-        largestManagedSessionCount = 0;
-        cumulativeManagedSessionCount = 0;
 
         for (IoServiceListener l : listeners) {
             l.serviceActivated(service);


Reply via email to