[
https://issues.redhat.com/browse/DROOLS-5916?page=com.atlassian.jira.plug...
]
Toshiya Kobayashi updated DROOLS-5916:
--------------------------------------
Description:
When a pattern inside "or" has a constraint which compares to a property of a
bind variable, LambdaConstraint.indexingDeclaration is wrongly replaced (during
LogicTransformer.transform()) so results in a wrong rule execution.
{noformat}
rule R
when
$p : Person(name == "Mark") or
( $mark : Person(name == "Mark")
and
$p : Person(age == $mark.age) )
$s: String(this == $p.name)
then
...
{noformat}
was:
When a pattern inside "or" has a constraint which compares to a property of a
bind variable, its betaIndex is wrongly processed (during LogicTransformer.transform()) so
results in a wrong rule execution.
{noformat}
rule R
when
$p : Person(name == "Mark") or
( $mark : Person(name == "Mark")
and
$p : Person(age == $mark.age) )
$s: String(this == $p.name)
then
...
{noformat}
Wrong BetaIndex with Or in executable-model
-------------------------------------------
Key: DROOLS-5916
URL:
https://issues.redhat.com/browse/DROOLS-5916
Project: Drools
Issue Type: Bug
Components: executable model
Affects Versions: 7.47.0.Final
Reporter: Toshiya Kobayashi
Assignee: Toshiya Kobayashi
Priority: Major
When a pattern inside "or" has a constraint which compares to a property of a
bind variable, LambdaConstraint.indexingDeclaration is wrongly replaced (during
LogicTransformer.transform()) so results in a wrong rule execution.
{noformat}
rule R
when
$p : Person(name == "Mark") or
( $mark : Person(name == "Mark")
and
$p : Person(age == $mark.age) )
$s: String(this == $p.name)
then
...
{noformat}
--
This message was sent by Atlassian Jira
(v7.13.8#713008)