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)

Reply via email to