Opened 17 years ago
Closed 17 years ago
#712 closed defect (fixed)
DbControl.commit() may call onBeforeCommit() multiple times for the same item
Reported by: | Nicklas Nordborg | Owned by: | Nicklas Nordborg |
---|---|---|---|
Priority: | critical | Milestone: | BASE 2.4 |
Component: | core | Version: | |
Keywords: | Cc: |
Description
See ticket #711 for a symptom of this defect. The Experiment.onBeforeCommit() is called two times because the Transaction.onBeforeCommit() loads the experiment with DbControl.getItem() again.
I think the getItem() method only should add newly loaded items to the commit queue. As another precaution agains this the DbControl.commit() method should check if an item has already been processed earlier. This is easy since it keeps track of items that has been processed. Third, the Experiment.onBeforeCommit() should reset the byte count so it doesn't increase the byte count if it should be called twice for some other reason.
(In [3629]) Fixes #712, References #711