You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tinkerpop.apache.org by co...@apache.org on 2025/06/06 01:45:53 UTC

(tinkerpop) branch GValueManager3.8-wip updated: fix tests

This is an automated email from the ASF dual-hosted git repository.

colegreer pushed a commit to branch GValueManager3.8-wip
in repository https://gitbox.apache.org/repos/asf/tinkerpop.git


The following commit(s) were added to refs/heads/GValueManager3.8-wip by this push:
     new 644d78f757 fix tests
644d78f757 is described below

commit 644d78f757e1732948c7afb417bc3648109fb10c
Author: Cole-Greer <Co...@improving.com>
AuthorDate: Thu Jun 5 18:45:45 2025 -0700

    fix tests
---
 .../org/apache/tinkerpop/gremlin/process/traversal/GValueManager.java  | 3 ++-
 .../tinkerpop/gremlin/process/traversal/step/TraversalParent.java      | 3 ++-
 .../tinkerpop/gremlin/process/traversal/util/EmptyTraversal.java       | 2 +-
 .../gremlin/process/traversal/step/map/MergeEdgeStepTest.java          | 3 +++
 .../gremlin/process/traversal/step/map/MergeVertexStepTest.java        | 3 +++
 5 files changed, 11 insertions(+), 3 deletions(-)

diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/GValueManager.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/GValueManager.java
index 14a5fda32b..4757f926e3 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/GValueManager.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/GValueManager.java
@@ -104,7 +104,8 @@ public final class GValueManager implements Serializable, Cloneable {
     }
 
     public void mergeInto(final GValueManager other) {
-        if (this.locked) throw Traversal.Exceptions.traversalIsLocked();
+        //TODO, how to proceed when locked? Often end up here with locked traversals in OLAP as Traversals are cloned after strategies have finished running.
+//        if (this.locked) throw Traversal.Exceptions.traversalIsLocked();
 
         //TODO deal with conflicts
         other.gValueRegistry.putAll(gValueRegistry);
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/TraversalParent.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/TraversalParent.java
index 57f6ddc556..5473d3d3bd 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/TraversalParent.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/step/TraversalParent.java
@@ -21,6 +21,7 @@ package org.apache.tinkerpop.gremlin.process.traversal.step;
 import org.apache.tinkerpop.gremlin.process.traversal.Step;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.traverser.TraverserRequirement;
+import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper;
 
 import java.util.Collections;
 import java.util.EnumSet;
@@ -83,7 +84,7 @@ public interface TraversalParent extends AutoCloseable {
         childTraversal.getSideEffects().mergeInto(this.asStep().getTraversal().getSideEffects());
         childTraversal.setSideEffects(this.asStep().getTraversal().getSideEffects());
         childTraversal.getGValueManager().mergeInto(this.asStep().getTraversal().getGValueManager());
-        childTraversal.setGValueManager(this.asStep().getTraversal().getGValueManager());
+        TraversalHelper.applyTraversalRecursively(t -> t.setGValueManager(this.asStep().getTraversal().getGValueManager()), childTraversal);
         return (Traversal.Admin<S, E>) childTraversal;
     }
 
diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTraversal.java
index a88f94f9ab..aaf5402127 100644
--- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTraversal.java
+++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/util/EmptyTraversal.java
@@ -60,7 +60,7 @@ public final class EmptyTraversal<S, E> implements Traversal.Admin<S, E> {
 
     @Override
     public GValueManager getGValueManager() {
-        return null;
+        return new GValueManager();
     }
 
     @Override
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MergeEdgeStepTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MergeEdgeStepTest.java
index 904ce8331f..13c4612a57 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MergeEdgeStepTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MergeEdgeStepTest.java
@@ -18,6 +18,7 @@
  */
 package org.apache.tinkerpop.gremlin.process.traversal.step.map;
 
+import org.apache.tinkerpop.gremlin.process.traversal.GValueManager;
 import org.apache.tinkerpop.gremlin.process.traversal.Merge;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalSideEffects;
@@ -121,11 +122,13 @@ public class MergeEdgeStepTest {
         when(traversal.getTraverserSetSupplier()).thenReturn(TraverserSetSupplier.instance());
         when(traversal.getParent()).thenReturn(EmptyStep.instance());
         when(traversal.getStrategies()).thenReturn(new DefaultTraversalStrategies());
+        when(traversal.getGValueManager()).thenReturn(new GValueManager());
         final Traverser.Admin traverser = mock(Traverser.Admin.class);
         when(traverser.split()).thenReturn(mock(Traverser.Admin.class));
         final Traversal.Admin onCreateTraversal = mock(Traversal.Admin.class);
         when(onCreateTraversal.next()).thenReturn(Collections.unmodifiableMap(CollectionUtil.asMap("key1", "value1")));
         when(onCreateTraversal.getSideEffects()).thenReturn(mock(TraversalSideEffects.class));
+        when(onCreateTraversal.getGValueManager()).thenReturn(new GValueManager());
 
         final MergeEdgeStep step = new MergeEdgeStep<>(traversal, true);
         step.addChildOption(Merge.onCreate, onCreateTraversal);
diff --git a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MergeVertexStepTest.java b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MergeVertexStepTest.java
index a612735e48..21b67e0d6e 100644
--- a/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MergeVertexStepTest.java
+++ b/gremlin-core/src/test/java/org/apache/tinkerpop/gremlin/process/traversal/step/map/MergeVertexStepTest.java
@@ -18,6 +18,7 @@
  */
 package org.apache.tinkerpop.gremlin.process.traversal.step.map;
 
+import org.apache.tinkerpop.gremlin.process.traversal.GValueManager;
 import org.apache.tinkerpop.gremlin.process.traversal.Merge;
 import org.apache.tinkerpop.gremlin.process.traversal.Traversal;
 import org.apache.tinkerpop.gremlin.process.traversal.TraversalSideEffects;
@@ -94,11 +95,13 @@ public class MergeVertexStepTest {
         when(traversal.getTraverserSetSupplier()).thenReturn(TraverserSetSupplier.instance());
         when(traversal.getParent()).thenReturn(EmptyStep.instance());
         when(traversal.getStrategies()).thenReturn(new DefaultTraversalStrategies());
+        when(traversal.getGValueManager()).thenReturn(new GValueManager());
         final Traverser.Admin traverser = mock(Traverser.Admin.class);
         when(traverser.split()).thenReturn(mock(Traverser.Admin.class));
         final Traversal.Admin onCreateTraversal = mock(Traversal.Admin.class);
         when(onCreateTraversal.next()).thenReturn(Collections.unmodifiableMap(CollectionUtil.asMap("key1", "value1")));
         when(onCreateTraversal.getSideEffects()).thenReturn(mock(TraversalSideEffects.class));
+        when(onCreateTraversal.getGValueManager()).thenReturn(new GValueManager());
 
         final MergeVertexStep step = new MergeVertexStep(traversal, true);
         step.addChildOption(Merge.onCreate, onCreateTraversal);