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