Dan Haywood created ISIS-1100:
---------------------------------
Summary: Improve algorithm for flushing transaction
Key: ISIS-1100
URL: https://issues.apache.org/jira/browse/ISIS-1100
Project: Isis
Issue Type: Improvement
Components: Core
Affects Versions: core-1.8.0
Reporter: Dan Haywood
Assignee: Dan Haywood
Priority: Minor
Fix For: 1.9.0
The algorithm currently is to execute all queued PersistenceCommands
(corresponding to container.persist() or container.remove()) in order.
However, if the isis-module-audit module is configured, then, if an object
execute a transaction flush (as the result of obtaining a pre- value) this can
result in executing the same command all over.
In the particular case I investigated it resulted in double processing of a
delete command; on the second time around I got "cannot read from deleted
object" even though was ostensibly in the "preDelete" callback.
The required fix is a minor change to the way in which the command list are
queued to ensure that both (a) each command is executed precisely once while
(b) still allowing for additional commands to be added to the end of the
command list should that occur.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)