Anyone can help me? I want to use an element of an Array in my rule condition.<br><br>Thank you very much!<br><br>- Zeke<br><br><div class="gmail_quote">2009/4/28 Zeke <span dir="ltr">&lt;<a href="mailto:xanadu860122@gmail.com">xanadu860122@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">Hi, <br>  I am using Drools 4.0.7 GA. I want to use Array type in my rule condition. My drl is like below:<br>
<blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote">
  package org.drools.examples.test;<br> <br>  import org.drools.examples.HelloWorldExample.Message;<br><br>  rule &quot;check.array&quot;<br>      dialect &quot;java&quot;<br>      when<br>          m:Message( arr[0] == &quot;1&quot; )<br>

      then<br>          System.out.println( &quot;===check array ok===&quot; ); <br>  end</blockquote><div> </div>  arr is an int type array. When I run the test case, I meet below exception:<br><blockquote style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;" class="gmail_quote">

Exception in thread &quot;main&quot; org.drools.RuntimeDroolsException: Exception executing predicate eval( arr[0] == &quot;1&quot; )<br>    at org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:216)<br>

    at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:137)<br>    at org.drools.reteoo.SingleObjectSinkAdapter.propagateAssertObject(SingleObjectSinkAdapter.java:22)<br>    at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:162)<br>

    at org.drools.reteoo.Rete.assertObject(Rete.java:175)<br>    at org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:192)<br>    at org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:71)<br>

    at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:911)<br>    at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:883)<br>    at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:684)<br>

    at org.drools.examples.HelloWorldExample.main(HelloWorldExample.java:69)<br>Caused by: org.mvel.CompileException: illegal use of []: unknown type: [I<br>    at org.mvel.optimizers.impl.refl.ReflectiveAccessorOptimizer.getCollectionProperty(ReflectiveAccessorOptimizer.java:482)<br>

    at org.mvel.optimizers.impl.refl.ReflectiveAccessorOptimizer.compileGetChain(ReflectiveAccessorOptimizer.java:274)<br>    at org.mvel.optimizers.impl.refl.ReflectiveAccessorOptimizer.optimizeAccessor(ReflectiveAccessorOptimizer.java:110)<br>

    at org.mvel.ASTNode.getReducedValueAccelerated(ASTNode.java:186)<br>    at org.mvel.ast.BinaryOperation.getReducedValueAccelerated(BinaryOperation.java:21)<br>    at org.mvel.MVELRuntime.execute(MVELRuntime.java:90)<br>

    at org.mvel.CompiledExpression.getValue(CompiledExpression.java:111)<br>    at org.mvel.MVEL.executeExpression(MVEL.java:234)<br>    at org.drools.base.mvel.MVELPredicateExpression.evaluate(MVELPredicateExpression.java:45)<br>

    at org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:209)<br>    ... 10 more<br></blockquote> <br>Can anyone kindly tell me how to use Array type in Drools? Thanks in advance!<br><font color="#888888"><br>
- Zeke<br>
</font></blockquote></div><br>