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


Reply via email to