GitHub user okram opened a pull request:
https://github.com/apache/tinkerpop/pull/527
TINKERPOP-1521: Mutating steps don't recognize side-effects
https://issues.apache.org/jira/browse/TINKERPOP-1521
`AddVertexStartStep` was using an `EmptyTraverser` to compute the
`Parameters`. I thus, create a dummy traverser that has respective traversal
side-effects. Added two new test cases to `AddVertexTest`.
```groovy
gremlin> g = TinkerGraph.open().traversal()
==>graphtraversalsource[tinkergraph[vertices:0 edges:0], standard]
gremlin> g.withSideEffect("a", "marko").addV().property("name", select("a"))
==>v[0]
gremlin> g.V().valueMap()
==>[name:[marko]]
gremlin>
```
Finally, realized that `PathRetractionStrategy` was adding a
`NoOpBarrierStep` to the end of local traversal. This is pointless computation
as 99% of local traversals are `by()`-modulators that only need the first
`next()`.
VOTE +1.
You can merge this pull request into a Git repository by running:
$ git pull https://github.com/apache/tinkerpop TINKERPOP-1521
Alternatively you can review and apply these changes as the patch at:
https://github.com/apache/tinkerpop/pull/527.patch
To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:
This closes #527
----
commit 276064530617c04706b62ac57ec4e2e660a756a4
Author: Marko A. Rodriguez <[email protected]>
Date: 2017-01-09T16:36:15Z
fixed an NPE in AddVertexStartStep. In PathRetractionStrategy, NoOpBarriers
are only added to global children as 99% of local children are by()-modulation
based and thus, there is no point to fully compute the traversal if only the
first next() is going to be used.
----
---
If your project is set up for it, you can reply to this email and have your
reply appear on GitHub as well. If your project does not have this feature
enabled and wishes so, or if the feature is enabled but not working, please
contact infrastructure at [email protected] or file a JIRA ticket
with INFRA.
---