I think I know why it's not reaching there. It's particular to RL and we may see this behavior in other filters too.
The thing is this, when you ask the filter to read N bytes, as soon as you get the N bytes the apply() function isn't called anymore, leaving in this case the EOD marker. Other filters may actually need and look for the trailing character in order to finish the decoding process, but the RL doesn't need it to decode data. I could force the consumption of an EOD marker just by inserting one in the middle of the encoded data. Could that be an scenario, i.e. <dataEODdataEOD> for one stream that you didn't destroy() after getting the first EOD ? (in case you destroy() it as we know all starts again) cheers -gerel
