Hi Ben,

seems that the patch https://github.com/apache/mina/pull/28 calls the buff.free() method which does nothing in most of the cases:


SimpleBuffer:

@Override

publicvoidfree() {

// Do nothing

}

IoBufferImpl:

publicvoidfree() {

}

The on ly implementation that actually frees the buffer is CachedBuffer.

I'll create a JIRA and try to write a test case for this issue.

Thanks for the report!

Le 12/02/2025 à 09:25, Ben Avraham, Eyal a écrit :
Bug Summary
In Apache MINA 2.1.10, CumulativeProtocolDecoder does not properly handle 
cumulative buffer states when processing fragmented messages. Under certain 
conditions,
date received on the stream are processed more than once.


The problem:

In version 2.1.10 the code changed so that when the BUFFER remaining is zero, 
the BUFFER is NOT removed from session,
The next time doDecode() is called the in buffer contains in addition to the 
new just arrived data some data from that already processed.


Buffer before doDecode return has remaining=0, pos=x, lim=x...
When new data received, let say with y bytes
the in buffer in doDecode() has remaining=x+y, pos=0, lim=x+y...

Thanks,
Eyal & Tom


Reply via email to