private Frame readFrame() throws IOException { while (!Frame.hasHeaders(buffer, 0, limit)) { int read = in.read(buffer, limit, buffer.length - limit); if (read == -1) throw new IOException("Connection closed"); limit += read; } Frame frame = new Frame(); int r = frame.read(buffer, 0, limit); limit -= r; if (limit != 0) System.arraycopy(buffer, r, buffer, 0, limit); if (frame.isComplete()) return frame; else { while (!frame.isComplete()) { frame.read(in); } return frame; } }
Frame frame = this.tempFrame; if (frame == null) { if (!Frame.hasHeaders(buffer, 0, read)) continue outer;