Hello, guys,

I've got a rule which states:

rule "quest_reach_level_1_in_any_category_accomplished"
    when
        $gsc : GameStateController(hasEventOccurred("eventId") && !hasEventOccurred("otherEventId") && hasAnyEventOccurred("param1", "param2", "param3", "param4", "param5", "param6", "param7", "param8", "param9", "param10", "param11", "param12"))
        $response : Response()
    then
        ... some business logic
end

which ends up with:

Caused by: org.drools.RuntimeDroolsException: Exception executing predicate hasA
nyEventOccurred("level1_love", "level1_friendship", "level1_prosperity", "level1
_charisma", "level1_willpower", "level1_wisdom", "level1_entertainment", "level1
_adventure", "level1_inspiration", "level1_harmony", "level1_lightheartedness",
"level1_confidence")
        at org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:298)
        at org.drools.reteoo.AlphaNode.modifyObject(AlphaNode.java:145)
        at org.drools.reteoo.SingleObjectSinkAdapter.propagateModifyObject(SingleObjectSinkAdapter.java:68)
        at org.drools.reteoo.AlphaNode.modifyObject(AlphaNode.java:149)
        at org.drools.reteoo.SingleObjectSinkAdapter.propagateModifyObject(SingleObjectSinkAdapter.java:68)
        at org.drools.reteoo.AlphaNode.modifyObject(AlphaNode.java:149)
        at org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateModifyObject(CompositeObjectSinkAdapter.java:468)
        at org.drools.reteoo.CompositeObjectSinkAdapter.propagateModifyObject(CompositeObjectSinkAdapter.java:436)
        at org.drools.reteoo.ObjectTypeNode.modifyObject(ObjectTypeNode.java:288)
        at org.drools.reteoo.EntryPointNode.modifyObject(EntryPointNode.java:271)
        at org.drools.common.NamedEntryPoint.update(NamedEntryPoint.java:459)
        at org.drools.common.NamedEntryPoint.update(NamedEntryPoint.java:363)
        at org.drools.base.DefaultKnowledgeHelper.update(DefaultKnowledgeHelper.java:298)
        at org.drools.base.DefaultKnowledgeHelper.update(DefaultKnowledgeHelper.java:306)
        at org.drools.base.ModifyInterceptor.doAfter(ModifyInterceptor.java:59)
        at org.mvel2.ast.InterceptorWrapper.getReducedValueAccelerated(InterceptorWrapper.java:38)
        at org.mvel2.MVELRuntime.execute(MVELRuntime.java:87)
        at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:122)
        at org.mvel2.MVEL.executeExpression(MVEL.java:930)
        at org.drools.base.mvel.MVELConsequence.evaluate(MVELConsequence.java:105)
        at org.drools.common.DefaultAgenda.fireActivation(DefaultAgenda.java:1091)
        ... 47 more
Caused by: java.lang.RuntimeException: cannot invoke method: hasAnyEventOccurred
        at org.mvel2.optimizers.impl.refl.nodes.MethodAccessor.getValue(MethodAccessor.java:62)
        at org.mvel2.ast.ASTNode.getReducedValueAccelerated(ASTNode.java:106)
        at org.mvel2.MVELRuntime.execute(MVELRuntime.java:87)
        at org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:122)
        at org.mvel2.MVEL.executeExpression(MVEL.java:930)
        at org.drools.base.mvel.MVELPredicateExpression.evaluate(MVELPredicateExpression.java:100)
        at org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:291)
        ... 67 more
Caused by: java.lang.ArrayIndexOutOfBoundsException: 12
        at org.mvel2.optimizers.impl.refl.nodes.MethodAccessor.executeAll(MethodAccessor.java:148)
        at org.mvel2.optimizers.impl.refl.nodes.MethodAccessor.getValue(MethodAccessor.java:47)
        ... 73 more

I'm using Drools 5.3.0.Final and it fails when it comes to evaluating the predicate hasAnyEventOccurred(String... varArgs).

Thanks,
Martin