Minor bug fix to the graphson type serializer There was no need to test for string JsonTokens - just needed to pass all other "shapes" through to check for type info. Credit to kevin gallardo for the fix. CTR
Project: http://git-wip-us.apache.org/repos/asf/tinkerpop/repo Commit: http://git-wip-us.apache.org/repos/asf/tinkerpop/commit/2a9e7e24 Tree: http://git-wip-us.apache.org/repos/asf/tinkerpop/tree/2a9e7e24 Diff: http://git-wip-us.apache.org/repos/asf/tinkerpop/diff/2a9e7e24 Branch: refs/heads/TINKERPOP-1656 Commit: 2a9e7e24f4e255cad3eb300423634cbac110d74d Parents: fdac653 Author: Stephen Mallette <sp...@genoprime.com> Authored: Tue Mar 27 13:31:16 2018 -0400 Committer: Stephen Mallette <sp...@genoprime.com> Committed: Tue Mar 27 13:31:16 2018 -0400 ---------------------------------------------------------------------- .../io/graphson/GraphSONTypeSerializer.java | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tinkerpop/blob/2a9e7e24/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeSerializer.java ---------------------------------------------------------------------- diff --git a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeSerializer.java b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeSerializer.java index 53ccc0b..765331a 100644 --- a/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeSerializer.java +++ b/gremlin-core/src/main/java/org/apache/tinkerpop/gremlin/structure/io/graphson/GraphSONTypeSerializer.java @@ -96,14 +96,12 @@ public class GraphSONTypeSerializer extends TypeSerializer { @Override public WritableTypeId writeTypePrefix(final JsonGenerator jsonGenerator, final WritableTypeId writableTypeId) throws IOException { - if (writableTypeId.valueShape == JsonToken.VALUE_STRING) { - if (canWriteTypeId()) { - writeTypePrefix(jsonGenerator, getTypeIdResolver().idFromValueAndType(writableTypeId.forValue, getClassFromObject(writableTypeId.forValue))); - } - } else if (writableTypeId.valueShape == JsonToken.START_OBJECT) { + if (writableTypeId.valueShape == JsonToken.START_OBJECT) { jsonGenerator.writeStartObject(); } else if (writableTypeId.valueShape == JsonToken.START_ARRAY) { jsonGenerator.writeStartArray(); + } else if (canWriteTypeId()) { + writeTypePrefix(jsonGenerator, getTypeIdResolver().idFromValueAndType(writableTypeId.forValue, getClassFromObject(writableTypeId.forValue))); } else { throw new IllegalStateException("Could not write prefix: shape[" + writableTypeId.valueShape + "] value[" + writableTypeId.forValue + "]"); } @@ -113,14 +111,12 @@ public class GraphSONTypeSerializer extends TypeSerializer { @Override public WritableTypeId writeTypeSuffix(final JsonGenerator jsonGenerator, final WritableTypeId writableTypeId) throws IOException { - if (writableTypeId.valueShape == JsonToken.VALUE_STRING) { - if (canWriteTypeId()) { - writeTypeSuffix(jsonGenerator); - } - } else if (writableTypeId.valueShape == JsonToken.START_OBJECT) { + if (writableTypeId.valueShape == JsonToken.START_OBJECT) { jsonGenerator.writeEndObject(); } else if (writableTypeId.valueShape == JsonToken.START_ARRAY) { jsonGenerator.writeEndArray(); + } else if (canWriteTypeId()) { + writeTypeSuffix(jsonGenerator); } else { throw new IllegalStateException("Could not write suffix: shape[" + writableTypeId.valueShape + "] value[" + writableTypeId.forValue + "]"); }