[jboss-jira] [JBoss JIRA] (DROOLS-252) Deserialization with TimerJobFactoryOption causes NPE -
Davide Sottara (JIRA)
jira-events at lists.jboss.org
Sun Sep 8 21:59:03 EDT 2013
[ https://issues.jboss.org/browse/DROOLS-252?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12802623#comment-12802623 ]
Davide Sottara commented on DROOLS-252:
---------------------------------------
Philipp, I could not reproduce this issue in 5.6, could you submit a full test case?
Thanks
Davide
> Deserialization with TimerJobFactoryOption causes NPE -
> --------------------------------------------------------
>
> Key: DROOLS-252
> URL: https://issues.jboss.org/browse/DROOLS-252
> Project: Drools
> Issue Type: Bug
> Security Level: Public(Everyone can see)
> Affects Versions: 5.5.0.Final
> Reporter: Philipp Herzig
> Assignee: Mark Proctor
>
> In 5.5.0 the unmarshalling of a stateful sessions causes the following NPE trace when KnowledgeSessionConfiguration.setOption(TimerJobFactoryOption.get("trackable")); is set! This worked fine under 5.4.0 where the options was still set with ((SessionConfiguration) this.conf).setTimerJobFactoryManager(new TrackableTimeJobFactoryManager());
> The error only occurs with the option set, no w/o it and iff temporal operators are present. In my cases I simply used a over window:time(x) operator.
> Steps to reproduce:
> 1. Create two rules one w/ time window (1) and one w/o time window (2)
> 2. Do not active rule (2)
> 3. Send an event that would potentially activate (2)
> 4. Unmarshall Session (i.e., simulate the recovery from a system failure)
> 5. Activate (2)
> 6. Exception
> java.lang.NullPointerException
> at org.drools.reteoo.ReteooWorkingMemory$WorkingMemoryReteExpireAction.serialize(ReteooWorkingMemory.java:495)
> at org.drools.marshalling.impl.ProtobufOutputMarshaller.writeActionQueue(ProtobufOutputMarshaller.java:454)
> at org.drools.marshalling.impl.ProtobufOutputMarshaller.serializeSession(ProtobufOutputMarshaller.java:145)
> at org.drools.marshalling.impl.ProtobufOutputMarshaller.writeSession(ProtobufOutputMarshaller.java:100)
> at org.drools.marshalling.impl.ProtobufMarshaller.marshall(ProtobufMarshaller.java:169)
> at org.drools.marshalling.impl.ProtobufMarshaller.marshall(ProtobufMarshaller.java:151)
> at com.sap.gamification.ruleengine.RuleEngine.getSnapshot(RuleEngine.java:603)
> at com.sap.gamification.ruleengine.RuleEngine.storeSession(RuleEngine.java:567)
> at com.sap.gamification.ruleengine.TrackingAgendaEventListener.activationCreated(TrackingAgendaEventListener.java:45)
> at org.drools.impl.StatefulKnowledgeSessionImpl$AgendaEventListenerWrapper.activationCreated(StatefulKnowledgeSessionImpl.java:643)
> at org.drools.event.AgendaEventSupport.fireActivationCreated(AgendaEventSupport.java:41)
> at org.drools.common.DefaultAgenda.createActivation(DefaultAgenda.java:602)
> at org.drools.reteoo.RuleTerminalNode.assertLeftTuple(RuleTerminalNode.java:253)
> at org.drools.reteoo.JoinNode.updateSink(JoinNode.java:411)
> at org.drools.reteoo.RuleTerminalNode.attach(RuleTerminalNode.java:346)
> at org.drools.reteoo.builder.ReteooRuleBuilder.addSubRule(ReteooRuleBuilder.java:174)
> at org.drools.reteoo.builder.ReteooRuleBuilder.addRule(ReteooRuleBuilder.java:134)
> at org.drools.reteoo.ReteooBuilder.addRule(ReteooBuilder.java:113)
> at org.drools.reteoo.ReteooRuleBase.addRule(ReteooRuleBase.java:445)
> at org.drools.common.AbstractRuleBase.addRule(AbstractRuleBase.java:952)
> at org.drools.common.AbstractRuleBase.addPackages(AbstractRuleBase.java:629)
> at org.drools.reteoo.ReteooRuleBase.addPackages(ReteooRuleBase.java:472)
> at org.drools.impl.KnowledgeBaseImpl.addKnowledgePackages(KnowledgeBaseImpl.java:149)
> at com.sap.gamification.ruleengine.RuleEngine.addKnowledgeToBase(RuleEngine.java:477)
> at com.sap.gamification.ruleengine.RuleEngine.loadRule(RuleEngine.java:428)
> at com.sap.gamification.ruleengine.RuleEngine.addRuleToEngine(RuleEngine.java:435)
> at com.sap.gamification.ruleengine.RuleService.deployRule(RuleService.java:144)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at com.sap.gamification.receive.GenericJsonMarshalling.invokeMethod(GenericJsonMarshalling.java:190)
> at com.sap.gamification.receive.JsonRPC.executeRequest(JsonRPC.java:108)
> at com.sap.gamification.ruleengine.web.RuleServiceServlet.doPost(RuleServiceServlet.java:54)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at com.sap.gamification.security.LocalHostFilter.doFilter(LocalHostFilter.java:46)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> at com.sap.security.auth.service.webcontainer.internal.Authenticator.invoke(Authenticator.java:147)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
> at com.sap.core.tenant.valve.TenantValidationValve.invokeNextValve(TenantValidationValve.java:169)
> at com.sap.core.tenant.valve.TenantValidationValve.invoke(TenantValidationValve.java:85)
> at com.sap.core.js.monitoring.tomcat.valve.RequestTracingValve.invoke(RequestTracingValve.java:27)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
> at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
> at java.lang.Thread.run(Unknown Source)
> Unexpected exception executing action org.drools.reteoo.ReteooWorkingMemory$WorkingMemoryReteExpireAction at 5e2a4a68
> org.drools.RuntimeDroolsException: Unexpected exception executing action org.drools.reteoo.ReteooWorkingMemory$WorkingMemoryReteExpireAction at 5e2a4a68
> at org.drools.common.AbstractWorkingMemory.executeQueuedActions(AbstractWorkingMemory.java:995)
> at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:707)
> at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)
> at org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:230)
> at com.sap.gamification.ruleengine.RuleEngine.fireRules(RuleEngine.java:539)
> at com.sap.gamification.ruleengine.RuleEngine.addRuleToEngine(RuleEngine.java:437)
> at com.sap.gamification.ruleengine.RuleService.deployRule(RuleService.java:144)
> at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
> at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
> at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
> at java.lang.reflect.Method.invoke(Unknown Source)
> at com.sap.gamification.receive.GenericJsonMarshalling.invokeMethod(GenericJsonMarshalling.java:190)
> at com.sap.gamification.receive.JsonRPC.executeRequest(JsonRPC.java:108)
> at com.sap.gamification.ruleengine.web.RuleServiceServlet.doPost(RuleServiceServlet.java:54)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:755)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:848)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at com.sap.gamification.security.LocalHostFilter.doFilter(LocalHostFilter.java:46)
> at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
> at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
> at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
> at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
> at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
> at com.sap.security.auth.service.webcontainer.internal.Authenticator.invoke(Authenticator.java:147)
> at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
> at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
> at com.sap.core.tenant.valve.TenantValidationValve.invokeNextValve(TenantValidationValve.java:169)
> at com.sap.core.tenant.valve.TenantValidationValve.invoke(TenantValidationValve.java:85)
> at com.sap.core.js.monitoring.tomcat.valve.RequestTracingValve.invoke(RequestTracingValve.java:27)
> at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
> at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
> at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1004)
> at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589)
> at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
> at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(Unknown Source)
> at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
> at java.lang.Thread.run(Unknown Source)
> Caused by: java.lang.NullPointerException
> at org.drools.reteoo.ReteooWorkingMemory$WorkingMemoryReteExpireAction.execute(ReteooWorkingMemory.java:505)
> at org.drools.common.AbstractWorkingMemory.executeQueuedActions(AbstractWorkingMemory.java:993)
> ... 37 more
--
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