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)) {