Jan created TINKERPOP-3058:
------------------------------
Summary: StackOverFlowError when using `or` in Custom Gremlin DSL
Key: TINKERPOP-3058
URL: https://issues.apache.org/jira/browse/TINKERPOP-3058
Project: TinkerPop
Issue Type: Bug
Components: tinkergraph
Affects Versions: 3.6.4
Reporter: Jan
Implementing our own
[GremlinDSL|https://tinkerpop.apache.org/docs/current/reference/#gremlin-java-dsl]
we encounter a `StackoverFlowError` as soon as we use `or` in the @GremlinDsl
interface.
The same condition works fine if defined directly in the query.
It also works as soon as we remove the or from the condition.
{code:java}
@GremlinDsl(traversalSource = "com.corp.foo.gremlin.CustomGraphTraversalSource")
public interface CustomTraversalDsl<S, E> extends GraphTraversal.Admin<S, E> {
default GraphTraversal<S, Vertex> outWithOr() {
return out()
.or(
has("key"),
has("key", false)
);
}
default GraphTraversal<S, Vertex> outWithoutOr() {
return out()
.has("key")
.has("key", false);
}
}
g.V().where(outWithoutOr()).next(); -> works fine
g.V().where(out().or(has("key"), has("key", false))).next() -> works fine
g.V().where(outWithOr()).next(); ->
java.lang.StackOverflowError
at
org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper.hasStepOfAssignableClass(TraversalHelper.java:349)
at
org.apache.tinkerpop.gremlin.process.traversal.strategy.decoration.ConnectiveStrategy.apply(ConnectiveStrategy.java:63)
at
org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper.applyTraversalRecursively(TraversalHelper.java:503)
at
org.apache.tinkerpop.gremlin.process.traversal.util.TraversalHelper.applyTraversalRecursively(TraversalHelper.java:491){code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)