Details
-
Bug
-
Resolution: Won't Do
-
Major
-
None
-
5.4.0.CR1, 5.4.0.Final, 5.5.0.Beta1
-
None
Description
Currently, Scheduled Activations are not fired after they got unmarshalled from a binary. Although they reside on the agenda after unmarshalling, they have somehow an "orphan" status that leads to inconsistent state of the rule engine in general. As subsequent problem, deleting the rule that caused these "orphan" scheduled activations leads to a NPE when removing the timer job.
java.lang.NullPointerException
at org.drools.time.impl.JDKTimerService.removeJob(JDKTimerService.java:134)
at org.drools.reteoo.RuleTerminalNode$RTNCleanupAdapter.cleanUp(RuleTerminalNode.java:524)
at org.drools.reteoo.BetaNode.doRemove(BetaNode.java:454)
at org.drools.common.BaseNode.remove(BaseNode.java:106)
at org.drools.reteoo.RuleTerminalNode.doRemove(RuleTerminalNode.java:410)
at org.drools.common.BaseNode.remove(BaseNode.java:106)
at org.drools.reteoo.ReteooBuilder.removeRule(ReteooBuilder.java:261)
at org.drools.reteoo.ReteooRuleBase.removeRule(ReteooRuleBase.java:459)
at org.drools.common.AbstractRuleBase.removeRule(AbstractRuleBase.java:1106)
at org.drools.common.AbstractRuleBase.removeRule(AbstractRuleBase.java:1084)
at org.drools.impl.KnowledgeBaseImpl.removeRule(KnowledgeBaseImpl.java:208)
A detailed description can be found here: http://drools.46999.n3.nabble.com/rules-users-Protobuf-Marshaller-Question-ScheduledActivation-Persistence-td4019537.html
The attached test has been reworked to simply persist the session blob to a local file rather than a database. I should be easy to import as maven project.