Github user newkek commented on a diff in the pull request: https://github.com/apache/tinkerpop/pull/499#discussion_r88770063 --- Diff: gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONSerializersV2d0.java --- @@ -459,9 +486,33 @@ public PropertyJacksonDeserializer() { @Override public Property createObject(final Map<String, Object> propData) { - return new DetachedProperty( - (String) propData.get(GraphSONTokens.KEY), - propData.get(GraphSONTokens.VALUE)); + final Object element = propData.get(GraphSONTokens.ELEMENT); + return element instanceof Element ? // graphson-non-embedded is treated differently, but since this is a hard coded embedding... + new DetachedProperty<>((String) propData.get(GraphSONTokens.KEY), propData.get(GraphSONTokens.VALUE), (Element) element) : + new DetachedProperty<>((String) propData.get(GraphSONTokens.KEY), propData.get(GraphSONTokens.VALUE)); + } + } + + static class VertexPropertyJacksonDeserializer extends AbstractObjectDeserializer<VertexProperty> { + + protected VertexPropertyJacksonDeserializer() { + super(VertexProperty.class); + } + + @Override + public VertexProperty createObject(final Map<String, Object> propData) { + return propData.containsKey(GraphSONTokens.VERTEX) ? + new DetachedVertexProperty<>( + propData.get(GraphSONTokens.ID), + (String) propData.get(GraphSONTokens.LABEL), + propData.get(GraphSONTokens.VALUE), (Map<String, Object>) propData.get(GraphSONTokens.PROPERTIES), + new DetachedVertex(propData.get(GraphSONTokens.VERTEX), Vertex.DEFAULT_LABEL, null)) : --- End diff -- Supposing it's a Vertex with VertexProperties that is deserialized (and not only a VertexProperty on its own), will this really make the VertexProperty link to the right parent Vertex? It looks like this will create another one. However, I've recently found a nice way to make a deserializer sort of "context aware" in order to, when a Vertex deserializer deserializes its own VertexProperties, it can give to the VertexProperty deserializers the Vertex object that's "above" them - the VertexProperty's parent. I haven't had time to propose a fix here in TP but I intended to do so soon if you guys are interested
--- 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 infrastruct...@apache.org or file a JIRA ticket with INFRA. ---