[jboss-jira] [JBoss JIRA] Resolved: (JBRULES-2917) matching of field==v1 || field==v2 breaks when variable binding is added

Edson Tirelli (JIRA) jira-events at lists.jboss.org
Mon May 9 19:36:18 EDT 2011


     [ https://issues.jboss.org/browse/JBRULES-2917?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Edson Tirelli resolved JBRULES-2917.
------------------------------------

    Fix Version/s: 5.2.0.CR1
                       (was: 5.2.0.M1)
       Resolution: Done


There are 2 parts to this problem. 

1. The use of bindings and complex expressions is fixed now and presents no more problems, as can be seen in the test MiscTest.testBindingsWithOr().

2. MVEL still doesn't support .class literals, and while it is not changed to do that, the test as presented here will not work. I added the @Ignored MiscTest.testMVELClassReferences() to the codebase anyway. MVEL author is aware of the problem and promised to fix it soon. 

I will close this issue as there is nothing else to do in the Drools codebase. As soon as the literal problem is fixed in MVEL, the rule will work fine.




> matching of field==v1 || field==v2 breaks when variable binding is added
> ------------------------------------------------------------------------
>
>                 Key: JBRULES-2917
>                 URL: https://issues.jboss.org/browse/JBRULES-2917
>             Project: Drools
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: drools-core
>    Affects Versions: 5.2.0.M1
>            Reporter: Wolfgang Laun
>            Assignee: Edson Tirelli
>            Priority: Critical
>             Fix For: 5.2.0.CR1
>
>
> class Assignment { Class source, target; }
> The following rule fails to match when target == java.lang.Object.class
> rule ObjectIsAssignable
> when
>     Assignment( $t: target == (java.lang.Object.class) || target == source )
> then
> end
> The following rule fails to match when target == source
> rule ObjectIsAssignable
> when
>     Assignment( $t: target == source || target == (java.lang.Object.class) )
> then
> end
> The error does not occur if the binding ($t) is omitted.
> See Workaround.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira


More information about the jboss-jira mailing list