From: Geneviève Bastien Date: Wed, 8 Feb 2017 02:36:40 +0000 (-0500) Subject: datastore: Be less strict on the query range of children X-Git-Url: http://drtracing.org/?a=commitdiff_plain;h=2e02c3369c355d2a39a8da3c0a6141019e31afc5;p=deliverable%2Ftracecompass.git datastore: Be less strict on the query range of children Just return an empty list when the time range does not intersect with the node's range instead of throwing an exception. Change-Id: I7f9aaa78cb410d26e713ea966efb74648d95b920 Signed-off-by: Geneviève Bastien Reviewed-on: https://git.eclipse.org/r/90602 Reviewed-by: Hudson CI Reviewed-by: Matthew Khouzam --- diff --git a/statesystem/org.eclipse.tracecompass.datastore.core/src/org/eclipse/tracecompass/internal/provisional/datastore/core/historytree/overlapping/OverlappingNode.java b/statesystem/org.eclipse.tracecompass.datastore.core/src/org/eclipse/tracecompass/internal/provisional/datastore/core/historytree/overlapping/OverlappingNode.java index 80ac3356d6..37c815a388 100644 --- a/statesystem/org.eclipse.tracecompass.datastore.core/src/org/eclipse/tracecompass/internal/provisional/datastore/core/historytree/overlapping/OverlappingNode.java +++ b/statesystem/org.eclipse.tracecompass.datastore.core/src/org/eclipse/tracecompass/internal/provisional/datastore/core/historytree/overlapping/OverlappingNode.java @@ -15,6 +15,7 @@ import java.nio.ByteBuffer; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.Collections; import java.util.HashSet; import java.util.List; import java.util.Objects; @@ -23,7 +24,6 @@ import java.util.Set; import org.eclipse.jdt.annotation.NonNull; import org.eclipse.jdt.annotation.Nullable; import org.eclipse.tracecompass.internal.provisional.datastore.core.condition.RangeCondition; -import org.eclipse.tracecompass.internal.provisional.datastore.core.exceptions.RangeException; import org.eclipse.tracecompass.internal.provisional.datastore.core.historytree.HTNode; import org.eclipse.tracecompass.internal.provisional.datastore.core.historytree.IHTNode; import org.eclipse.tracecompass.internal.provisional.datastore.core.interval.IHTInterval; @@ -184,9 +184,9 @@ public class OverlappingNode extends HTNode { protected Collection selectNextIndices(RangeCondition rc) { OverlappingNode node = getNode(); - if (rc.min() < node.getNodeStart() - || (node.isOnDisk() && rc.max() > node.getNodeEnd())) { - throw new RangeException("Requesting children outside the node's range: " + rc.toString()); //$NON-NLS-1$ + if (rc.max() < node.getNodeStart() + || (node.isOnDisk() && rc.min() > node.getNodeEnd())) { + return Collections.emptySet(); } node.takeReadLock();