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 c7f5c06a25b8f1618214e911f737f800430be76c
Author: Andrea Child <[email protected]>
AuthorDate: Wed Sep 3 18:09:53 2025 -0700

    Fixed standard algo.
---
 .../process/traversal/step/branch/RepeatStep.java  |  8 +++---
 .../traversal/step/filter/RangeGlobalStep.java     | 31 ++++++++++------------
 .../process/traversal/step/map/VertexStep.java     |  9 +------
 .../tinkergraph/structure/TinkerGraphPlayTest.java |  2 +-
 4 files changed, 20 insertions(+), 30 deletions(-)

diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/RepeatStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/RepeatStep.java
index 97533940df..b76c3a6378 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/RepeatStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/branch/RepeatStep.java
@@ -371,11 +371,11 @@ public final class RepeatStep<S> extends 
ComputerAwareStep<S, S> implements Trav
         protected Iterator<Traverser.Admin<S>> computerAlgorithm() throws 
NoSuchElementException {
             final RepeatStep<S> repeatStep = (RepeatStep<S>) 
this.getTraversal().getParent();
             final Traverser.Admin<S> start = this.starts.next();
-            System.out.printf("RepeatEndStep.computerAlgorithm: %s loops=%d 
before incrLoops%n", start.path(), start.loops());
+//            System.out.printf("RepeatEndStep.computerAlgorithm: %s loops=%d 
before incrLoops%n", start.path(), start.loops());
             start.incrLoops();
-            System.out.printf("RepeatEndStep.computerAlgorithm: %s loops=%d 
after incrLoops%n", start.path(), start.loops());
+//            System.out.printf("RepeatEndStep.computerAlgorithm: %s loops=%d 
after incrLoops%n", start.path(), start.loops());
             if (repeatStep.doUntil(start, false)) {
-                System.out.printf("RepeatEndStep.computerAlgorithm: 
doUntil=true, calling resetLoops for %s%n", start.path());
+//                System.out.printf("RepeatEndStep.computerAlgorithm: 
doUntil=true, calling resetLoops for %s%n", start.path());
                 start.resetLoops();
                 start.setStepId(repeatStep.getNextStep().getId());
                 start.addLabels(repeatStep.labels);
@@ -384,7 +384,7 @@ public final class RepeatStep<S> extends 
ComputerAwareStep<S, S> implements Trav
                 start.setStepId(repeatStep.getId());
                 if (repeatStep.doEmit(start, false)) {
                     final Traverser.Admin<S> emitSplit = start.split();
-                    System.out.printf("RepeatEndStep.computerAlgorithm: 
doEmit=true, calling resetLoops for emitSplit %s%n", emitSplit.path());
+//                    System.out.printf("RepeatEndStep.computerAlgorithm: 
doEmit=true, calling resetLoops for emitSplit %s%n", emitSplit.path());
                     emitSplit.resetLoops();
                     emitSplit.setStepId(repeatStep.getNextStep().getId());
                     emitSplit.addLabels(repeatStep.labels);
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 50ea137f20..37f814a0d4 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
@@ -68,34 +68,31 @@ public final class RangeGlobalStep<S> extends FilterStep<S> 
implements Ranging,
 
     @Override
     protected boolean filter(final Traverser.Admin<S> traverser) {
-        System.out.printf("Filter called: %s loops=%d%n", traverser.path(), 
traverser.loops());
+//        System.out.printf("Filter called: %s loops=%d%n", traverser.path(), 
traverser.loops());
         if (this.bypass) return true;
 
         // Determine which counter to use
         AtomicLong currentCounter = this.counter;
         if (usePerIterationCounters) {
-            // Find the parent repeat step and use its loop context
-            String repeatStepId = null;
-            int repeatLoops = 0;
-            
+            StringBuilder sb = new StringBuilder();
             Traversal.Admin<?,?> t = this.traversal;
             while (!t.isRoot()) {
                 TraversalParent pt = t.getParent();
                 Step<?, ?> ps = pt.asStep();
-                if (ps.getClass().getSimpleName().equals("RepeatStep")) {
-                    repeatStepId = ps.getId();
-                    if (traverser.getLoopNames().contains(repeatStepId)) {
-                        repeatLoops = traverser.loops(repeatStepId);
-                    }
-                    break;
+                String pid = ps.getId();
+                if (traverser.getLoopNames().contains(pid)) {
+                    sb.append(pid).append(":");
+                    sb.append(traverser.loops(pid)).append(":");
                 }
                 t = ps.getTraversal();
             }
-            
-            // Create key based on repeat step and its current iteration
-            String iterationKey = repeatStepId + ":" + repeatLoops;
+            sb.append(this.getId()).append(":").append(traverser.loops());
+
+            // Create counter key that isolates between different repeat step 
contexts
+            String iterationKey = sb.toString();
+//            Object vId = ((Vertex) traverser.get()).property("id").value();
             currentCounter = 
perIterationCounters.computeIfAbsent(iterationKey, k -> new AtomicLong(0L));
-            System.out.printf("IterationKey: %s RepeatLoops: %d Counter: %d 
Path: %s%n", iterationKey, repeatLoops, currentCounter.get(), traverser.path());
+            // System.out.printf("IterationKey: %s Traverser: %s Path: %s 
Counter: %s High: %s%n", iterationKey, vId, traverser.path(), 
currentCounter.get(), this.high);
         }
 
         System.out.printf("Traverser: %s%n", traverser);
@@ -238,9 +235,9 @@ public final class RangeGlobalStep<S> extends FilterStep<S> 
implements Ranging,
 
     @Override
     public void addBarrier(final TraverserSet<S> barrier) {
-        System.out.printf("=== addBarrier called with %d traversers ===%n", 
barrier.size());
+//        System.out.printf("=== addBarrier called with %d traversers ===%n", 
barrier.size());
         
IteratorUtils.removeOnNext(barrier.iterator()).forEachRemaining(traverser -> {
-            System.out.printf("Barrier traverser: %s loops=%d%n", 
traverser.path(), traverser.loops());
+//            System.out.printf("Barrier traverser: %s loops=%d%n", 
traverser.path(), traverser.loops());
             traverser.setSideEffects(this.getTraversal().getSideEffects());
             this.addStart(traverser);
         });
diff --git 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexStep.java
 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexStep.java
index f23d17e8cf..f4d2743f24 100644
--- 
a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexStep.java
+++ 
b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/VertexStep.java
@@ -70,16 +70,9 @@ public class VertexStep<E extends Element> extends 
FlatMapStep<Vertex, E> implem
 
     @Override
     protected Iterator<E> flatMap(final Traverser.Admin<Vertex> traverser) {
-        Iterator<E> result = Vertex.class.isAssignableFrom(this.returnClass) ?
+        return Vertex.class.isAssignableFrom(this.returnClass) ?
                 (Iterator<E>) traverser.get().vertices(this.direction, 
this.edgeLabels) :
                 (Iterator<E>) traverser.get().edges(this.direction, 
this.edgeLabels);
-
-        // Count results for debugging
-        List<E> resultList = new java.util.ArrayList<>();
-        result.forEachRemaining(resultList::add);
-        System.out.printf("VertexStep.flatMap: traverser=%s direction=%s 
labels=%s results=%s%n",
-                traverser, this.direction, Arrays.toString(this.edgeLabels), 
resultList);
-        return resultList.iterator();
     }
 
     @Override
diff --git 
a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
 
b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
index 594090b1e1..d74992dc61 100644
--- 
a/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
+++ 
b/tinkergraph-gremlin/src/test/java/org/apache/tinkerpop/gremlin/tinkergraph/structure/TinkerGraphPlayTest.java
@@ -73,7 +73,7 @@ public class TinkerGraphPlayTest {
     public static void setup() {
         g = 
TinkerGraph.open().traversal().withoutStrategies(RepeatUnrollStrategy.class);
         load(g);
-        g = g.withComputer(Computer.compute().workers(1));
+//        g = g.withComputer(Computer.compute().workers(1));
     }
     
     @Test

Reply via email to