Hi All,
So as you all know I've been developing Client drivers for JanusGraph. I was able to test my initial version of library against JanusGraph 0.3.0 which uses TP 3.3.3. I now want to test the same set of driver for JanusGraph 0.2.1 which used TP 3.2.9 but I feel I've hit a bump with respect to Serialization for Predicate class.
So, my existent features like Adding of GeoShapes, Querying GeoShape and RelationIdentifier serialization/deserialization works. But any of my features leveraging TinkerPop's Predicate (PSerializer) doesn't work. I feel like this is some sort of serialization issue.
So, when I've implemented TextContainsFuzzy, which was working against JG 0.3.0/TP 3.3.3 (Using GraphSON 3.0) but the same doesn't work on GraphSON 2.0.
The following is my serialized object being sent to Gremlin-Server (Gremlin-server logs specify this)
Using TextFuzzy:
Error message:
org.apache.tinkerpop.gremlin.driver.ser.AbstractGraphSONMessageSerializerV2d0 - Request [PooledUnsafeDirectByteBuf(ridx: 303, widx: 303, cap: 337)] could not be deserialized by org.apache.tinkerpop.gremlin.driver.ser.AbstractGraphSONMessageSerializerV2d0.
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: java.lang.IllegalStateException: org.apache.tinkerpop.gremlin.process.traversal.P.textContainsFuzzy([Ljava.lang.Object;)
And the serialized object being sent:
{
"requestId": {
"@type": "g:UUID",
"@value": "7328b342-2ed3-43a5-b589-f6688b264ee7"
},
"processor": "traversal",
"op": "bytecode",
"args": {
"gremlin": {
"@type": "g:Bytecode",
"@value": {
"step": [
[
"V"
],
[
"has",
"name",
{
"@type": "g:P",
"@value": {
"predicate": "textContainsFuzzy",
"value": "herculeas"
}
}
]
]
}
},
"aliases": {
"g": "gg"
}
}
}
The serialized object really looks good, like the way it is expected. Doesn't it? Or else I cant seem to dechiper what's wrong.
I'm also facing similar errors which using the same PSerializer class for extending Geo Predicates like geoWithin, but I guess both are tied to same problem, and if one gets solved, other will also :-)
If needed, I can attach the serialized object for geoWithin too. But any help in debugging this will be really helpful, as this is last piece of development I'm expecting before releasing version 1 of drivers with support for both GraphSON 2.0 and GraphSON 3.0
Thanks.