NPE在迁移到Java 1.8时流失DefaultAgenda.createActivation()

时间:2018-04-06 07:09:33

标签: java-8 drools

我们正在从Java 1.7 to Java 1.8升级我们的应用程序。目前,我们正在使用drools版本drools-core-5.4.0.Final.jar, mvel2-2.1.0.drools6.jar&添加了ecj-4.4.2.jar来解决编译问题(ClassFormatException)。我们还更新了mvel jar to support 1.8。但是,在运行时,我们在其中一个drool文件中获得NullPointerException。我不认为规则文件存在问题,因为它与java 1.7一起正常工作,请让我知道可能是什么问题?谢谢!

rule "validate rule" extends BaseRule
    agenda-group "validate"
    no-loop true
    dialect "java"
    when
        eval(isValidated())
    then
        ...
        update();
end
Exception executing consequence for rule "validate_rule" in defaultpkg: java.lang.NullPointerException
at org.drools.runtime.rule.impl.DefaultConsequenceExceptionHandler.handleException(DefaultConsequenceExceptionHandler.java:39)
at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1283)
at org.drools.common.DefaultAgenda.fireNextItem(DefaultAgenda.java:1209)
at org.drools.common.DefaultAgenda.fireAllRules(DefaultAgenda.java:1442)
at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:710)
at org.drools.common.AbstractWorkingMemory.fireAllRules(AbstractWorkingMemory.java:674)
at org.drools.impl.StatefulKnowledgeSessionImpl.fireAllRules(StatefulKnowledgeSessionImpl.java:230)
at com.test.rules.controller.runner.RulesEngineRuleFirer.fireAllRules(RulesEngineRuleFirer.java:81)
at com.test.rules.controller.runner.RulesEngineRuleFirer.runRulesEngineFireRule(RulesEngineRuleFirer.java:62)
at com.test.rules.controller.runner.DroolsControllerRunner.runRulesEngine(DroolsControllerRunner.java:285)
at com.test.rules.controller.runner.DroolsControllerRunner.runRulesEngineSetAdendaFocus(DroolsControllerRunner.java:199)
at com.test.rules.controller.DroolsControllerCompleteRunner.runRulesEngineComplete(DroolsControllerCompleteRunner.java:160)
at com.test.rules.controller.DroolsControllerCompleteRunner.runRulesEngineCompleteRequest(DroolsControllerCompleteRunner.java:109)
at com.test.rules.controller.DroolsControllerCompleteRunner.runCompleteRulesEngine(DroolsControllerCompleteRunner.java:72)
at com.test.rules.controller.DroolsController.runCompleteConstriantEngine(DroolsController.java:107)
at com.test.wfplat.frameworks.core.mgr.AbstractRulesEngineWorkflowMgr.runRulesEngineService(AbstractRulesEngineWorkflowMgr.java:62)
at com.test.wfplat.frameworks.core.mgr.ChainRulesEngineWorkflowMgr$1.call(ChainRulesEngineWorkflowMgr.java:74)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(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.common.DefaultAgenda.createActivation(DefaultAgenda.java:569)
at org.drools.reteoo.RuleTerminalNode.modifyLeftTuple(RuleTerminalNode.java:297)
at org.drools.reteoo.CompositeLeftTupleSinkAdapter.propagateModifyChildLeftTuple(CompositeLeftTupleSinkAdapter.java:295)
at org.drools.reteoo.JoinNode.modifyLeftTuple(JoinNode.java:363)
at org.drools.reteoo.LeftTupleSource.doModifyLeftTuple(LeftTupleSource.java:297)
at org.drools.reteoo.LeftTupleSource.modifyLeftTuple(LeftTupleSource.java:271)
at org.drools.reteoo.JoinNode.modifyLeftTuple(JoinNode.java:429)
at org.drools.reteoo.SingleLeftTupleSinkAdapter.doPropagateModifyLeftTuple(SingleLeftTupleSinkAdapter.java:205)
at org.drools.reteoo.SingleLeftTupleSinkAdapter.propagateModifyObject(SingleLeftTupleSinkAdapter.java:235)
at org.drools.reteoo.LeftInputAdapterNode.modifyObject(LeftInputAdapterNode.java:170)
at org.drools.reteoo.SingleObjectSinkAdapter.propagateModifyObject(SingleObjectSinkAdapter.java:68)
at org.drools.reteoo.ObjectTypeNode.modifyObject(ObjectTypeNode.java:314)
at org.drools.reteoo.EntryPointNode.modifyObject(EntryPointNode.java:265)
at org.drools.common.NamedEntryPoint.update(NamedEntryPoint.java:470)
at org.drools.common.NamedEntryPoint.update(NamedEntryPoint.java:370)
at org.drools.base.DefaultKnowledgeHelper.update(DefaultKnowledgeHelper.java:317)
at org.drools.base.DefaultKnowledgeHelper.update(DefaultKnowledgeHelper.java:312)
at defaultpkg.Rule_validate_rule_c2186cc461e2439b9e53b76b6b5a4c4b.defaultConsequence(Rule_validate_rule_c2186cc461e2439b9e53b76b6b5a4c4b.java:16)
at defaultpkg.Rule_validate_rule_c2186cc461e2439b9e53b76b6b5a4c4bDefaultConsequenceInvokerGenerated.evaluate(Unknown Source)
at defaultpkg.Rule_validate_rule_c2186cc461e2439b9e53b76b6b5a4c4bDefaultConsequenceInvoker.evaluate(Unknown Source)
at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1273)
... 19 more

0 个答案:

没有答案