advantageous / qbit

The Java microservice lib. QBit is a reactive programming lib for building microservices - JSON, HTTP, WebSocket, and REST. QBit uses reactive programming to build elastic REST, and WebSockets based cloud friendly, web services. SOA evolved for mobile and cloud. ServiceDiscovery, Health, reactive StatService, events, Java idiomatic reactive programming for Microservices.
http://advantageous.github.io/qbit/
Apache License 2.0
708 stars 140 forks source link

ClassCastException (not always) for KeyValue async lookup #621

Open RichardHightower opened 8 years ago

RichardHightower commented 8 years ago

We are seeing random classcastexception, from the looks of it the reactor callback is return invalid tool. Its not only invalid (or null) but a complete different type of object (here, Integer)

This is a possible issue with Boon or QBit. We will try to reproduce and at a minimum come up with better error reporting.

Exception:
io.advantageous.boon.core.Exceptions$SoftenedException: unable to invoke method public void com.mycompany.push.PushService.process()  on object  com.mycompay.calypso.push.PushService@5b444398 with arguments [] 
parameter types [] 
argument types are []

CAUSE java.lang.ClassCastException :: java.lang.Integer cannot be cast to com.mycompany.dashboard.storage.Tool
    at com.mycompany.calypso.push.PushService.lambda$loadToolThenDoOperation$15(PushService.java:859) ~[push-service-1.1-SNAPSHOT.jar:na]
    at io.advantageous.qbit.reactive.async.AsyncFutureCallbackImpl.run(AsyncFutureCallbackImpl.java:121) ~[qbit-core-0.9.2-RC6.jar:na]
    at io.advantageous.qbit.reactive.Reactor.monitorCallBacks(Reactor.java:509) ~[qbit-core-0.9.2-RC6.jar:na]
    at io.advantageous.qbit.reactive.Reactor.process(Reactor.java:137) ~[qbit-core-0.9.2-RC6.jar:na]
    at com.mycompany.calypso.push.PushService.process(PushService.java:580) ~[push-service-1.1-SNAPSHOT.jar:na]
    at sun.reflect.GeneratedMethodAccessor32.invoke(Unknown Source) ~[na:na]
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_72-cedar14]
    at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_72-cedar14]
    at io.advantageous.boon.core.reflection.impl.MethodAccessImpl.invoke(MethodAccessImpl.java:268) ~[boon-reflekt-0.5.6-RC2.jar:na]
    at 
RichardHightower commented 8 years ago

I have not been able to reproduce this yet.