[
https://issues.jboss.org/browse/JBRULES-3392?page=com.atlassian.jira.plug...
]
Joerg Woehrle updated JBRULES-3392:
-----------------------------------
Attachment: DroolsTest.zip
Mario, I think I also stumbled upon this. Attached a test case where you can see that mvel
somehow does not respect the covariant return type. Even though DoubleHolder.getValue is
returning Double it complains about the BaseClass' CommonBase.getValue() returning an
Object. The test might not be the most sophisticated one but it shows how this problem
came up in our environment...
strict mode evaluation taking interface instead of class
--------------------------------------------------------
Key: JBRULES-3392
URL:
https://issues.jboss.org/browse/JBRULES-3392
Project: Drools
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: drools-compiler (expert)
Affects Versions: 5.3.1.Final
Environment: java 1.6.0_29 on windows 7
Reporter: Lubos Pechac
Assignee: Mario Fusco
Fix For: 5.3.2.Final, 5.4.0.CR1
Attachments: DroolsTest.zip
I am getting a compilation error with my drl, that worked in 5.0.1:
Unable to Analyse Expression las.id == $las.id:
[Error: unable to resolve method using strict-mode: piag.entityinterface.ILink.id()]
[Near : {... las.id == $las.id ....}]
^
[Line: 42, Column: 30] : [Rule name='rule1']
here's the rule:
rule "rule1"
when
$las : Link(name == "GA1")
$pi : PayItem(las.id == $las.id, amount > 0, comparisonType == "ECHT")
then ...
interface ILink is empty:
public interface ILink { }
class Link extends ILink adds a few attributes including id, name, amount,
comparisonType...
interface IPayItem has this getter:
public ILink getLas();
class PayItem overrides this getter:
@Override
public Link getLas() {
return this.las;
}
It seems like drools is incorrectly treating $pi as IPayItem. IPayItem.getLas() returns
ILink which does not have method id(), as the message says. But PayItem.getLas() returns
Link which does have attribute id.
I didn't specify anywhere that $pi is IPayItem so why does it do this?
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators:
https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see:
http://www.atlassian.com/software/jira