[ https://issues.apache.org/jira/browse/TINKERPOP-3154?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Stephen Mallette updated TINKERPOP-3154: ---------------------------------------- Component/s: io > Subgraph with graphson v3 causes serialization error > ---------------------------------------------------- > > Key: TINKERPOP-3154 > URL: https://issues.apache.org/jira/browse/TINKERPOP-3154 > Project: TinkerPop > Issue Type: Bug > Components: io > Affects Versions: 3.7.3 > Reporter: Andrea C > Priority: Major > > Usage of subgraph step with graphson v3 results in serialization error. > Can be reproduced by adding this unit test to the > `HttpDriverIntegrateTest.java`: > {code:java} > @Test > public void shouldSubmitScriptWithGraphSONWithSubgraph() throws Exception { > final Cluster cluster = TestClientFactory.build() > .channelizer(Channelizer.HttpChannelizer.class) > .serializer(Serializers.GRAPHSON_V3) > .create(); > try { > final Client client = cluster.connect(); > > client.submit("g.E().hasLabel('knows').subgraph('sg').cap('sg')").all().get(); > } catch (Exception ex) { > throw ex; > } finally { > cluster.close(); > } > }{code} > {code:java} > [WARN] > org.apache.tinkerpop.gremlin.util.ser.AbstractGraphSONMessageSerializerV2 - > Response [CompositeByteBuf(ridx: 276, widx: 276, cap: 276, components=1)] > could not be deserialized by > org.apache.tinkerpop.gremlin.util.ser.AbstractGraphSONMessageSerializerV2. > org.apache.tinkerpop.shaded.jackson.databind.JsonMappingException: Could not > deserialize the JSON value as required. Nested exception: > org.apache.tinkerpop.shaded.jackson.databind.JsonMappingException: Could not > deserialize the JSON value as required. Nested exception: > org.apache.tinkerpop.shaded.jackson.databind.exc.MismatchedInputException: > Cannot deserialize value of type `java.lang.String` from Object value (token > `JsonToken.START_OBJECT`) > at [Source: > (byte[])"{"requestId":"1687e3df-0c9d-46a8-9226-c84badd5d848","status":{"message":"","code":200,"attributes":{"@type":"g:Map","@value":[]}},"result":{"data":{"@type":"g:List","@value":[{"@type":"tinker:graph","@value":{"vertices":[],"edges":[]}}]},"meta":{"@type":"g:Map","@value":[]}}}"; > line: 1, column: 209] > at [Source: > (byte[])"{"requestId":"1687e3df-0c9d-46a8-9226-c84badd5d848","status":{"message":"","code":200,"attributes":{"@type":"g:Map","@value":[]}},"result":{"data":{"@type":"g:List","@value":[{"@type":"tinker:graph","@value":{"vertices":[],"edges":[]}}]},"meta":{"@type":"g:Map","@value":[]}}}"; > line: 1, column: 209] > at [Source: > (byte[])"{"requestId":"1687e3df-0c9d-46a8-9226-c84badd5d848","status":{"message":"","code":200,"attributes":{"@type":"g:Map","@value":[]}},"result":{"data":{"@type":"g:List","@value":[{"@type":"tinker:graph","@value":{"vertices":[],"edges":[]}}]},"meta":{"@type":"g:Map","@value":[]}}}"; > line: 1, column: 209] (through reference chain: > java.util.LinkedHashMap["result"]->java.util.LinkedHashMap["data"]) > at > org.apache.tinkerpop.shaded.jackson.databind.JsonMappingException.from(JsonMappingException.java:269) > at > org.apache.tinkerpop.shaded.jackson.databind.DeserializationContext.mappingException(DeserializationContext.java:2167) > at > org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONTypeDeserializer.deserialize(GraphSONTypeDeserializer.java:194) > at > org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONTypeDeserializer.deserializeTypedFromAny(GraphSONTypeDeserializer.java:101) > at > org.apache.tinkerpop.shaded.jackson.databind.deser.std.UntypedObjectDeserializer.deserializeWithType(UntypedObjectDeserializer.java:313) > at > org.apache.tinkerpop.shaded.jackson.databind.deser.std.MapDeserializer._readAndBindStringKeyMap(MapDeserializer.java:625) > at > org.apache.tinkerpop.shaded.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:449) > at > org.apache.tinkerpop.shaded.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32) > at > org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONTypeDeserializer.deserialize(GraphSONTypeDeserializer.java:219) > at > org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONTypeDeserializer.deserializeTypedFromAny(GraphSONTypeDeserializer.java:101) > at > org.apache.tinkerpop.shaded.jackson.databind.deser.std.UntypedObjectDeserializer.deserializeWithType(UntypedObjectDeserializer.java:313) > at > org.apache.tinkerpop.shaded.jackson.databind.deser.std.MapDeserializer._readAndBindStringKeyMap(MapDeserializer.java:625) > at > org.apache.tinkerpop.shaded.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:449) > at > org.apache.tinkerpop.shaded.jackson.databind.deser.std.MapDeserializer.deserialize(MapDeserializer.java:32) > at > org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONTypeDeserializer.deserialize(GraphSONTypeDeserializer.java:212) > at > org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONTypeDeserializer.deserializeTypedFromObject(GraphSONTypeDeserializer.java:86) > at > org.apache.tinkerpop.shaded.jackson.databind.deser.std.MapDeserializer.deserializeWithType(MapDeserializer.java:492) > at > org.apache.tinkerpop.shaded.jackson.databind.deser.impl.TypeWrappedDeserializer.deserialize(TypeWrappedDeserializer.java:74) > at > org.apache.tinkerpop.shaded.jackson.databind.DeserializationContext.readValue(DeserializationContext.java:977) > at > org.apache.tinkerpop.shaded.jackson.databind.DeserializationContext.readValue(DeserializationContext.java:964) > at > org.apache.tinkerpop.gremlin.structure.io.graphson.AbstractObjectDeserializer.deserialize(AbstractObjectDeserializer.java:48) > at > org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONTypeDeserializer.deserialize(GraphSONTypeDeserializer.java:212) > at > org.apache.tinkerpop.gremlin.structure.io.graphson.GraphSONTypeDeserializer.deserializeTypedFromAny(GraphSONTypeDeserializer.java:101) > at > org.apache.tinkerpop.shaded.jackson.databind.deser.std.StdDeserializer.deserializeWithType(StdDeserializer.java:172) > at > org.apache.tinkerpop.shaded.jackson.databind.deser.impl.TypeWrappedDeserializer.deserialize(TypeWrappedDeserializer.java:74) > at > org.apache.tinkerpop.shaded.jackson.databind.deser.DefaultDeserializationContext.readRootValue(DefaultDeserializationContext.java:323) > at > org.apache.tinkerpop.shaded.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:4825) > at > org.apache.tinkerpop.shaded.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:3833) > at > org.apache.tinkerpop.gremlin.util.ser.AbstractGraphSONMessageSerializerV2.deserializeResponse(AbstractGraphSONMessageSerializerV2.java:134) > at > org.apache.tinkerpop.gremlin.driver.handler.HttpGremlinResponseDecoder.decode(HttpGremlinResponseDecoder.java:53) > at > org.apache.tinkerpop.gremlin.driver.handler.HttpGremlinResponseDecoder.decode(HttpGremlinResponseDecoder.java:41) > at > io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:88) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) > at > io.netty.handler.codec.MessageToMessageDecoder.channelRead(MessageToMessageDecoder.java:103) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:444) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) > at > io.netty.channel.CombinedChannelDuplexHandler$DelegatingChannelHandlerContext.fireChannelRead(CombinedChannelDuplexHandler.java:436) > at > io.netty.handler.codec.ByteToMessageDecoder.fireChannelRead(ByteToMessageDecoder.java:346) > at > io.netty.handler.codec.ByteToMessageDecoder.channelRead(ByteToMessageDecoder.java:318) > at > io.netty.channel.CombinedChannelDuplexHandler.channelRead(CombinedChannelDuplexHandler.java:251) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:442) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) > at > io.netty.channel.AbstractChannelHandlerContext.fireChannelRead(AbstractChannelHandlerContext.java:412) > at > io.netty.channel.DefaultChannelPipeline$HeadContext.channelRead(DefaultChannelPipeline.java:1410) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:440) > at > io.netty.channel.AbstractChannelHandlerContext.invokeChannelRead(AbstractChannelHandlerContext.java:420) > at > io.netty.channel.DefaultChannelPipeline.fireChannelRead(DefaultChannelPipeline.java:919) > at > io.netty.channel.nio.AbstractNioByteChannel$NioByteUnsafe.read(AbstractNioByteChannel.java:166) > at > io.netty.channel.nio.NioEventLoop.processSelectedKey(NioEventLoop.java:788) > at > io.netty.channel.nio.NioEventLoop.processSelectedKeysOptimized(NioEventLoop.java:724) > at > io.netty.channel.nio.NioEventLoop.processSelectedKeys(NioEventLoop.java:650) > at io.netty.channel.nio.NioEventLoop.run(NioEventLoop.java:562) > at > io.netty.util.concurrent.SingleThreadEventExecutor$4.run(SingleThreadEventExecutor.java:997) > at > io.netty.util.internal.ThreadExecutorMap$2.run(ThreadExecutorMap.java:74) > at java.base/java.lang.Thread.run(Thread.java:829) > [INFO] > org.apache.tinkerpop.gremlin.server.AbstractGremlinServerIntegrationTest - > Ending: shouldSubmitScriptWithGraphSONWithSubgraph {code} -- This message was sent by Atlassian Jira (v8.20.10#820010)