]
Mario Fusco resolved DROOLS-2695.
---------------------------------
Resolution: Done
Fixed by
Beta node indexes don't support type coercion
---------------------------------------------
Key: DROOLS-2695
URL:
https://issues.jboss.org/browse/DROOLS-2695
Project: Drools
Issue Type: Bug
Components: core engine
Reporter: Mario Fusco
Assignee: Mario Fusco
When there is a type mismatch (e.g. String vs Integer) in a constraint, usually a type is
coerced and a rule is fired.
{code}
rule "R2"
when
$f : MyFactB( strData == 20 )
then
System.out.println( "R2 fired : $f = " + $f );
end
{code}
As far as I investigate, in case of AlphaNode, MVEL does the coercion. Also AlphaNode
hashing does the coercion
(
https://github.com/kiegroup/drools/blob/7.5.0.Final/drools-core/src/main/...).
However, in case of JoinNode, it doesn't coerce so doesn't fire.
{code}
rule "R1"
when
MyFactA( $i : intData )
$f : MyFactB( strData == $i )
then
System.out.println( "R1 fired : $f = " + $f );
end
{code}