[ 
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)

Reply via email to