[rules-users] java.lang.ArrayIndexOutOfBoundsException thrown in mvel2's compiler when running drools5.3 final.

Benjamin Bennett benbennett at gmail.com
Wed Mar 7 00:16:29 EST 2012


Anyway to get a scrubbed rule ? I will throw it through a debug
instance. Also what jdk/jre  are you running on?

On Tue, Mar 6, 2012 at 10:50 PM, pf_miles <miles.wy.1 at gmail.com> wrote:
> Yes, the line:
> Helper.containsAny(offerSubject, ((Set)colMap.get("_set_212")))
> is part of my rule's LHS code. It acts as a normal predicate:
>
> Caused by: org.drools.RuntimeDroolsException: Exception executing predicate
> Helper.containsAny(offerSubject, ((Set)colMap.get("_set_35")))
>        at
> org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:298)
>        at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:130)
>        at
> org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:458)
>        at
> org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:386)
>        at
> org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:215)
>        at
> org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:244)
>        at
> org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:330)
>        at
> org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:291)
>        at
> org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:886)
>        at
> org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:845)
>        at
> org.drools.impl.StatefulKnowledgeSessionImpl.insert(StatefulKnowledgeSessionImpl.java:255)
>        at
> com.alibaba.china.ruleservice.session.impl.drools5.TransientDrools5Session.insertFact(TransientDrools5Session.java:100)
>        at
> com.alibaba.china.avatar.offer.rulematch.OfferMatchFilter.doFilter(OfferMatchFilter.java:57)
>        ... 23 more
> Caused by: [Error: unexpected end of statement]
> [Near : {... Helper.containsAny(offerSubject, ((Set)colMap.get("_set_35")))
> ....}]
>                                                   ^
> [Line: 1, Column: 39]
>        at
> org.mvel2.compiler.AbstractParser.nextToken(AbstractParser.java:1215)
>        at
> org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:128)
>        at
> org.mvel2.util.ParseTools.subCompileExpression(ParseTools.java:2090)
>        at org.mvel2.ast.Substatement.<init>(Substatement.java:37)
>        at
> org.mvel2.compiler.AbstractParser.nextToken(AbstractParser.java:1062)
>        at
> org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:128)
>        at
> org.mvel2.compiler.ExpressionCompiler.compile(ExpressionCompiler.java:62)
>        at org.mvel2.MVEL.analyze(MVEL.java:680)
>        at
> org.mvel2.compiler.PropertyVerifier.getMethod(PropertyVerifier.java:469)
>        at
> org.mvel2.compiler.PropertyVerifier.analyze(PropertyVerifier.java:120)
>        at
> org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.compileGetChain(ReflectiveAccessorOptimizer.java:404)
>        at
> org.mvel2.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeAccessor(ReflectiveAccessorOptimizer.java:141)
>        at org.mvel2.ast.ASTNode.optimize(ASTNode.java:157)
>        at
> org.mvel2.ast.ASTNode.getReducedValueAccelerated(ASTNode.java:113)
>        at org.mvel2.MVELRuntime.execute(MVELRuntime.java:87)
>        at
> org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:122)
>        at
> org.mvel2.compiler.CompiledExpression.getValue(CompiledExpression.java:115)
>        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)
>        ... 35 more
> Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
>        at
> org.mvel2.compiler.PropertyVerifier.getMethod(PropertyVerifier.java:565)
>        at
> org.mvel2.compiler.PropertyVerifier.analyze(PropertyVerifier.java:120)
>        at
> org.mvel2.compiler.ExpressionCompiler.verify(ExpressionCompiler.java:381)
>        at
> org.mvel2.compiler.ExpressionCompiler._compile(ExpressionCompiler.java:273)
>        at
> org.mvel2.util.ParseTools.subCompileExpression(ParseTools.java:2090)
>        at org.mvel2.ast.TypeCast.<init>(TypeCast.java:43)
>        at
> org.mvel2.compiler.AbstractParser.nextToken(AbstractParser.java:1047)
>        ... 54 more
>
> --
> View this message in context: http://drools.46999.n3.nabble.com/rules-users-java-lang-ArrayIndexOutOfBoundsException-thrown-in-mvel2-s-compiler-when-running-drools5-tp3805739p3805889.html
> Sent from the Drools: User forum mailing list archive at Nabble.com.
> _______________________________________________
> rules-users mailing list
> rules-users at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/rules-users



-- 
Sincerely,

Benjamin Bennett
314.246.0645
benbennett at gmail.com

"For a successful technology, reality must take precedence over public
relations, for Nature cannot be fooled."
Richard Feynman




More information about the rules-users mailing list