diff --git a/src/main/java/loci/common/StreamHandle.java b/src/main/java/loci/common/StreamHandle.java index 5cbc7e59..0dccf50a 100644 --- a/src/main/java/loci/common/StreamHandle.java +++ b/src/main/java/loci/common/StreamHandle.java @@ -156,8 +156,10 @@ public void seek(long pos) throws IOException { fp = pos; if (diff < 0) { + // resetStream sets the fp to 0 resetStream(); - diff = fp; + diff = pos; + fp = pos; } int skipped = stream.skipBytes((int) diff); while (skipped < diff) { @@ -165,6 +167,7 @@ public void seek(long pos) throws IOException { if (n == 0) break; skipped += n; } + markManager(); } /* @see IRandomAccess.write(ByteBuffer) */