From 2e02c3369c355d2a39a8da3c0a6141019e31afc5 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Genevi=C3=A8ve=20Bastien?= Date: Tue, 7 Feb 2017 21:36:40 -0500 Subject: [PATCH] datastore: Be less strict on the query range of children MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit 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 --- .../core/historytree/overlapping/OverlappingNode.java | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) 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(); -- 2.34.1