]
Geoffrey De Smet commented on JBRULES-3320:
-------------------------------------------
@guy: might you want to create a pull request to add that test on MiscTest or
TruthMaintenanceTest?
drools/drools-compiler/src/test/java/org/drools/integrationtests/TruthMaintenanceTest.java
Issues with pull requests get resolved much faster than other issues.
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
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: