TINKERPOP-1509 Fixed bug in Tree serialization for GraphSON Needed to ensure that Tree didn't serialize as Map now that Map has special formatting in GraphSON 3.0 CTR
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/27cc5746 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/27cc5746 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/27cc5746 Branch: refs/heads/TINKERPOP-1522 Commit: 27cc57469492e9ea6bca8b7db3962fa8e8a9ad4c Parents: 31762f7 Author: Stephen Mallette <sp...@genoprime.com> Authored: Fri Mar 2 15:47:41 2018 -0500 Committer: Stephen Mallette <sp...@genoprime.com> Committed: Fri Mar 2 15:47:41 2018 -0500 ---------------------------------------------------------------------- CHANGELOG.asciidoc | 1 + .../structure/io/graphson/GraphSONTypeSerializerV3d0.java | 10 +++++++--- .../driver/ser/GraphSONMessageSerializerV3d0Test.java | 3 +-- 3 files changed, 9 insertions(+), 5 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/27cc5746/CHANGELOG.asciidoc ---------------------------------------------------------------------- diff --git a/CHANGELOG.asciidoc b/CHANGELOG.asciidoc index dcbf547..e6074e9 100644 --- a/CHANGELOG.asciidoc +++ b/CHANGELOG.asciidoc @@ -27,6 +27,7 @@ This release also includes changes from <<release-3-2-8, 3.2.8>>. * Fixed regression issue where the HTTPChannelizer doesn't instantiate the specified AuthenticationHandler * Defaulted GLV tests for gremlin-python to run for GraphSON 3.0. +* Fixed a bug with `Tree` serialization in GraphSON 3.0. * In gremlin-python, the GraphSON 3.0 `g:Set` type is now deserialized to `List`. [[release-3-3-1]] http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/27cc5746/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeSerializerV3d0.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeSerializerV3d0.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeSerializerV3d0.java index 6d47ad9..0724e25 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeSerializerV3d0.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeSerializerV3d0.java @@ -26,6 +26,7 @@ import org.apache.tinkerpop.gremlin.process.traversal.SackFunctions; import org.apache.tinkerpop.gremlin.process.traversal.Scope; import org.apache.tinkerpop.gremlin.process.traversal.Traverser; import org.apache.tinkerpop.gremlin.process.traversal.step.TraversalOptionParent; +import org.apache.tinkerpop.gremlin.process.traversal.step.util.Tree; import org.apache.tinkerpop.gremlin.process.traversal.util.Metrics; import org.apache.tinkerpop.gremlin.process.traversal.util.TraversalMetrics; import org.apache.tinkerpop.gremlin.structure.Column; @@ -106,9 +107,12 @@ public class GraphSONTypeSerializerV3d0 extends AbstractGraphSONTypeSerializer { return classMap.get(c); final Class mapped; - if (Map.class.isAssignableFrom(c)) - mapped = Map.class; - else if (List.class.isAssignableFrom(c)) + if (Map.class.isAssignableFrom(c)) { + if (Tree.class.isAssignableFrom(c)) + mapped = Tree.class; + else + mapped = Map.class; + } else if (List.class.isAssignableFrom(c)) mapped = List.class; else if (Set.class.isAssignableFrom(c)) mapped = Set.class; http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/27cc5746/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV3d0Test.java ---------------------------------------------------------------------- diff --git a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV3d0Test.java b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV3d0Test.java index b6398f5..88dfcf0 100644 --- a/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV3d0Test.java +++ b/gremlin-driver/src/test/java/org/apache/tinkerpop/gremlin/driver/ser/GraphSONMessageSerializerV3d0Test.java @@ -259,11 +259,10 @@ public class GraphSONMessageSerializerV3d0Test { } @Test - @org.junit.Ignore public void shouldSerializeToTreeJson() throws Exception { final TinkerGraph graph = TinkerFactory.createClassic(); final GraphTraversalSource g = graph.traversal(); - final Map t = g.V(1).out().properties("name").tree().next(); + final Tree t = g.V(1).out().properties("name").tree().next(); final ResponseMessage response = convert(t); assertCommon(response);