in hessian-lite/src/main/java/com/alibaba/com/caucho/hessian/io/Hessian2Input.java [3320:3390]
private boolean parseChunkLength()
throws IOException {
if (_isLastChunk)
return false;
int code = _offset < _length ? (_buffer[_offset++] & 0xff) : read();
switch (code) {
case BC_STRING_CHUNK:
_isLastChunk = false;
_chunkLength = (read() << 8) + read();
break;
case 'S':
_isLastChunk = true;
_chunkLength = (read() << 8) + read();
break;
case 0x00:
case 0x01:
case 0x02:
case 0x03:
case 0x04:
case 0x05:
case 0x06:
case 0x07:
case 0x08:
case 0x09:
case 0x0a:
case 0x0b:
case 0x0c:
case 0x0d:
case 0x0e:
case 0x0f:
case 0x10:
case 0x11:
case 0x12:
case 0x13:
case 0x14:
case 0x15:
case 0x16:
case 0x17:
case 0x18:
case 0x19:
case 0x1a:
case 0x1b:
case 0x1c:
case 0x1d:
case 0x1e:
case 0x1f:
_isLastChunk = true;
_chunkLength = code - 0x00;
break;
case 0x30:
case 0x31:
case 0x32:
case 0x33:
_isLastChunk = true;
_chunkLength = (code - 0x30) * 256 + read();
break;
default:
throw expect("string", code);
}
return true;
}