I would think that you could write your own custom deserializer if you needed to. That error doesn't give me any hints as to what might be wrong exactly. I can't think of why that wouldn't work, but even with a little refresh by looking at the code just now, my memory on GraphSON 1.0 is fuzzy.
Maybe you could try to modify the working test in TinkerPop to include a deserializer and see if you get a similar error for your efforts? Perhaps that would help yield a clue? On Mon, Jun 25, 2018 at 2:58 AM pieter gmail <[email protected]> wrote: > Hi, > > I am trying to upgrade Sqlg to 3.3.3 from 3.3.1. > > The only tests that are failing are the io tests for graphson V1. > > I see CustomId has a CustomIdJacksonSerializerV1d0 but not a > deserializer. Looks like Jackson is using reflection to instantiate the > CustomId and set its cluster and elementId. > Is this how it must be or can it work with a deserializer? Sqlg's > RecordId does not have default constructors. > > For Sqlg I added the standard deserializer but it fails with. > > org.apache.tinkerpop.shaded.jackson.databind.exc.InvalidTypeIdException: > Could not resolve type id 'org.umlg.sqlg.structure.SchemaTable' as a > subtype of [map type; class java.util.LinkedHashMap, [simple type, class > java.lang.Object] -> [simple type, class java.lang.Object]]: Not a subtype > at [Source: (ByteArrayInputStream); line: 1, column: 105] (through > reference chain: java.util.HashMap["id"]) > > at > > org.apache.tinkerpop.shaded.jackson.databind.exc.InvalidTypeIdException.from(InvalidTypeIdException.java:43) > at > > org.apache.tinkerpop.shaded.jackson.databind.DeserializationContext.invalidTypeIdException(DeserializationContext.java:1628) > at > > org.apache.tinkerpop.shaded.jackson.databind.DatabindContext.resolveSubType(DatabindContext.java:200) > at > > org.apache.tinkerpop.shaded.jackson.databind.jsontype.impl.ClassNameIdResolver._typeFromId(ClassNameIdResolver.java:49) > at > > org.apache.tinkerpop.shaded.jackson.databind.jsontype.impl.ClassNameIdResolver.typeFromId(ClassNameIdResolver.java:44) > at > > org.apache.tinkerpop.shaded.jackson.databind.jsontype.impl.TypeDeserializerBase._findDeserializer(TypeDeserializerBase.java:156) > at > > org.apache.tinkerpop.shaded.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer._deserializeTypedForId(AsPropertyTypeDeserializer.java:113) > at > > org.apache.tinkerpop.shaded.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer.deserializeTypedFromObject(AsPropertyTypeDeserializer.java:97) > at > > org.apache.tinkerpop.shaded.jackson.databind.deser.std.MapDeserializer.deserializeWithType(MapDeserializer.java:400) > at > > org.apache.tinkerpop.shaded.jackson.databind.deser.impl.TypeWrappedDeserializer.deserialize(TypeWrappedDeserializer.java:68) > at > > org.apache.tinkerpop.shaded.jackson.databind.DeserializationContext.readValue(DeserializationContext.java:759) > at > > org.apache.tinkerpop.shaded.jackson.databind.DeserializationContext.readValue(DeserializationContext.java:746) > at > > org.umlg.sqlg.structure.RecordId$RecordIdJacksonDeserializerV1d0.deserialize(RecordId.java:205) > > Any ideas as to how I should implement this? > > Thanks > Pieter > > > >
