This is an automated email from the ASF dual-hosted git repository. spmallette pushed a commit to branch TINKERPOP-2235 in repository https://gitbox.apache.org/repos/asf/tinkerpop.git
commit 446d92cc661b3b206617e85f0832320645d487db Author: stephen <[email protected]> AuthorDate: Tue Nov 26 10:26:54 2019 -0500 TINKERPOP-2235 Ensured addE(null) behaved consistently. Should now throw the same nice error for String and Traversal overloads. --- docs/src/upgrade/release-3.5.x.asciidoc | 34 ++++++++++++++++++++++ .../traversal/dsl/graph/GraphTraversal.java | 4 +-- 2 files changed, 36 insertions(+), 2 deletions(-) diff --git a/docs/src/upgrade/release-3.5.x.asciidoc b/docs/src/upgrade/release-3.5.x.asciidoc index ce7a00e..841176d 100644 --- a/docs/src/upgrade/release-3.5.x.asciidoc +++ b/docs/src/upgrade/release-3.5.x.asciidoc @@ -394,6 +394,40 @@ The above examples point out the default operations of TinkerGraph, but it can b `null` as a property value and it is up to graph providers to decided how they wish to treat a `null` property value. Providers should use the new `supportsNullPropertyValues()` feature to indicate to users how `null` is handled. +For edges, the `label` still cannot be defaulted and must be specified, therefore: + +[source,text] +---- +gremlin> g.V(0L).as('a').addE(null).to('a') +Label can not be null +Type ':help' or ':h' for help. +Display stack trace? [yN]n +gremlin> g.V(0L).as('a').addE(constant(null)).to('a') +Label can not be null +Type ':help' or ':h' for help. +Display stack trace? [yN] +---- + +Also, edges have similar behavior to vertices when it comes to setting properties (again, the default configuration for +TinkerGraph is being used here): + +[source,text] +---- +gremlin> g.V(0L).as('a').addE('knows').to('a').property(id,null).property('weight',null) +==>e[1][0-knows->0] +gremlin> g.E().elementMap() +==>[id:1,label:knows,IN:[id:0,label:vertex],OUT:[id:0,label:vertex]] +gremlin> g.V(0L).as('a').addE('knows').to('a').property('weight',0.5) +==>e[3][0-knows->0] +gremlin> g.E().elementMap() +==>[id:3,label:knows,IN:[id:0,label:vertex],OUT:[id:0,label:vertex],weight:0.5] +gremlin> g.E().property('weight',null) +==>e[3][0-knows->0] +gremlin> g.E().elementMap() +==>[id:3,label:knows,IN:[id:0,label:vertex],OUT:[id:0,label:vertex]] +---- + + See: link:https://issues.apache.org/jira/browse/TINKERPOP-2235[TINKERPOP-2235], link:https://issues.apache.org/jira/browse/TINKERPOP-2099[TINKERPOP-2099] diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java index defb68c..a8f352a 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/process/traversal/dsl/graph/GraphTraversal.java @@ -1046,7 +1046,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> { */ public default GraphTraversal<S, Vertex> addV(final Traversal<?, String> vertexLabelTraversal) { this.asAdmin().getBytecode().addStep(Symbols.addV, vertexLabelTraversal); - return this.asAdmin().addStep(new AddVertexStep<>(this.asAdmin(), vertexLabelTraversal.asAdmin())); + return this.asAdmin().addStep(new AddVertexStep<>(this.asAdmin(), null == vertexLabelTraversal ? null : vertexLabelTraversal.asAdmin())); } /** @@ -1083,7 +1083,7 @@ public interface GraphTraversal<S, E> extends Traversal<S, E> { */ public default GraphTraversal<S, Edge> addE(final Traversal<?, String> edgeLabelTraversal) { this.asAdmin().getBytecode().addStep(Symbols.addE, edgeLabelTraversal); - return this.asAdmin().addStep(new AddEdgeStep<>(this.asAdmin(), edgeLabelTraversal.asAdmin())); + return this.asAdmin().addStep(new AddEdgeStep<>(this.asAdmin(), null == edgeLabelTraversal ? null : edgeLabelTraversal.asAdmin())); } /**
