I'm wondering why not set currentDecoder = null before throwing exceptions here (see below) ... if( result == MessageDecoder.OK ) { currentDecoder = null; return true; } else if( result == MessageDecoder.NEED_DATA ) { return false; } else if( result == MessageDecoder.NOT_OK ) { //^^^^^^^^^^^^^^^^^^^^^^^^^^^ //I mean here first of all throw new ProtocolDecoderException( "Message decoder returned NOT_OK." ); } else { //^^^^^^^^^^^^^^^^^^^^^^^^^^^ //And here possibly throw new IllegalStateException( "Unexpected decode result (see your decode()): " + result ); }
.... Without this it's not possible to recover codec state after unexpected message being received. -- View this message in context: http://www.nabble.com/DemuxingProtocolCodecFactory.ProtocolDecoderImpl.doDecode-tf4405598s16868.html#a12568709 Sent from the Apache MINA Support Forum mailing list archive at Nabble.com.