[
https://issues.jboss.org/browse/JBRULES-3644?page=com.atlassian.jira.plug...
]
Mario Fusco resolved JBRULES-3644.
----------------------------------
Resolution: Rejected
The marshalling/unmarshalling of Scheduled Activation can work correctly only if you use
the trackable timer service manager. Unfortunately this detail is missing in the
documentation and we also didn't provide a way to configure this on the public API. I
am going to fix both those issues, but in the meanwhile you can do it by configuring the
KnowledgeBaseFactory as it follows:
KnowledgeSessionConfiguration ksconf =
KnowledgeBaseFactory.newKnowledgeSessionConfiguration();
((SessionConfiguration) ksconf).setTimerJobFactoryManager( new
TrackableTimeJobFactoryManager() );
ksession = kbase.newStatefulKnowledgeSession(ksconf, null);
Scheduled Activations are not fired after unmarshalling
-------------------------------------------------------
Key: JBRULES-3644
URL:
https://issues.jboss.org/browse/JBRULES-3644
Project: Drools
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: drools-core (expert), drools-core (fusion)
Affects Versions: 5.4.0.CR1, 5.4.0.Final, 5.5.0.Beta1
Reporter: Philipp Herzig
Assignee: Mario Fusco
Attachments: DroolsScheduledActivation.zip
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-Questio...
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.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:
http://www.atlassian.com/software/jira