Description
When data size greater than 1 MB is written to the connection, error is thrown at the receiver side while decoding.
Following are the details:
Mina version:
mina-core-2.0.19.jar
Server code snippet:
IoAcceptor acceptor = new NioSocketAcceptor();
DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();
LoggingFilter loggingFilter = new LoggingFilter();
loggingFilter.setMessageSentLogLevel(LogLevel.DEBUG);
loggingFilter.setMessageReceivedLogLevel(LogLevel.DEBUG);
loggingFilter.setSessionClosedLogLevel(LogLevel.DEBUG);
loggingFilter.setSessionCreatedLogLevel(LogLevel.DEBUG);
loggingFilter.setSessionIdleLogLevel(LogLevel.DEBUG);
loggingFilter.setSessionOpenedLogLevel(LogLevel.DEBUG);
chain.addLast("logger", loggingFilter);
MdcInjectionFilter mdcInjectionFilter = new MdcInjectionFilter();
chain.addLast("mdc", mdcInjectionFilter);
chain.addLast("codec", new ProtocolCodecFilter(new ObjectSerializationCodecFactory()));
Client code snippet:
NioSocketConnector connector = new NioSocketConnector();
LoggingFilter LOGGING_FILTER = new LoggingFilter("MinaLogging");
LOGGING_FILTER.setMessageSentLogLevel(LogLevel.DEBUG);
LOGGING_FILTER.setMessageReceivedLogLevel(LogLevel.DEBUG);
IoFilter CODEC_FILTER = new ProtocolCodecFilter(new ObjectSerializationCodecFactory());
connector.getFilterChain().addLast("mdc", new MdcInjectionFilter());
connector.getFilterChain().addLast("codec", CODEC_FILTER);
connector.getFilterChain().addLast("logger", LOGGING_FILTER);
Exception:
org.apache.mina.filter.codec.ProtocolDecoderException: org.apache.mina.core.buffer.BufferDataException: dataLength: 1048985 (Hexdump: XX...)
at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:262) [mina-core-2.0.19.jar:?]
at org.apache.mina.filter.codec.CumulativeProtocolDecoder.decode(CumulativeProtocolDecoder.java:180) ~[mina-core-2.0.19.jar:?]
at org.apache.mina.filter.codec.ProtocolCodecFilter.messageReceived(ProtocolCodecFilter.java:253) ~[mina-core-2.0.19.jar:?]