diff --git a/java/src/org/broadinstitute/sting/gatk/datasources/reads/FilePointer.java b/java/src/org/broadinstitute/sting/gatk/datasources/reads/FilePointer.java index b1f264e63..469364df8 100644 --- a/java/src/org/broadinstitute/sting/gatk/datasources/reads/FilePointer.java +++ b/java/src/org/broadinstitute/sting/gatk/datasources/reads/FilePointer.java @@ -105,7 +105,14 @@ class FilePointer { PeekableIterator> thisIterator = new PeekableIterator>(this.fileSpans.entrySet().iterator()); PeekableIterator> otherIterator = new PeekableIterator>(other.fileSpans.entrySet().iterator()); - while(thisIterator.hasNext() || otherIterator.hasNext()) { + while(thisIterator.hasNext()) { + // If there are no elements left in the 'other' iterator, spin out this iterator. + if(!otherIterator.hasNext()) { + difference += ((GATKBAMFileSpan)thisIterator.next()).size(); + continue; + } + + // Otherwise, compare the latest value. int compareValue = thisIterator.peek().getKey().compareTo(otherIterator.peek().getKey()); if(compareValue < 0) {