From 8d8aed6a67631c341b626c701f303e64e4da2477 Mon Sep 17 00:00:00 2001 From: hanna Date: Fri, 25 Mar 2011 16:35:43 +0000 Subject: [PATCH] Fix correctness issue when dynamically merging many files. git-svn-id: file:///humgen/gsa-scr1/gsa-engineering/svn_contents/trunk@5512 348d0f76-0448-11de-a6fe-93d51630548a --- .../sting/gatk/datasources/reads/BAMSchedule.java | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/java/src/org/broadinstitute/sting/gatk/datasources/reads/BAMSchedule.java b/java/src/org/broadinstitute/sting/gatk/datasources/reads/BAMSchedule.java index 530f7018b..bab22f5aa 100644 --- a/java/src/org/broadinstitute/sting/gatk/datasources/reads/BAMSchedule.java +++ b/java/src/org/broadinstitute/sting/gatk/datasources/reads/BAMSchedule.java @@ -159,6 +159,9 @@ public class BAMSchedule implements CloseableIterator { final long readerStopOffset = position(); scheduleIterators.add(new PeekableIterator(new BAMScheduleIterator(reader,readerStartOffset,readerStopOffset,maxChunkCount))); + + // Iterator initialization might move the file pointer. Make sure it gets reset back to where it was before iterator initialization. + position(readerStopOffset); } advance(); @@ -296,6 +299,8 @@ public class BAMSchedule implements CloseableIterator { private void write(final ByteBuffer buffer) { try { scheduleFileChannel.write(buffer); + if(buffer.remaining() > 0) + throw new ReviewedStingException("Unable to write entire buffer to file."); } catch(IOException ex) { throw new ReviewedStingException("Unable to write data to BAM schedule file.",ex);