Here is the core decoding code:
for (;;) {
IoBuffer b = undecodedBuffers.peek();
if (b == null) {
break;
}
int oldRemaining = b.remaining();
state.decode(b, out);
int newRemaining = b.remaining();
if (newRemaining != 0) {
if (oldRemaining == newRemaining) {
throw new IllegalStateException(
DecodingState.class.getSimpleName() + " must " +
"consume at least one byte per decode().");
}
} else {
undecodedBuffers.poll();
}
}
My question is: what's gonna happen when the current buffer has only 2 bytes
but the "state" needs 4 bytes to decode? the state can't consume 1 byte so an
IllegalStateException will be thrown out?
_________________________________________________________________
Hotmail: Free, trusted and rich email service.
https://signup.live.com/signup.aspx?id=60969