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)) {

Reply via email to