Author: trustin
Date: Sun Sep 30 11:42:14 2007
New Revision: 580764
URL: http://svn.apache.org/viewvc?rev=580764&view=rev
Log:
* Added sanity check to some filters that cannot be added more than once to the
same chain
Modified:
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
mina/trunk/core/src/main/java/org/apache/mina/filter/executor/AbstractExecutorFilter.java
mina/trunk/core/src/main/java/org/apache/mina/filter/reqres/RequestResponseFilter.java
Modified:
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java?rev=580764&r1=580763&r2=580764&view=diff
==============================================================================
---
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
(original)
+++
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/ProtocolCodecFilter.java
Sun Sep 30 11:42:14 2007
@@ -128,6 +128,15 @@
public ProtocolDecoder getDecoder(IoSession session) {
return (ProtocolDecoder) session.getAttribute(DECODER);
}
+
+ @Override
+ public void onPreAdd(IoFilterChain parent, String name,
+ NextFilter nextFilter) throws Exception {
+ if (parent.contains(this)) {
+ throw new IllegalArgumentException(
+ "You can't add the same filter instance more than once.");
+ }
+ }
@Override
public void onPostRemove(IoFilterChain parent, String name,
Modified:
mina/trunk/core/src/main/java/org/apache/mina/filter/executor/AbstractExecutorFilter.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/executor/AbstractExecutorFilter.java?rev=580764&r1=580763&r2=580764&view=diff
==============================================================================
---
mina/trunk/core/src/main/java/org/apache/mina/filter/executor/AbstractExecutorFilter.java
(original)
+++
mina/trunk/core/src/main/java/org/apache/mina/filter/executor/AbstractExecutorFilter.java
Sun Sep 30 11:42:14 2007
@@ -31,6 +31,7 @@
import org.apache.mina.common.IdleStatus;
import org.apache.mina.common.IoEventType;
import org.apache.mina.common.IoFilterAdapter;
+import org.apache.mina.common.IoFilterChain;
import org.apache.mina.common.IoFilterEvent;
import org.apache.mina.common.IoSession;
import org.apache.mina.common.WriteRequest;
@@ -94,6 +95,15 @@
}
protected abstract void fireEvent(IoFilterEvent event);
+
+ @Override
+ public void onPreAdd(IoFilterChain parent, String name,
+ NextFilter nextFilter) throws Exception {
+ if (parent.contains(this)) {
+ throw new IllegalArgumentException(
+ "You can't add the same filter instance more than once.");
+ }
+ }
@Override
public final void sessionCreated(NextFilter nextFilter, IoSession session)
{
Modified:
mina/trunk/core/src/main/java/org/apache/mina/filter/reqres/RequestResponseFilter.java
URL:
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/reqres/RequestResponseFilter.java?rev=580764&r1=580763&r2=580764&view=diff
==============================================================================
---
mina/trunk/core/src/main/java/org/apache/mina/filter/reqres/RequestResponseFilter.java
(original)
+++
mina/trunk/core/src/main/java/org/apache/mina/filter/reqres/RequestResponseFilter.java
Sun Sep 30 11:42:14 2007
@@ -84,6 +84,11 @@
@Override
public void onPreAdd(IoFilterChain parent, String name,
NextFilter nextFilter) throws Exception {
+ if (parent.contains(this)) {
+ throw new IllegalArgumentException(
+ "You can't add the same filter instance more than once.");
+ }
+
IoSession session = parent.getSession();
session.setAttribute(RESPONSE_INSPECTOR, responseInspectorFactory
.getResponseInspector());