Bug 1328380 - Node Hashing with type mismatch condition results in silent misfiring
Summary: Node Hashing with type mismatch condition results in silent misfiring
Keywords:
Status: CLOSED EOL
Alias: None
Product: JBoss BRMS Platform 6
Classification: Retired
Component: BRE
Version: 6.2.0
Hardware: Unspecified
OS: Unspecified
high
high
Target Milestone: ---
: ---
Assignee: Mario Fusco
QA Contact: Marek Winkler
URL:
Whiteboard:
Depends On:
Blocks: 1329725 1329771
TreeView+ depends on / blocked
 
Reported: 2016-04-19 09:10 UTC by Toshiya Kobayashi
Modified: 2020-03-27 19:09 UTC (History)
3 users (show)

Fixed In Version:
Doc Type: Bug Fix
Doc Text:
Clone Of:
: 1329725 1329771 (view as bug list)
Environment:
Last Closed: 2020-03-27 19:09:29 UTC
Type: Bug


Attachments (Terms of Use)

Description Toshiya Kobayashi 2016-04-19 09:10:04 UTC
Description of problem:

If you have 2 rules with type mismatch condition (Person.status is String),

=====
rule "rule1"
    when
        Person(status == 1)
    then
        System.out.println( "rule1" );
end

rule "rule2"
    when
        Person(status == 2)
    then
        System.out.println( "rule2" );
end
=====

Person with status "1" hits "rule1" thanks to Mvel coercion.

=====
Person p = new Person();
p.setStatus("1");
kSession.insert(p);
kSession.fireAllRules();
=====

However, if you have 3 rules,

=====
rule "rule1"
    when
        Person(status == 1)
    then
        System.out.println( "rule1" );
end

rule "rule2"
    when
        Person(status == 2)
    then
        System.out.println( "rule2" );
end

rule "rule3"
    when
        Person(status == 3)
    then
        System.out.println( "rule3" );
end
=====

Person with status "1" doesn't hit "rule1".


Steps to Reproduce:
1. I'm going to send a test case PR.

Actual results:

"rule1" is not fired.

Expected results:

"rule1" is fired

or

give an error or warning.

Comment 2 Toshiya Kobayashi 2016-04-19 09:17:47 UTC
Sent a test case PR:
https://github.com/droolsjbpm/drools/pull/745

Comment 3 Mario Fusco 2016-04-20 13:26:28 UTC
Fixed by https://github.com/droolsjbpm/drools/compare/5801072...434c6e2

Comment 7 Mario Fusco 2016-04-26 08:18:55 UTC
Cherry-picked to branch 6.4.x with https://github.com/droolsjbpm/drools/compare/d2391b0...58ddfd1


Note You need to log in before you can comment on or make changes to this bug.