Author: trustin
Date: Sun Nov 11 06:37:56 2007
New Revision: 593892

URL: http://svn.apache.org/viewvc?rev=593892&view=rev
Log:
Related issue: DIRMINA-473 (ReadThrottleFilter throws IllegalStateException)
* It seems like the traffic counter becomes negative under load due to some 
timing issue.  Removed the sanity check code.


Modified:
    
mina/trunk/core/src/main/java/org/apache/mina/filter/traffic/ReadThrottleFilter.java

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/filter/traffic/ReadThrottleFilter.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/traffic/ReadThrottleFilter.java?rev=593892&r1=593891&r2=593892&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/filter/traffic/ReadThrottleFilter.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/filter/traffic/ReadThrottleFilter.java
 Sun Nov 11 06:37:56 2007
@@ -100,10 +100,6 @@
         return serviceBufferSize.addAndGet(increment);
     }
     
-    private static void resetServiceBufferSize(IoService service) {
-        serviceBufferSizes.remove(service);
-    }
-    
     private final AttributeKey STATE =
         new AttributeKey(ReadThrottleFilter.class, "state");
 
@@ -430,16 +426,7 @@
         Logger logger = IoSessionLogger.getLogger(session, getClass());
 
         int globalBufferSize = 
ReadThrottleFilter.globalBufferSize.addAndGet(-size);
-        if (globalBufferSize < 0) {
-            ReadThrottleFilter.globalBufferSize.set(0);
-            throw new IllegalStateException("globalBufferSize < 0");
-        }
-        
         int serviceBufferSize = 
increaseServiceBufferSize(session.getService(), -size);
-        if (serviceBufferSize < 0) {
-            resetServiceBufferSize(session.getService());
-            throw new IllegalStateException("serviceBufferSize < 0");
-        }
 
         int maxGlobalBufferSize = this.maxGlobalBufferSize;
         int maxServiceBufferSize = this.maxServiceBufferSize;
@@ -450,10 +437,6 @@
         boolean enforcePolicy = false;
         synchronized (state) {
             sessionBufferSize = (state.sessionBufferSize -= size);
-            if (sessionBufferSize < 0) {
-                state.sessionBufferSize = sessionBufferSize = 0;
-                throw new IllegalStateException("sessionBufferSize < 0");
-            }
             if ((maxGlobalBufferSize == 0 || globalBufferSize < 
maxGlobalBufferSize) &&
                 (maxServiceBufferSize == 0 || serviceBufferSize < 
maxServiceBufferSize) &&
                 (maxSessionBufferSize == 0 || sessionBufferSize < 
maxSessionBufferSize)) {


Reply via email to