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();