Hello, guys,<div><br></div><div>I've got a rule which states:</div><div><br></div><div><div>rule "quest_reach_level_1_in_any_category_accomplished"</div><div> when</div><div> $gsc : GameStateController(hasEventOccurred("eventId") && !hasEventOccurred("otherEventId") && hasAnyEventOccurred("param1", "param2", "param3", "param4", "param5", "param6", "param7", "param8", "param9", "param10", "param11", "param12"))</div>
<div> $response : Response()</div><div> then</div><div> ... some business logic</div><div>end</div></div><div><br></div><div>which ends up with:</div><div><br></div><div><div>Caused by: org.drools.RuntimeDroolsException: Exception executing predicate hasA</div>
<div>nyEventOccurred("level1_love", "level1_friendship", "level1_prosperity", "level1</div><div>_charisma", "level1_willpower", "level1_wisdom", "level1_entertainment", "level1</div>
<div>_adventure", "level1_inspiration", "level1_harmony", "level1_lightheartedness",</div><div>"level1_confidence")</div><div> at org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:298)</div>
<div> at org.drools.reteoo.AlphaNode.modifyObject(AlphaNode.java:145)</div><div> at org.drools.reteoo.SingleObjectSinkAdapter.propagateModifyObject(SingleObjectSinkAdapter.java:68)</div><div> at org.drools.reteoo.AlphaNode.modifyObject(AlphaNode.java:149)</div>
<div> at org.drools.reteoo.SingleObjectSinkAdapter.propagateModifyObject(SingleObjectSinkAdapter.java:68)</div><div> at org.drools.reteoo.AlphaNode.modifyObject(AlphaNode.java:149)</div><div> at org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateModifyObject(CompositeObjectSinkAdapter.java:468)</div>
<div> at org.drools.reteoo.CompositeObjectSinkAdapter.propagateModifyObject(CompositeObjectSinkAdapter.java:436)</div><div> at org.drools.reteoo.ObjectTypeNode.modifyObject(ObjectTypeNode.java:288)</div><div>
at org.drools.reteoo.EntryPointNode.modifyObject(EntryPointNode.java:271)</div><div> at org.drools.common.NamedEntryPoint.update(NamedEntryPoint.java:459)</div><div> at org.drools.common.NamedEntryPoint.update(NamedEntryPoint.java:363)</div>
<div> at org.drools.base.DefaultKnowledgeHelper.update(DefaultKnowledgeHelper.java:298)</div><div> at org.drools.base.DefaultKnowledgeHelper.update(DefaultKnowledgeHelper.java:306)</div><div> at org.drools.base.ModifyInterceptor.doAfter(ModifyInterceptor.java:59)</div>
<div> at org.mvel2.ast.InterceptorWrapper.getReducedValueAccelerated(InterceptorWrapper.java:38)</div><div> at org.mvel2.MVELRuntime.execute(MVELRuntime.java:87)</div><div> at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:122)</div>
<div> at org.mvel2.MVEL.executeExpression(MVEL.java:930)</div><div> at org.drools.base.mvel.MVELConsequence.evaluate(MVELConsequence.java:105)</div><div> at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1091)</div>
<div> ... 47 more</div><div>Caused by: java.lang.RuntimeException: cannot invoke method: hasAnyEventOccurred</div><div> at org.mvel2.optimizers.impl.refl.nodes.MethodAccessor.getValue(MethodAccessor.java:62)</div>
<div> at org.mvel2.ast.ASTNode.getReducedValueAccelerated(ASTNode.java:106)</div><div> at org.mvel2.MVELRuntime.execute(MVELRuntime.java:87)</div><div> at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:122)</div>
<div> at org.mvel2.MVEL.executeExpression(MVEL.java:930)</div><div> at org.drools.base.mvel.MVELPredicateExpression.evaluate(MVELPredicateExpression.java:100)</div><div> at org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:291)</div>
<div> ... 67 more</div><div>Caused by: java.lang.ArrayIndexOutOfBoundsException: 12</div><div> at org.mvel2.optimizers.impl.refl.nodes.MethodAccessor.executeAll(MethodAccessor.java:148)</div><div> at org.mvel2.optimizers.impl.refl.nodes.MethodAccessor.getValue(MethodAccessor.java:47)</div>
<div> ... 73 more</div></div><div><br></div><div>I'm using Drools 5.3.0.Final and it fails when it comes to evaluating the predicate hasAnyEventOccurred(String... varArgs).</div><div><br></div><div>Thanks,</div>
<div>Martin</div>