]
Edson Tirelli resolved JBRULES-3320.
------------------------------------
Fix Version/s: 5.4.0.Final
5.5.0.Beta1
Resolution: Rejected
Stateful memory corruption for repetitive updates on the same facts
-------------------------------------------------------------------
Key: JBRULES-3320
URL:
https://issues.jboss.org/browse/JBRULES-3320
Project: Drools
Issue Type: Bug
Security Level: Public(Everyone can see)
Components: drools-core (expert)
Affects Versions: 5.3.0.Final, 5.4.0.Beta1
Environment: Windows 7 64, Java HotSpot(TM) 64-Bit Server 1.6.0_25
Reporter: guy ramirez
Assignee: Edson Tirelli
Fix For: 5.4.0.Final, 5.5.0.Beta1
Multiple updates to the same fact does not yield the expected results (similar to
JBRULES-2809 issue)
The provided UT (see 'steps to reproduce' section) makes use of 2 fact instances:
one IntervalRequirement (never updated) and one ShiftAssignment.
The same ShiftAssignment will be updated multiple times to cover one or more
IntervalRequirement(s).
Here is the output of the test without executing the assertions. For each update I have
added comments explaining what the expected results should be:
Update #1: ShiftAssignment set from 100 to 101
intervalRequirementPartiallyCovered -> IntervalRequirement: interval: 100,
staffingRequired: 2 covered by 1 ShiftAssignment(s)
intervalRequirementNotCovered -> IntervalRequirement: interval: 103, staffingRequired:
2
intervalRequirementNotCovered -> IntervalRequirement: interval: 102, staffingRequired:
2
intervalRequirementNotCovered -> IntervalRequirement: interval: 101, staffingRequired:
2
COMMENTS: correct
Update #2:ShiftAssignment set from 100 to 103
intervalRequirementPartiallyCovered -> IntervalRequirement: interval: 101,
staffingRequired: 2 covered by 1 ShiftAssignment(s)
intervalRequirementPartiallyCovered -> IntervalRequirement: interval: 102,
staffingRequired: 2 covered by 1 ShiftAssignment(s)
intervalRequirementPartiallyCovered -> IntervalRequirement: interval: 100,
staffingRequired: 2 covered by 1 ShiftAssignment(s)
COMMENTS: intervalRequirementNotCovered rule should have fired for interval 103
Update #3:ShiftAssignment set from 100 to 102
intervalRequirementNotCovered -> IntervalRequirement: interval: 102, staffingRequired:
2
intervalRequirementPartiallyCovered -> IntervalRequirement: interval: 101,
staffingRequired: 2 covered by 1 ShiftAssignment(s)
intervalRequirementPartiallyCovered -> IntervalRequirement: interval: 100,
staffingRequired: 2 covered by 1 ShiftAssignment(s)
COMMENT: intervalRequirementNotCovered rule should have fired for interval 103
Update #4:ShiftAssignment set from 100 to 104
intervalRequirementPartiallyCovered -> IntervalRequirement: interval: 102,
staffingRequired: 2 covered by 1 ShiftAssignment(s)
intervalRequirementPartiallyCovered -> IntervalRequirement: interval: 103,
staffingRequired: 2 covered by 1 ShiftAssignment(s)
intervalRequirementPartiallyCovered -> IntervalRequirement: interval: 101,
staffingRequired: 2 covered by 1 ShiftAssignment(s)
intervalRequirementPartiallyCovered -> IntervalRequirement: interval: 100,
staffingRequired: 2 covered by 1 ShiftAssignment(s)
COMMENT: correct
Update #5:ShiftAssignment set from 100 to 101
intervalRequirementTotallyCovered -> IntervalRequirement: interval: 100,
staffingRequired: 2 covered by 2 ShiftAssignment(s)
intervalRequirementNotCovered -> IntervalRequirement: interval: 103, staffingRequired:
2
intervalRequirementNotCovered -> IntervalRequirement: interval: 102, staffingRequired:
2
intervalRequirementNotCovered -> IntervalRequirement: interval: 101, staffingRequired:
2
COMMENT: results should have been identical of that of update #1:
intervalRequirementPartiallyCovered should have fired for interval 100, instead
intervalRequirementTotallyCovered rule fired.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: