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()));
     }
 
     /**

Reply via email to