<br>&nbsp;&nbsp; Leon,<br><br>&nbsp;&nbsp; This specific problem was fixed in the 4.0.x branch a few weeks ago. I believe we covered all the scenarios, but in case we missed any, please let us know asap.<br><br>&nbsp;&nbsp; []s<br>&nbsp;&nbsp; Edson<br><br><div>
<span class="gmail_quote">2008/3/13, Leon Stein &lt;<a href="mailto:leon@farecast.com">leon@farecast.com</a>&gt;:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
I&#39;ll test with the latest from 4.0.x branch, in the meanwhile, more info<br> on the actual error:<br> <br> Stack trace:<br> <br><br> org.drools.RuntimeDroolsException: Exception executing predicate<br> <br>org.drools.base.mvel.MVELPredicateExpression@3863aa2c<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at<br> org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:216)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:132)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at<br> <br>org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:318)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at<br> org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:153)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at org.drools.reteoo.Rete.assertObject(Rete.java:175)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at<br> org.drools.reteoo.ReteooRuleBase.assertObject(ReteooRuleBase.java:192)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at<br> org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:71)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at<br> org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:909)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at<br> <br>org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:881)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at<br> org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:682)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &lt;removed&gt;<br> Caused by: org.mvel.CompileException: cannot invoke getter: getBar<br> [declr.class: org.example.Foo; act.class: null]<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at<br> org.mvel.optimizers.impl.refl.GetterAccessor.getValue(GetterAccessor.java:52)<br> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at<br> org.mvel.optimizers.impl.refl.VariableAccessor.getValue(VariableAccessor.java:39)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at<br> org.mvel.ast.VariableDeepPropertyNode.getReducedValueAccelerated(VariableDeepPropertyNode.java:22)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at<br> org.mvel.ast.PropertyASTNode.getReducedValueAccelerated(PropertyASTNode.java:21)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at<br> org.mvel.ast.BinaryOperation.getReducedValueAccelerated(BinaryOperation.java:21)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at org.mvel.MVELRuntime.execute(MVELRuntime.java:88)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at org.mvel.CompiledExpression.getValue(CompiledExpression.java:111)<br> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at org.mvel.MVEL.executeExpression(MVEL.java:235)<br> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at<br> org.drools.base.mvel.MVELPredicateExpression.evaluate(MVELPredicateExpression.java:36)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at<br> <br>org.drools.rule.PredicateConstraint.isAllowed(PredicateConstraint.java:210)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;... 41 more<br> <br>Caused by: java.lang.NullPointerException<br> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at sun.reflect.GeneratedMethodAccessor292.invoke(Unknown Source)<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at<br> <br>sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)<br> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at java.lang.reflect.Method.invoke(Method.java:585)<br> <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;at<br> org.mvel.optimizers.impl.refl.GetterAccessor.getValue(GetterAccessor.java:42)<br>
 <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;... 50 more<br> <br> - Only occurs on multi-cpu boxes (Linux, Sun JRE 1.5.0_06, 64 bit) under<br> heavy load with simultaneous sessions running against same rule base<br> with thousands of facts in each session.<br>
 <br> - The rule where exception occurs traverses properties of inserted<br> object (foo.bar expression):<br> <br> rule &quot;XYZ&quot;<br>&nbsp;&nbsp;&nbsp;&nbsp;when<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;foo : FooHolder(foo.bar == Bar.GREEN)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br>&nbsp;&nbsp;&nbsp;&nbsp;then<br>
&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;...<br> end<br> <br> The traversed objects are not shared between sessions, and properties<br> are never null.<br> <br><br> Leon<br> <br><br> <br> Mark Proctor wrote:<br> &gt; Leon S wrote:<br> &gt;&gt; We ran into this problem after upgrading from 3.0.* to 4.0.4.<br>
 &gt;&gt;<br> &gt;&gt; Is there a JIRA issue filed for this? I see a few MVEL-related issues scoped<br> &gt;&gt; for 4.0.5 and 5.0 releases, but&nbsp;&nbsp;nothing that looks like specifically<br> &gt;&gt; covering this problem.<br>
 &gt;&gt;<br> &gt;&gt;<br> &gt; The user who reported this has not provided more information on how<br> &gt; this is happening, nor have they confirmed that is or is not fixed in<br> &gt; 4.0.x. My advice is quickly test your code against 4.0.x and let us<br>
 &gt; know if there is a problem. There is no way we can determine if there<br> &gt; is or isn&#39;t a problem from the stack trace given at the start of this<br> &gt; conversation thread.<br> &gt; <a href="http://anonsvn.labs.jboss.com/labs/jbossrules/branches/4.0.x/">http://anonsvn.labs.jboss.com/labs/jbossrules/branches/4.0.x/</a><br>
 &gt;&gt; Thanks,<br> &gt;&gt;<br> &gt;&gt; Leon<br> &gt;&gt;<br> &gt;&gt;<br> &gt;&gt; Mark Proctor wrote:<br> &gt;&gt;<br> &gt;&gt;&gt; This looks different to what was fixed in 4.0.4. I&#39;m cc&#39;ing brockm to<br> &gt;&gt;&gt; get his feedback as it looks like an MVEL bug on accessors.<br>
 &gt;&gt;&gt;<br> &gt;&gt;&gt; Mark<br> &gt;&gt;&gt; Fernando Meyer wrote:<br> &gt;&gt;&gt;<br> &gt;&gt;&gt;&gt; Hi Ingomar,<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt; Which drools version are you using? We made improvements on 4.0.4,<br>
 &gt;&gt;&gt;&gt; that fixes concurrency issues on mvel core, so if you aren&#39;t using it<br> &gt;&gt;&gt;&gt; please do an update and try test against your environment.<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt; Please let me know if your problems go away when you upgrade.<br>
 &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt; Thanks<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt; On Jan 22, 2008 11:13 AM, Ingomar Otter &lt;<a href="mailto:ingomar.otter@valtech.de">ingomar.otter@valtech.de</a><br> &gt;&gt;&gt;&gt; &lt;mailto:<a href="mailto:ingomar.otter@valtech.de">ingomar.otter@valtech.de</a>&gt;&gt; wrote:<br>
 &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Folks,<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; I am currently trying to scale our implementation by farming out<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; request into mutliple threads. I am on a 4 CPU Mac.<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; A few things I am wondering about:<br>
 &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; 1. Although I see an increase in CPU load when going from single<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; to multi-threaded processing the throughput increased marginally.<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; I am pretty sure that my measurements are correct. I have checked<br>
 &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; the GC and this is not the source of congestion. My question here<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; is whether Drools is using lot&#39;s of synchronization that may<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; explain this.<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; 2. When I share the RuleBase accross threads (which I think is<br>
 &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; valid?) I get interesting errors during execution. eg:<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; org.drools.RuntimeDroolsException : Exception executing predicate<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; org.drools.base.mvel.MVELPredicateExpression@bb981e<br>
 &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; atorg.drools.rule.PredicateConstraint.isAllowedCachedRight(<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; PredicateConstraint.java:246)<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt; org.drools.common.TripleBetaConstraints.isAllowedCachedRight(TripleBetaConstraints.java:200)<br>
 &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; atorg.drools.reteoo.JoinNode.assertObject(JoinNode.java:150)<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt; atorg.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:318)<br>
 &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt; atorg.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:153)<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; at org.drools.reteoo.Rete.assertObject(Rete.java:175)<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; atorg.drools.reteoo.ReteooRuleBase.assertObject<br>
 &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; (ReteooRuleBase.java:192)<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt; org.drools.reteoo.ReteooWorkingMemory.doInsert(ReteooWorkingMemory.java:71)<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br>
 &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt; org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:909)<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt; atorg.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:881)<br>
 &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt; atorg.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:682)<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; atxxxx.DroolsPD.validate(DroolsPD.java:66)<br>
 &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; at xxxx.DroolsMTRunner.run(DroolsMTRunner.java:30)<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; at java.lang.Thread.run(Thread.java:552)<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Caused by: org.mvel.CompileException: cannot invoke getter:<br>
 &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; getSAClass [declr.class: xxx.AbstractSA; act.class: null]<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; atorg.mvel.optimizers.impl.refl.GetterAccessor.getValue(<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; GetterAccessor.java:52)<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br>
 &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt; org.mvel.optimizers.impl.refl.VariableAccessor.getValue(VariableAccessor.java:39)<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt; org.mvel.ast.VariableDeepPropertyNode.getReducedValueAccelerated(VariableDeepPropertyNode.java:22)<br>
 &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt; atorg.mvel.ast.PropertyASTNode.getReducedValueAccelerated(PropertyASTNode.java:21)<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt; org.mvel.ast.BinaryOperation.getReducedValueAccelerated(BinaryOperation.java:21)<br>
 &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; at org.mvel.MVELRuntime.execute(MVELRuntime.java:88)<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; at org.mvel.CompiledExpression.getValue(CompiledExpression.java:111)<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; atorg.mvel.MVEL.executeExpression(MVEL.java:235)<br>
 &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt; org.drools.base.mvel.MVELPredicateExpression.evaluate(MVELPredicateExpression.java:36)<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt; atorg.drools.rule.PredicateConstraint.isAllowedCachedRight(PredicateConstraint.java:240)<br>
 &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; ... 13 more<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Caused by: java.lang.NullPointerException<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; atsun.reflect.GeneratedMethodAccessor6.invoke (Unknown Source)<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; atsun.reflect.DelegatingMethodAccessorImpl.invoke(<br>
 &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; DelegatingMethodAccessorImpl.java:25)<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; atjava.lang.reflect.Method.invoke( Method.java:324)<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; at<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt; org.mvel.optimizers.impl.refl.GetterAccessor.getValue(GetterAccessor.java:42)<br>
 &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; ... 22 more<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Details:<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* I use StatelessSessions which are private to the threads<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* No data is shared between threads (with the exception of the<br>
 &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; RuleBase, as outline above)<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;* I am on JDK 1.5<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; I would be grateful for any pointers for &#39;correct&#39; use of Drools<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; in an MT environment.<br>
 &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Cheers,<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; Ingomar<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Ingomar Otter<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Chief Technology Officer<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; <a href="mailto:ingomar.otter@valtech.de">ingomar.otter@valtech.de</a> &lt;mailto:<a href="mailto:ingomar.otter@valtech.de">ingomar.otter@valtech.de</a>&gt;<br>
 &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Mobile: +49 172 2367867<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Valtech GmbH<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Bahnstraße 16<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; 40212 Düsseldorf<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Germany<br>
 &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Phone: +49 (0)211 179237-0<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Fax: +49 211 179237-19<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; <a href="http://www.valtech.de">www.valtech.de</a> &lt;<a href="http://www.valtech.de/">http://www.valtech.de/</a>&gt;<br>
 &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Geschäftsführer: Ingo Kriescher<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; Amtsgericht Düsseldorf HRB48672<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; _______________________________________________<br>
 &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; rules-users mailing list<br> &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a> &lt;mailto:<a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a>&gt;<br>
 &gt;&gt;&gt;&gt;&nbsp;&nbsp;&nbsp;&nbsp; <a href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a><br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;<br>
 &gt;&gt;&gt;&gt; --<br> &gt;&gt;&gt;&gt; Fernando Meyer <a href="http://fmeyer.org">http://fmeyer.org</a><br> &gt;&gt;&gt;&gt; JBoss Rules Core Developer<br> &gt;&gt;&gt;&gt; <a href="mailto:fernando@fmeyer.org">fernando@fmeyer.org</a> &lt;mailto:<a href="mailto:fernando@fmeyer.org">fernando@fmeyer.org</a>&gt;<br>
 &gt;&gt;&gt;&gt; ------------------------------------------------------------------------<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt; _______________________________________________<br> &gt;&gt;&gt;&gt; rules-users mailing list<br>
 &gt;&gt;&gt;&gt; <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br> &gt;&gt;&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
 &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt;&gt;<br> &gt;&gt;&gt; _______________________________________________<br> &gt;&gt;&gt; rules-users mailing list<br> &gt;&gt;&gt; <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
 &gt;&gt;&gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a><br> &gt;&gt;&gt;<br> &gt;&gt;&gt;<br> &gt;&gt;&gt;<br> &gt;&gt;<br> &gt;&gt;<br> &gt;&gt;<br>
 &gt;&gt;<br> &gt;<br> &gt; ------------------------------------------------------------------------<br> &gt;<br> &gt; _______________________________________________<br> &gt; rules-users mailing list<br> &gt; <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
 &gt; <a href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a><br> &gt;<br> _______________________________________________<br> rules-users mailing list<br> <a href="mailto:rules-users@lists.jboss.org">rules-users@lists.jboss.org</a><br>
 <a href="https://lists.jboss.org/mailman/listinfo/rules-users">https://lists.jboss.org/mailman/listinfo/rules-users</a><br> </blockquote></div><br><br clear="all"><br>-- <br>&nbsp;&nbsp;Edson Tirelli<br>&nbsp;&nbsp;JBoss Drools Core Development<br>
&nbsp;&nbsp;Office: +55 11 3529-6000<br>&nbsp;&nbsp;Mobile: +55 11 9287-5646<br>&nbsp;&nbsp;JBoss, a division of Red Hat @ <a href="http://www.jboss.com">www.jboss.com</a>