<div><br></div>   JBRULES-2995 is fixed now, except for a corner case when using .class literals with fully qualified class names. This will be fixed in MVEL for 5.3 final release.<div><br></div><div>   This works fine now:</div>
<div><br></div><div><span class="Apple-style-span" style="font-family: arial, FreeSans, Helvetica, sans-serif; font-size: 14px; line-height: 20px; background-color: rgb(240, 240, 240); ">Primitives( classAttr == (java.lang.String.class),<br>
                  eval(classAttr.equals( java.lang.String.class ) ),<br></span><span class="Apple-style-span" style="font-family: arial, FreeSans, Helvetica, sans-serif; font-size: 14px; line-height: 20px; background-color: rgb(240, 240, 240); ">                  classAttr == String.class )</span></div>
<div><font class="Apple-style-span" face="arial, FreeSans, Helvetica, sans-serif"><span class="Apple-style-span" style="font-size: 14px; line-height: 20px;"><br></span></font><div>    Also, some improvements on the free form expression support:</div>
<div><br></div><div><span class="Apple-style-span" style="font-family: arial, FreeSans, Helvetica, sans-serif; font-size: 14px; line-height: 20px; background-color: rgb(240, 240, 240); ">$p1 : Person( age &gt; 2*10, 10 &lt; age )<br>
$p2 : Person( age &gt; 2*$p1.age )</span></div><div>   <br>    Please let me know if you find any other cases where free form expressions are raising errors.</div><div><br></div><div>    Thank you,</div><div>        Edson</div>
<div><br></div><div><div class="gmail_quote">2011/9/26 Edson Tirelli <span dir="ltr">&lt;<a href="mailto:ed.tirelli@gmail.com">ed.tirelli@gmail.com</a>&gt;</span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
<div><br></div>   Ok, this is fixed:<div><br></div><div><a href="https://issues.jboss.org/browse/JBRULES-3224" target="_blank">https://issues.jboss.org/browse/JBRULES-3224</a></div><div><br></div><div>   I will check JBRULES-2995 now.</div>

<div><br></div><div><font color="#888888">   Edson</font><div><div></div><div class="h5"><br><br><div class="gmail_quote">2011/9/26 Edson Tirelli <span dir="ltr">&lt;<a href="mailto:ed.tirelli@gmail.com" target="_blank">ed.tirelli@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
<div><br></div>   Thanks Wolfgang. That is a different issue related to how MVEL deals with class literals. I will check what&#39;s the status on it anyway.<div><br></div><div><font color="#888888">   Edson</font><div><div>

</div><div><br><br><div class="gmail_quote">2011/9/26 Wolfgang Laun <span dir="ltr">&lt;<a href="mailto:wolfgang.laun@gmail.com" target="_blank">wolfgang.laun@gmail.com</a>&gt;</span><br>
<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Note that <a href="https://issues.jboss.org/browse/JBRULES-2995" target="_blank">https://issues.jboss.org/browse/JBRULES-2995</a> reported against  <span><span style="padding:0px;display:block"><span title="5.2.0.CR1 ">5.2.0.CR1 and still open might be related.<br>


<font color="#888888">
<br>-W</font></span></span></span> <span><span style="padding:0px;display:block"><span title="5.2.0.CR1 "></span></span></span><span><span style="padding:0px;display:block"><span title="5.2.0.CR1 "></span></span></span><span><span style="padding:0px;display:block"><span title="5.2.0.CR1 "></span></span></span><br>


<div><div></div><div>
<br><div class="gmail_quote">2011/9/26 Edson Tirelli <span dir="ltr">&lt;<a href="mailto:ed.tirelli@gmail.com" target="_blank">ed.tirelli@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">



<div><br></div>   Thomas,<div><br></div><div>   Thanks for reporting. I will look into it. </div><div><br></div><div>   Did you open a JIRA yet? Let me know or I will do it otherwise.</div><div><br></div><div>   Edson<br>



<br>
<div class="gmail_quote">2011/9/26 Swindells, Thomas <span dir="ltr">&lt;<a href="mailto:TSwindells@nds.com" target="_blank">TSwindells@nds.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">










<div link="blue" vlink="purple" lang="EN-US">
<div>
<p class="MsoNormal">I’ve just tried upgrading from Drools 5.3.0-CR1 from the beta and I’ve hit a regression.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">JBoss seems to have been down for most of today so I haven’t been able to raise a Jira for it.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">In our model we have Facts which contain fields of java.lang.class, we then have a rule which checks that they aren’t null.<u></u><u></u></p>
<p class="MsoNormal">Eg<u></u><u></u></p>
<p class="MsoNormal">Fact { Class&lt;Object&gt; classField}<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Rule “xyz”<u></u><u></u></p>
<p class="MsoNormal">When<u></u><u></u></p>
<p class="MsoNormal">                Fact(classField != null)<u></u><u></u></p>
<p class="MsoNormal">Then<u></u><u></u></p>
<p class="MsoNormal">…<u></u><u></u></p>
<p class="MsoNormal">End<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">This is giving the following exception<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Caused by: java.lang.ClassCastException: org.drools.base.field.ObjectFieldImpl cannot be cast to org.drools.base.field.ClassFieldImpl<u></u><u></u></p>
<p class="MsoNormal">                at org.drools.base.evaluators.EqualityEvaluatorsDefinition$ClassEqualEvaluator.evaluate(EqualityEvaluatorsDefinition.java:1772)<u></u><u></u></p>
<p class="MsoNormal">                at org.drools.rule.LiteralRestriction.isAllowed(LiteralRestriction.java:87)<u></u><u></u></p>
<p class="MsoNormal">                at org.drools.rule.LiteralConstraint.isAllowed(LiteralConstraint.java:109)<u></u><u></u></p>
<p class="MsoNormal">                at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:130)<u></u><u></u></p>
<p class="MsoNormal">                at org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:451)<u></u><u></u></p>
<p class="MsoNormal">                at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:369)<u></u><u></u></p>
<p class="MsoNormal">                at org.drools.reteoo.AlphaNode.assertObject(AlphaNode.java:134)<u></u><u></u></p>
<p class="MsoNormal">                at org.drools.reteoo.CompositeObjectSinkAdapter.doPropagateAssertObject(CompositeObjectSinkAdapter.java:451)<u></u><u></u></p>
<p class="MsoNormal">                at org.drools.reteoo.CompositeObjectSinkAdapter.propagateAssertObject(CompositeObjectSinkAdapter.java:379)<u></u><u></u></p>
<p class="MsoNormal">                at org.drools.reteoo.ObjectTypeNode.assertObject(ObjectTypeNode.java:204)<u></u><u></u></p>
<p class="MsoNormal">                at org.drools.reteoo.EntryPointNode.assertObject(EntryPointNode.java:244)<u></u><u></u></p>
<p class="MsoNormal">                at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:330)<u></u><u></u></p>
<p class="MsoNormal">                at org.drools.common.NamedEntryPoint.insert(NamedEntryPoint.java:291)<u></u><u></u></p>
<p class="MsoNormal">                at org.drools.common.AbstractWorkingMemory.insert(AbstractWorkingMemory.java:882)<u></u><u></u></p>
<p class="MsoNormal">                at org.drools.base.DefaultKnowledgeHelper.insert(DefaultKnowledgeHelper.java:180)<u></u><u></u></p>
<p class="MsoNormal">                ... 149 more<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Wrapping the classField != null within an eval appears to be a work around.<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">This is in the suspect method:<u></u><u></u></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:Consolas;color:black">       
</span><b><span style="font-size:10pt;font-family:Consolas;color:rgb(127, 0, 85)">public</span></b><span style="font-size:10pt;font-family:Consolas;color:black">
</span><b><span style="font-size:10pt;font-family:Consolas;color:rgb(127, 0, 85)">boolean</span></b><span style="font-size:10pt;font-family:Consolas;color:black"> evaluate(InternalWorkingMemory workingMemory,</span><span style="font-size:10pt;font-family:Consolas"><u></u><u></u></span></p>





<p class="MsoNormal"><span style="font-size:10pt;font-family:Consolas;color:black">                               
</span><b><span style="font-size:10pt;font-family:Consolas;color:rgb(127, 0, 85)">final</span></b><span style="font-size:10pt;font-family:Consolas;color:black"> InternalReadAccessor extractor,</span><span style="font-size:10pt;font-family:Consolas"><u></u><u></u></span></p>





<p class="MsoNormal"><span style="font-size:10pt;font-family:Consolas;color:black">                               
</span><b><span style="font-size:10pt;font-family:Consolas;color:rgb(127, 0, 85)">final</span></b><span style="font-size:10pt;font-family:Consolas;color:black"> Object object1,
</span><b><span style="font-size:10pt;font-family:Consolas;color:rgb(127, 0, 85)">final</span></b><span style="font-size:10pt;font-family:Consolas;color:black"> FieldValue object2) {</span><span style="font-size:10pt;font-family:Consolas"><u></u><u></u></span></p>





<p class="MsoNormal"><span style="font-size:10pt;font-family:Consolas;color:black">            Object value1 = extractor.getValue( workingMemory, object1 );</span><span style="font-size:10pt;font-family:Consolas"><u></u><u></u></span></p>





<p class="MsoNormal"><span style="font-size:10pt;font-family:Consolas;color:black">            Object value2 = object2.getValue();</span><span style="font-size:10pt;font-family:Consolas"><u></u><u></u></span></p>


<p class="MsoNormal"><span style="font-size:10pt;font-family:Consolas;color:black">           
</span><b><span style="font-size:10pt;font-family:Consolas;color:rgb(127, 0, 85)">if</span></b><span style="font-size:10pt;font-family:Consolas;color:black"> ( value2 ==
</span><b><span style="font-size:10pt;font-family:Consolas;color:rgb(127, 0, 85)">null</span></b><span style="font-size:10pt;font-family:Consolas;color:black"> ) {</span><span style="font-size:10pt;font-family:Consolas"><u></u><u></u></span></p>





<p class="MsoNormal"><span style="font-size:10pt;font-family:Consolas;color:black">                ClassFieldImpl classField = (ClassFieldImpl) object2;</span><span style="font-size:10pt;font-family:Consolas"><u></u><u></u></span></p>





<p class="MsoNormal"><span style="font-size:10pt;font-family:Consolas;color:black">                value2 = classField.resolve( workingMemory );</span><span style="font-size:10pt;font-family:Consolas"><u></u><u></u></span></p>





<p class="MsoNormal"><span style="font-size:10pt;font-family:Consolas;color:black">            }</span><span style="font-size:10pt;font-family:Consolas"><u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:Consolas;color:black">           
</span><b><span style="font-size:10pt;font-family:Consolas;color:rgb(127, 0, 85)">return</span></b><span style="font-size:10pt;font-family:Consolas;color:black">
</span><i><span style="font-size:10pt;font-family:Consolas;color:rgb(0, 0, 192)">comparator</span></i><span style="font-size:10pt;font-family:Consolas;color:black">.equals( value1, value2 );</span><span style="font-size:10pt;font-family:Consolas"><u></u><u></u></span></p>





<p class="MsoNormal"><span style="font-size:10pt;font-family:Consolas;color:black">        }<u></u><u></u></span></p>
<p class="MsoNormal"><span style="font-size:10pt;font-family:Consolas;color:black"><u></u> <u></u></span></p>
<p class="MsoNormal">I think the if statement just needs an instanceof check as well or some other way to track the fact that null may be a valid value to be comparing with!<u></u><u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal"><u></u> <u></u></p>
<p class="MsoNormal">Thomas<u></u><u></u></p>
</div>
<br>
<hr>
<font face="Arial" size="1" color="Gray"><br>
**************************************************************************************<br>
This message is confidential and intended only for the addressee. If you have received this message in error, please immediately notify the <a href="mailto:postmaster@nds.com" target="_blank">postmaster@nds.com</a> and delete it from your system as well as any copies. The content of e-mails as well as traffic data
 may be monitored by NDS for employment and security purposes. To protect the environment please do not print this e-mail unless necessary.<br>
<br>
NDS Limited. Registered Office: One London Road, Staines, Middlesex, TW18 4EX, United Kingdom. A company registered in England and Wales. Registered no. 3080780. VAT no. GB 603 8808 40-00<br>
**************************************************************************************<br>
</font>
</div>

<br>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br></blockquote></div><font color="#888888"><br><br clear="all"><div><br></div>-- <br>  Edson Tirelli<br>  JBoss Drools Core Development<br>  JBoss by Red Hat @ <a href="http://www.jboss.com" target="_blank">www.jboss.com</a><br>




</font></div>
<br>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br></blockquote></div><br>
</div></div><br>_______________________________________________<br>
rules-users mailing list<br>
<a href="mailto:rules-users@lists.jboss.org" target="_blank">rules-users@lists.jboss.org</a><br>
<a href="https://lists.jboss.org/mailman/listinfo/rules-users" target="_blank">https://lists.jboss.org/mailman/listinfo/rules-users</a><br>
<br></blockquote></div><br><br clear="all"><div><br></div>-- <br>  Edson Tirelli<br>  JBoss Drools Core Development<br>  JBoss by Red Hat @ <a href="http://www.jboss.com" target="_blank">www.jboss.com</a><br>
</div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>  Edson Tirelli<br>  JBoss Drools Core Development<br>  JBoss by Red Hat @ <a href="http://www.jboss.com" target="_blank">www.jboss.com</a><br>
</div></div></div>
</blockquote></div><br><br clear="all"><div><br></div>-- <br>  Edson Tirelli<br>  JBoss Drools Core Development<br>  JBoss by Red Hat @ <a href="http://www.jboss.com">www.jboss.com</a><br>
</div></div>