Мне трудно понять, какой протокол вы пытаетесь здесь декодировать. Это определенно выглядит немного запутанным там;)
Вы пишете что-то, что ожидает много запросов по одному соединению? Если так, то отлично, вот в чем Мина хороша ...
Обычно я ожидаю, что декодер MINA проверит, получило ли оно полное сообщение, а затем, если нет, вернет указатель IoBuffer обратно в положение, которое он занимал в начале метода.
Обычно полное сообщение определяется разделителем или, возможно, полем длины в начале сообщения.
Пример, приведенный в api docs, довольно хорош.
Он ищет разделитель возврата каретки + разрыв строки:
http://mina.apache.org/report/trunk/apidocs/org/apache/mina/filter/codec/CumulativeProtocolDecoder.html
НТН