/** Read raw bytes from a SequenceFile. */ public synchronized boolean nextKeyValue() throws IOException, InterruptedException { if (done) { return false; } long pos = in.getPosition(); key.set(pos); info.setPosition(pos); boolean eof = -1 == in.nextRawKey(buffer); if (!eof) { in.nextRawValue(vbytes); value.set( buffer.getLength(), vbytes.getSize(), (int) (in.getPosition() - pos), in.syncSeen()); } buffer.reset(); return !(done = (eof || (pos >= end && in.syncSeen()))); }