[rules-users] Exception executing consequence for rule xxx in yyy: java.lang.RuntimeException: unable to access field

magaram magaram at deltadentalmi.com
Tue Jan 15 21:02:49 EST 2013


Has anybody run into this exception with Drools. I get it on 5.4 as well as
5.3. Any help on this is deeply appreciated. Stack trace follows -

Exception occurred during event dispatching:
Exception executing consequence for rule "BORA00005" in InvoiceOnly:
java.lang.RuntimeException: unable to access field
	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.deltadental.claims.rules.engine.RuleEngine.executeDRL(Unknown
Source)
	at com.deltadental.claims.rules.richUI.BasicRuleTestDialog.execute(Unknown
Source)
	at
com.deltadental.claims.rules.richUI.BasicTestCaseExecutionDialog$2.actionPerformed(Unknown
Source)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
	at
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
	at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
	at java.awt.Component.processMouseEvent(Component.java:6297)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3275)
	at java.awt.Component.processEvent(Component.java:6062)
	at java.awt.Container.processEvent(Container.java:2039)
	at java.awt.Component.dispatchEventImpl(Component.java:4660)
	at java.awt.Container.dispatchEventImpl(Container.java:2097)
	at java.awt.Component.dispatchEvent(Component.java:4488)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4575)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4236)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4166)
	at java.awt.Container.dispatchEventImpl(Container.java:2083)
	at java.awt.Window.dispatchEventImpl(Window.java:2489)
	at java.awt.Component.dispatchEvent(Component.java:4488)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:668)
	at java.awt.EventQueue.access$400(EventQueue.java:81)
	at java.awt.EventQueue$2.run(EventQueue.java:627)
	at java.awt.EventQueue$2.run(EventQueue.java:625)
	at java.security.AccessController.doPrivileged(Native Method)
	at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
	at java.awt.EventQueue$3.run(EventQueue.java:641)
	at java.awt.EventQueue$3.run(EventQueue.java:639)
	at java.security.AccessController.doPrivileged(Native Method)
	at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:638)
	at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178)
	at java.awt.Dialog$1.run(Dialog.java:1044)
	at java.awt.Dialog$3.run(Dialog.java:1096)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.Dialog.show(Dialog.java:1094)
	at
com.deltadental.claims.rules.richUI.util.AbstractJDialog.showCentralized(Unknown
Source)
	at
com.deltadental.claims.rules.richUI.BasicTestCaseExecutionDialog.<init>(Unknown
Source)
	at
com.deltadental.claims.rules.richUI.BasicRuleTestDialog$2.actionPerformed(Unknown
Source)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
	at
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
	at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at
javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
	at java.awt.Component.processMouseEvent(Component.java:6297)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3275)
	at java.awt.Component.processEvent(Component.java:6062)
	at java.awt.Container.processEvent(Container.java:2039)
	at java.awt.Component.dispatchEventImpl(Component.java:4660)
	at java.awt.Container.dispatchEventImpl(Container.java:2097)
	at java.awt.Component.dispatchEvent(Component.java:4488)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4575)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4236)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4166)
	at java.awt.Container.dispatchEventImpl(Container.java:2083)
	at java.awt.Window.dispatchEventImpl(Window.java:2489)
	at java.awt.Component.dispatchEvent(Component.java:4488)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:668)
	at java.awt.EventQueue.access$400(EventQueue.java:81)
	at java.awt.EventQueue$2.run(EventQueue.java:627)
	at java.awt.EventQueue$2.run(EventQueue.java:625)
	at java.security.AccessController.doPrivileged(Native Method)
	at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
	at java.awt.EventQueue$3.run(EventQueue.java:641)
	at java.awt.EventQueue$3.run(EventQueue.java:639)
	at java.security.AccessController.doPrivileged(Native Method)
	at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:638)
	at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:178)
	at java.awt.Dialog$1.run(Dialog.java:1044)
	at java.awt.Dialog$3.run(Dialog.java:1096)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.awt.Dialog.show(Dialog.java:1094)
	at
com.deltadental.claims.rules.richUI.util.AbstractJDialog.showCentralized(Unknown
Source)
	at com.deltadental.claims.rules.richUI.BasicRuleTestDialog.<init>(Unknown
Source)
	at
com.deltadental.claims.rules.richUI.TestBillingOutputRulePackageDialog.<init>(Unknown
Source)
	at
com.deltadental.claims.rules.richUI.BillingOutputGenerationStrategy.startTestRulesPackageDialog(Unknown
Source)
	at
com.deltadental.claims.rules.richUI.action.TestRulePackageAction.actionPerformedImpl(Unknown
Source)
	at
com.deltadental.claims.rules.richUI.action.DDAbstractAction.actionPerformed(Unknown
Source)
	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
	at
javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
	at
javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
	at javax.swing.AbstractButton.doClick(AbstractButton.java:357)
	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:809)
	at
javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:850)
	at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
	at java.awt.Component.processMouseEvent(Component.java:6297)
	at javax.swing.JComponent.processMouseEvent(JComponent.java:3275)
	at java.awt.Component.processEvent(Component.java:6062)
	at java.awt.Container.processEvent(Container.java:2039)
	at java.awt.Component.dispatchEventImpl(Component.java:4660)
	at java.awt.Container.dispatchEventImpl(Container.java:2097)
	at java.awt.Component.dispatchEvent(Component.java:4488)
	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4575)
	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4236)
	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4166)
	at java.awt.Container.dispatchEventImpl(Container.java:2083)
	at java.awt.Window.dispatchEventImpl(Window.java:2489)
	at java.awt.Component.dispatchEvent(Component.java:4488)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:668)
	at java.awt.EventQueue.access$400(EventQueue.java:81)
	at java.awt.EventQueue$2.run(EventQueue.java:627)
	at java.awt.EventQueue$2.run(EventQueue.java:625)
	at java.security.AccessController.doPrivileged(Native Method)
	at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:98)
	at java.awt.EventQueue$3.run(EventQueue.java:641)
	at java.awt.EventQueue$3.run(EventQueue.java:639)
	at java.security.AccessController.doPrivileged(Native Method)
	at
java.security.AccessControlContext$1.doIntersectionPrivilege(AccessControlContext.java:87)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:638)
	at
java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
	at
java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
	at
java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
Caused by: java.lang.RuntimeException: unable to access field
	at
org.mvel2.optimizers.impl.refl.nodes.DynamicFieldAccessor.setValue(DynamicFieldAccessor.java:66)
	at
org.mvel2.optimizers.impl.refl.nodes.VariableAccessor.setValue(VariableAccessor.java:46)
	at
org.mvel2.compiler.CompiledAccExpression.setValue(CompiledAccExpression.java:59)
	at
org.mvel2.ast.DeepAssignmentNode.getReducedValueAccelerated(DeepAssignmentNode.java:92)
	at org.mvel2.MVELRuntime.execute(MVELRuntime.java:85)
	at
org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:123)
	at org.mvel2.MVEL.executeExpression(MVEL.java:930)
	at org.drools.base.mvel.MVELConsequence.evaluate(MVELConsequence.java:101)
	at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1273)
	... 130 more
Caused by: java.lang.NullPointerException
	at org.mvel2.DataConversion.convert(DataConversion.java:118)
	at
org.mvel2.optimizers.impl.refl.nodes.DynamicFieldAccessor.setValue(DynamicFieldAccessor.java:61)
	... 138 more

The rule in question is -

rule BORA00005
salience 9998997
	when
		$billingOutputRuleContext : BillingOutputRuleContext()
		$Current_Billing_Cycle :
BCRuleContext((eval(this.getBillingCycleStatusType() ==
BillingCycleStatusType.OUTPUT_IN_PROCESS) &&
eval(this.getRunDate().compareTo($billingOutputRuleContext.getTodayDate())
<= 0)))
		$Retroactive_Subscriber_Adjustment :
BSARuleContext((eval(this.getAdjustedBC() != $Current_Billing_Cycle) &&
eval(this.getBillingAdjustmentReasonType() ==
BillingAdjustmentReasonType.COVERAGE_TYPE_CHANGE) &&
eval(this.isNonZero())))
	
eval(($Retroactive_Subscriber_Adjustment.getAdjustedBC().getBillingClientType()
== BillingClientType.RISK &&
$Current_Billing_Cycle.getSubClientCobraAdminType() == CobraAdminType.NONE))
	then
		$billingOutputRuleContext.retroPreviousBillAmount =
($billingOutputRuleContext.retroPreviousBillAmount +
$Retroactive_Subscriber_Adjustment.getAdjustedBC().getCurrentBSI().getRISKBilledRate());
		$billingOutputRuleContext.stampRule(drools.getRule().getName())
end



--
View this message in context: http://drools.46999.n3.nabble.com/Exception-executing-consequence-for-rule-xxx-in-yyy-java-lang-RuntimeException-unable-to-access-field-tp4021553.html
Sent from the Drools: User forum mailing list archive at Nabble.com.


More information about the rules-users mailing list