You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tinkerpop.apache.org by "Yang Xia (Jira)" <ji...@apache.org> on 2023/09/27 19:33:00 UTC

[jira] [Commented] (TINKERPOP-2988) Serialization error throws an Invalid OpProcessor exception when using stream() API

    [ https://issues.apache.org/jira/browse/TINKERPOP-2988?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17769756#comment-17769756 ] 

Yang Xia commented on TINKERPOP-2988:
-------------------------------------

Potentially add a client-side check for proper request ID to avoid the error. 

> Serialization error throws an Invalid OpProcessor exception when using stream() API
> -----------------------------------------------------------------------------------
>
>                 Key: TINKERPOP-2988
>                 URL: https://issues.apache.org/jira/browse/TINKERPOP-2988
>             Project: TinkerPop
>          Issue Type: Improvement
>          Components: server
>    Affects Versions: 3.7.0
>            Reporter: Taylor Riggan
>            Priority: Minor
>
> The following throws an 
> {code:java}
> Invalid OpProcessor requested [null] (499){code}
>  exception.  The cause is due to an invalid RequestId (an non-conformant UUID is being used):
> {code:java}
> resp = client.stream ("g.V()", {}, { batchSize: 1, requestId: 'foo', userAgent: 'bar', evaluationTimeout: 5000 });{code}
>  
> The error was diagnosed using Gremlin Server 3.7.0 and seeing the following in the server logs:
>  
> {code:java}
> [WARN] o.a.t.g.s.h.WsGremlinBinaryRequestDecoder - Serialization error while decoding request
> org.apache.tinkerpop.gremlin.driver.ser.SerializationException: org.apache.tinkerpop.shaded.jackson.databind.JsonMappingException: Could not deserialize the JSON value as required. Nested exception: org.apache.tinkerpop.shaded.jackson.databind.exc.InvalidFormatException: Cannot deserialize value of type `java.util.UUID` from String "foo": UUID has to be represented by standard 36-char representation
>  at [Source: (byte[])"{"requestId":{{{}
> {"@type":"g:UUID","@value":"foo"}
> {}}},"op":"eval","processor":"","args":{"gremlin":"g.V()","aliases":{{{}
> {"g":"g"}
> {}}},"batchSize":1,"userAgent":"bar","evaluationTimeout":5000,"bindings":{},"language":"gremlin-groovy","accept":"application/vnd.gremlin-v3.0+json""; line: 1, column: 41]{}}}
>  at [Source: (byte[])"{"requestId":{{{}
> {"@type":"g:UUID","@value":"foo"}
> {}}},"op":"eval","processor":"","args":{"gremlin":"g.V()","aliases":{{{}
> {"g":"g"}
> {}}},"batchSize":1,"userAgent":"bar","evaluationTimeout":5000,"bindings":{},"language":"gremlin-groovy","accept":"application/vnd.gremlin-v3.0+json""; line: 1, column: 41] (through reference chain: java.util.LinkedHashMap["requestId"]){}}}
>     at org.apache.tinkerpop.gremlin.driver.ser.AbstractGraphSONMessageSerializerV2d0.deserializeRequest(AbstractGraphSONMessageSerializerV2d0.java:124)
>     at org.apache.tinkerpop.gremlin.server.handler.WsGremlinBinaryRequestDecoder.decode(WsGremlinBinaryRequestDecoder.java:77)
> ....
> {code}
>  
> A better client side error message is needed in order to provide the user with guidance on how to fix the issue.  `Invalid OpProcessor` is too ambiguous.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)