Author: trustin
Date: Mon Dec 10 02:40:35 2007
New Revision: 602848

URL: http://svn.apache.org/viewvc?rev=602848&view=rev
Log:
Added sanity check to advise misunderstanding user

Modified:
    
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateProtocolDecoder.java

Modified: 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateProtocolDecoder.java
URL: 
http://svn.apache.org/viewvc/mina/trunk/core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateProtocolDecoder.java?rev=602848&r1=602847&r2=602848&view=diff
==============================================================================
--- 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateProtocolDecoder.java
 (original)
+++ 
mina/trunk/core/src/main/java/org/apache/mina/filter/codec/statemachine/DecodingStateProtocolDecoder.java
 Mon Dec 10 02:40:35 2007
@@ -35,6 +35,7 @@
 public class DecodingStateProtocolDecoder implements ProtocolDecoder {
     private final DecodingState state;
     private final Queue<IoBuffer> undecodedBuffers = new 
CircularQueue<IoBuffer>();
+    private IoSession session;
 
     public DecodingStateProtocolDecoder(DecodingState state) {
         if (state == null) {
@@ -45,6 +46,14 @@
     
     public void decode(IoSession session, IoBuffer in, ProtocolDecoderOutput 
out)
             throws Exception {
+        if (this.session == null) {
+            this.session = session;
+        } else if (this.session != session) {
+            throw new IllegalStateException(
+                    getClass().getSimpleName() + " is a stateful decoder.  " +
+                   "You have to create one per session.");
+        }
+
         undecodedBuffers.offer(in);
         for (;;) {
             IoBuffer b = undecodedBuffers.peek();


Reply via email to