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

ASF GitHub Bot commented on TINKERPOP-2988:
-------------------------------------------

kenhuuu opened a new pull request, #2329:
URL: https://github.com/apache/tinkerpop/pull/2329

   Added client side checking instead of server side checking due to the 
difference in how graphson/graphbinary deserialization works. Also, this mostly 
affects websockets and not HTTP, so it is likely only drivers that are 
affected. The other GLVs already check that requestIds are valid UUIDs, so this 
PR just brings the Javascript/Python drivers to parity with the others.
   
   https://issues.apache.org/jira/browse/TINKERPOP-2988
   
   VOTE +1




> 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: Critical
>
> 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)

Reply via email to