[jboss-jira] [JBoss JIRA] (JBRULES-3320) Stateful memory corruption for repetitive updates on the same facts

Edson Tirelli (JIRA) jira-events at lists.jboss.org
Mon Apr 30 12:27:18 EDT 2012


     [ https://issues.jboss.org/browse/JBRULES-3320?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Edson Tirelli closed JBRULES-3320.
----------------------------------


    
> 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: https://issues.jboss.org/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        


More information about the jboss-jira mailing list