@Override public Buffer.View next() { int limit = buffer.limit(); int endchunk = canDecodeNext(buffer, context); if (endchunk == -1) { return null; } Buffer.View view = buffer.createView(buffer.position(), endchunk); if (buffer.remaining() > 0) { buffer.position(Math.min(limit, view.getEnd())); buffer.limit(limit); } return view; }