in src/main/java/com/twitter/whiskey/net/SpdyStream.java [441:459]
ByteBuffer readData(int length) throws IOException {
while (dataIndex < data.length) {
int available = data[dataIndex].remaining();
if (available > 0) {
int bytesToRead = Math.min(length, available);
int oldLimit = data[dataIndex].limit();
int sliceLimit = data[dataIndex].position() + bytesToRead;
data[dataIndex].limit(sliceLimit);
ByteBuffer slice = data[dataIndex].slice();
data[dataIndex].limit(oldLimit);
data[dataIndex].position(sliceLimit);
return slice;
}
dataIndex++;
}
throw new IOException("no pending data");
}