Author: trustin
Date: Sun Nov 4 04:28:33 2007
New Revision: 591774
URL: http://svn.apache.org/viewvc?rev=591774&view=rev
Log:
It seems like ReadThrottleFilter works fine even if it's added after 2nd or 3rd
ExecutorFilter; removed unnecessary restriction.
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=591774&r1=591773&r2=591774&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 4 04:28:33 2007
@@ -277,34 +277,27 @@
@Override
public void onPostAdd(
IoFilterChain parent, String name, NextFilter nextFilter) throws
Exception {
- IoFilterChain.Entry firstExecutorFilterEntry =
- parent.getEntry(AbstractExecutorFilter.class);
- if (firstExecutorFilterEntry == null) {
- throw new InternalError(); // Shouldn't happen.
- }
-
- IoFilter firstExecutorFilter = firstExecutorFilterEntry.getFilter();
- // My previous filter must be the firstExecutorFilter.
+ // My previous filter must be an ExecutorFilter.
IoFilter lastFilter = null;
for (IoFilterChain.Entry e: parent.getAll()) {
IoFilter currentFilter = e.getFilter();
if (currentFilter == this) {
- if (lastFilter == firstExecutorFilter) {
+ if (lastFilter instanceof AbstractExecutorFilter) {
// Good!
break;
} else {
throw new IllegalStateException(
ReadThrottleFilter.class.getName() + " must be
placed after " +
- "the first " + ExecutorFilter.class.getName() + "
in the chain");
+ "an " + ExecutorFilter.class.getName() + " in the
chain");
}
}
lastFilter = currentFilter;
}
- firstExecutorFilterEntry.addBefore(
- name + ".preprocessor", enterFilter);
+ // Add an entering filter before the ExecutorFilter.
+ parent.getEntry(lastFilter).addBefore(name + ".preprocessor",
enterFilter);
}
@Override