[
https://issues.jboss.org/browse/DROOLS-702?page=com.atlassian.jira.plugin...
]
Davide Sottara resolved DROOLS-702.
-----------------------------------
Assignee: Davide Sottara (was: Mark Proctor)
Resolution: Rejected
When a rule extends another, patterns will not be merged.
If you have:
{code} rule "parent" when $p : Person() then end {code}
and
{code} rule "child" when Person() then end {code}
the engine cannot safely infer that those two patterns should match the
SAME fact, so you end up with a cross-product of two patterns.
In your reproducer, the number of firings is consistent with the cross
product of the facts you inserted, so I don't see any bug here.
As an alternative to "from", you can use unification:
{code} $p := Person() {code}
in both rules (parent and child) to ensure the two patterns are linked.
Rule Inheritance fired the sub rule even the condition doen't
match
-------------------------------------------------------------------
Key: DROOLS-702
URL:
https://issues.jboss.org/browse/DROOLS-702
Project: Drools
Issue Type: Bug
Affects Versions: 6.1.0.Final
Environment: Windows, Java6.0.29
Reporter: Yacine Jaber
Assignee: Davide Sottara
Priority: Critical
Attachments: wod-drools-test.7z
You can find the attached a simple maven project that shows this error.
You can run ExampleDrools class as main java application.
The sub rules are fired even if the condition is not matched.
There are a work arround by using <from $fact> into a sub rule to avoid firing this
one.
This simple project shows the failed and work arround test.
--
This message was sent by Atlassian JIRA
(v6.3.11#6341)