[ https://issues.apache.org/jira/browse/TINKERPOP-2959?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17901808#comment-17901808 ]
ASF GitHub Bot commented on TINKERPOP-2959: ------------------------------------------- Cole-Greer commented on code in PR #2919: URL: https://github.com/apache/tinkerpop/pull/2919#discussion_r1862750059 ########## gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/strategy/decoration/SideEffectStrategy.java: ########## @@ -60,7 +61,11 @@ public static <A> void addSideEffect(final TraversalStrategies traversalStrategi strategy = cloneStrategy; traversalStrategies.addStrategies(strategy); } - strategy.sideEffects.add(new Triplet<>(key, value instanceof Supplier ? (Supplier) value : new ConstantSupplier<>(value), reducer)); + + // don't want the GValue to leak beyond strategy application or else the Supplier will start producing it + // during execution + final ConstantSupplier initialValue = value instanceof GValue ? new ConstantSupplier<>(((GValue) value).get()) : new ConstantSupplier<>(value); + strategy.sideEffects.add(new Triplet<>(key, value instanceof Supplier ? (Supplier) value : initialValue, reducer)); Review Comment: Yes that is possible. Nice catch! I've updated the logic such that any GValue supplied by a `Supplier<GValue>` will be unboxed as well. > Allow the grammar to support parameters > --------------------------------------- > > Key: TINKERPOP-2959 > URL: https://issues.apache.org/jira/browse/TINKERPOP-2959 > Project: TinkerPop > Issue Type: Improvement > Components: language > Affects Versions: 3.6.4 > Reporter: Stephen Mallette > Assignee: Stephen Mallette > Priority: Major > Fix For: 3.7.0 > > > Allow the grammar to support parameters similar to how the groovy engine does > like, {{g.inject(x,y,z)}}. Doing this will make it easier for a transition > away from the groovy engine as a lot of Gremlin in the world today uses > parameters. The grammar may have to come with some limitations though as > groovy is wide open in terms of what can be treated as a variable. Probably > going to keep parameters tied to primitives, collections and tokens/enums > like {{Order}} and {{Scope}}. Collections themselves will not contain > parameters and things like a {{Traversal}} or {{P}} cannot be treated as one. -- This message was sent by Atlassian Jira (v8.20.10#820010)