Skip to content

Commit 6b55999

Browse files
committed
Don't include ranges that are already materialized in the aggregation
1 parent 0a0e33a commit 6b55999

1 file changed

Lines changed: 5 additions & 1 deletion

File tree

src/main/java/org/janelia/saalfeldlab/n5/readdata/prefetch/AggregatingPrefetchLazyRead.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,9 @@
11
package org.janelia.saalfeldlab.n5.readdata.prefetch;
22

3+
import java.util.ArrayList;
34
import java.util.Collection;
45

6+
import java.util.List;
57
import org.janelia.saalfeldlab.n5.N5Exception.N5IOException;
68
import org.janelia.saalfeldlab.n5.readdata.LazyRead;
79
import org.janelia.saalfeldlab.n5.readdata.Range;
@@ -31,7 +33,9 @@ public AggregatingPrefetchLazyRead(final LazyRead delegate) {
3133
@Override
3234
public void prefetch(final Collection<? extends Range> ranges) throws N5IOException {
3335

34-
final Collection<? extends Range> aggregatedRanges = Range.aggregate(ranges);
36+
final List<Range> filteredRanges = new ArrayList<>(ranges);
37+
filteredRanges.removeIf(this::isCovered);
38+
final Collection<? extends Range> aggregatedRanges = Range.aggregate(filteredRanges);
3539
for (final Range slice : aggregatedRanges) {
3640
materialize(slice.offset(), slice.length());
3741
}

0 commit comments

Comments
 (0)