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
This commit is contained in:
parent
c9283e6bc5
commit
8d8aed6a67
|
|
@ -159,6 +159,9 @@ public class BAMSchedule implements CloseableIterator<BAMScheduleEntry> {
|
||||||
final long readerStopOffset = position();
|
final long readerStopOffset = position();
|
||||||
|
|
||||||
scheduleIterators.add(new PeekableIterator<BAMScheduleEntry>(new BAMScheduleIterator(reader,readerStartOffset,readerStopOffset,maxChunkCount)));
|
scheduleIterators.add(new PeekableIterator<BAMScheduleEntry>(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();
|
advance();
|
||||||
|
|
@ -296,6 +299,8 @@ public class BAMSchedule implements CloseableIterator<BAMScheduleEntry> {
|
||||||
private void write(final ByteBuffer buffer) {
|
private void write(final ByteBuffer buffer) {
|
||||||
try {
|
try {
|
||||||
scheduleFileChannel.write(buffer);
|
scheduleFileChannel.write(buffer);
|
||||||
|
if(buffer.remaining() > 0)
|
||||||
|
throw new ReviewedStingException("Unable to write entire buffer to file.");
|
||||||
}
|
}
|
||||||
catch(IOException ex) {
|
catch(IOException ex) {
|
||||||
throw new ReviewedStingException("Unable to write data to BAM schedule file.",ex);
|
throw new ReviewedStingException("Unable to write data to BAM schedule file.",ex);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue