[rules-users] AfterEvaluatorDefinition NullPointer Exception in deserialized ksession

Alexander Wolf mail at alexander-wolf.net
Fri Oct 11 08:21:12 EDT 2013


[Drools 5.5.0 Final]

I wrote a webserver that keeps StatefulKnowledgeSessions running in Stream mode. When the server is stopped, the sessions are serialized and stored in a database. When the server is restarted, the existing sessions are restored / deserialized.

Some time after recreating the session and inserting some events I get the following exception:

java.lang.NullPointerException: null
at org.drools.base.evaluators.AfterEvaluatorDefinition$AfterEvaluator.evaluateCachedLeft(AfterEvaluatorDefinition.java:351)
...

Apparently the exception seems to be related to a rule that uses temporal reasoning.
After getting it once, the session seems to be corrupt -> from now on every time I call ksession.insert(event) the same exception occurs.
When I serialize the session and attempt to deserialize it, I get a long stack trace --> I can not deserialize it anymore. (as apparently it is corrupted).
When I run the server with the same events/sessions without stopping (serialization/deserialization) the exception does not occur)

Can I do anything to prevent this behaviour? I thought maybe the "after" timer/trigger is somehow still active when I serialize the ksession.
I tried ksession.halt() before serialization, but with no effect. 

Any ideas?
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 841 bytes
Desc: Message signed with OpenPGP using GPGMail
Url : http://lists.jboss.org/pipermail/rules-users/attachments/20131011/269418fc/attachment.bin 


More information about the rules-users mailing list