When the FSTObjectInput.readObject fails, any chance of more info?
[transferred from kontraktor #58] I think this is the culprit, names have been changed to protect the innocent.
{
"styp":"array",
"seq":[
2,
{
"typ":"call",
"obj":{
"isContinue":0,
"queue":0,
"futureKey":1,
"receiverKey":1,
"cb":null,
"args":null,
"method":"getProducts",
"serializedArgs":"{\"styp\":\"array\",\"seq\":[1,{\"typ\":\"uk.co.example.Application\",\"obj\":{\"numberOfDogs\":12,\"extraInformation\":{\"typ\":\"list\",\"obj\":[0]},\"advance\":{\"typ\":\"java.math.BigDecimal\",\"obj\":[\"1000\"]},\"grossHousehold\":null,\"startDate\":null,\"questions\":{\"typ\":\"uk.co.example.Questions\",\"obj\":{\"numberOfThings\":null,\"numberOfMissed\":null,\"numberOfMissedOther\":null,\"everHadBeef\":null,\"everMadeHouse\":null,\"missedPaymentsOnThingy\":null}},\"applicants\":{\"typ\":\"list\",\"obj\":[0]},\"propertyDetails\":null,\"authorises\":\"Y\",\"applicationName\":null,\"reference\":null,\"campaign\":null,\"ddBankAccount\":null,\"employmentStatus\":null,\"filterResults\":\"N\",\"homeOwner\":null,\"purpose\":null,\"sourcing\":null,\"stage\":null,\"userId\":\"stdclient\"}}]}"
}
},
2
]
}
The original question went missing in the transfer to this repo. Here it is
Version 4.18 of Kontraktor. When I get a failure with the de/serialization, probably due to my code, it is very hard to find the cause. E.g. here is a typical trace:
EXC:
java.lang.RuntimeException: Class org.nustaq.kontraktor.Actor$$Lambda$26/1188770185 does not implement Serializable or externalizable
at org.nustaq.serialization.FSTClazzInfo.<init>(FSTClazzInfo.java:142)
at org.nustaq.serialization.FSTClazzInfoRegistry.getCLInfo(FSTClazzInfoRegistry.java:129)
at org.nustaq.serialization.FSTObjectOutput.getFstClazzInfo(FSTObjectOutput.java:534)
at org.nustaq.serialization.FSTObjectOutput.writeObjectWithContext(FSTObjectOutput.java:416)
at org.nustaq.serialization.FSTObjectOutput.writeArray(FSTObjectOutput.java:800)
at org.nustaq.serialization.FSTObjectOutput.writeObjectWithContext(FSTObjectOutput.java:427)
at org.nustaq.serialization.FSTObjectOutput.writeObjectInternal(FSTObjectOutput.java:327)
at org.nustaq.serialization.FSTObjectOutput.writeObject(FSTObjectOutput.java:285)
at org.nustaq.serialization.FSTObjectOutput.writeObject(FSTObjectOutput.java:204)
at org.nustaq.serialization.FSTConfiguration.asByteArray(FSTConfiguration.java:1174)
at org.nustaq.kontraktor.remoting.encoding.RemoteCallEntry.pack(RemoteCallEntry.java:133)
at org.nustaq.kontraktor.remoting.base.ConnectionRegistry.pollAndSend2Remote(ConnectionRegistry.java:581)
at org.nustaq.kontraktor.remoting.base.RemoteRefPolling.onePoll(RemoteRefPolling.java:132)
at org.nustaq.kontraktor.remoting.base.RemoteRefPolling.run(RemoteRefPolling.java:91)
at sun.reflect.GeneratedMethodAccessor3.invoke(Unknown Source)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.nustaq.kontraktor.impl.DispatcherThread.invoke(DispatcherThread.java:363)
at org.nustaq.kontraktor.impl.DispatcherThread.pollQs(DispatcherThread.java:291)
at org.nustaq.kontraktor.impl.DispatcherThread.pollQs(DispatcherThread.java:264)
at org.nustaq.kontraktor.impl.DispatcherThread.run(DispatcherThread.java:164)
I assume you have the name of the field and the outer JSON element and everything in between. Any chance of dumping those in the trace output?
should be possible :)
A bit more info on this issue. I am now using Kontraktor 4.22. I looked thru all the classes that make up a fairly complex payload for the remote actor call and all implement Serializable, so am at a loss as to which class it is complaining about. I also note that it is saying the Actor$$Lambda$26/1188770185 is not Serializable? Is this really a fst problem, or is it a Kontraktor issue?