Taylor Riggan created TINKERPOP-2988:
----------------------------------------

             Summary: 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
    Affects Versions: 3.7.0
            Reporter: Taylor Riggan


The following throws an `Invalid OpProcessor requested [null] (499)` exception. 
 The cause is due to an invalid `RequestId` (an non-conformant UUID is being 
used):

```
resp = client.stream ("g.V()", {}, \{ batchSize: 1, requestId: 'foo', 
userAgent: 'bar', evaluationTimeout: 5000 });

```

The error was diagnosed using Gremlin Server 3.7.0 and seeing the following in 
the server logs:
```

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

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