[jboss-jira] [JBoss JIRA] (JBRULES-3644) Scheduled Activations are not fired after unmarshalling
Mario Fusco (JIRA)
jira-events at lists.jboss.org
Thu Oct 11 05:05:03 EDT 2012
[ https://issues.jboss.org/browse/JBRULES-3644?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
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-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.
--
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
More information about the jboss-jira
mailing list