This is an automated email from the ASF dual-hosted git repository. colegreer pushed a commit to branch repeatLimit in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit 4af663175e0318a68bb816774ebce9bbcb5cd2a8 Author: Andrea Child <[email protected]> AuthorDate: Tue Sep 2 13:31:31 2025 -0700 Fixed getLoopNames logic. --- .../gremlin/process/traversal/step/filter/RangeGlobalStep.java | 9 +++++---- .../traversal/traverser/B_LP_NL_O_P_S_SE_SL_Traverser.java | 6 ++++++ .../process/traversal/traverser/B_NL_O_S_SE_SL_Traverser.java | 6 ++++++ 3 files changed, 17 insertions(+), 4 deletions(-) diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/RangeGlobalStep.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/RangeGlobalStep.java index 2be2a7da1a..2585f73543 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/RangeGlobalStep.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/filter/RangeGlobalStep.java @@ -74,14 +74,15 @@ public final class RangeGlobalStep<S> extends FilterStep<S> implements Ranging, AtomicLong currentCounter = this.counter; if (usePerIterationCounters) { StringBuilder sb = new StringBuilder(); - Traversal.Admin t = this.traversal; + Traversal.Admin<?,?> t = this.traversal; while (!t.isRoot()) { TraversalParent pt = t.getParent(); - // TODO: account scenario where parent is not repeat step? Step<?, ?> ps = pt.asStep(); String pid = ps.getId(); - sb.append(pid).append(":"); - sb.append(traverser.loops(pid)).append(":"); + if (traverser.getLoopNames().contains(pid)) { + sb.append(pid).append(":"); + sb.append(traverser.loops(pid)).append(":"); + } t = ps.getTraversal(); } sb.append(this.getId()).append(":").append(traverser.loops()); diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/B_LP_NL_O_P_S_SE_SL_Traverser.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/B_LP_NL_O_P_S_SE_SL_Traverser.java index 70e827630d..57cdf63c2d 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/B_LP_NL_O_P_S_SE_SL_Traverser.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/B_LP_NL_O_P_S_SE_SL_Traverser.java @@ -18,6 +18,7 @@ */ package org.apache.tinkerpop.gremlin.process.traversal.traverser; +import java.util.Set; import org.apache.commons.collections.map.ReferenceMap; import org.apache.tinkerpop.gremlin.process.traversal.Step; import org.apache.tinkerpop.gremlin.process.traversal.traverser.util.LabelledCounter; @@ -47,6 +48,11 @@ public class B_LP_NL_O_P_S_SE_SL_Traverser<T> extends B_LP_O_P_S_SE_SL_Traverser return this.nestedLoops.peek().count(); } + @Override + public Set<String> getLoopNames() { + return loopNames.keySet(); + } + @Override public int loops(final String loopName) { if (loopName == null) diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/B_NL_O_S_SE_SL_Traverser.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/B_NL_O_S_SE_SL_Traverser.java index cb05a7559e..3ce0884c6e 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/B_NL_O_S_SE_SL_Traverser.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/traverser/B_NL_O_S_SE_SL_Traverser.java @@ -18,6 +18,7 @@ */ package org.apache.tinkerpop.gremlin.process.traversal.traverser; +import java.util.Set; import org.apache.commons.collections.map.ReferenceMap; import org.apache.tinkerpop.gremlin.process.traversal.Step; import org.apache.tinkerpop.gremlin.process.traversal.traverser.util.LabelledCounter; @@ -56,6 +57,11 @@ public class B_NL_O_S_SE_SL_Traverser<T> extends B_O_S_SE_SL_Traverser<T> { throw new IllegalArgumentException("Loop name not defined: " + loopName); } + @Override + public Set<String> getLoopNames() { + return loopNames.keySet(); + } + @Override public void initialiseLoops(final String stepLabel, final String loopName) { if (this.nestedLoops.empty() || !this.nestedLoops.peek().hasLabel(stepLabel)) {
