[
https://issues.apache.org/jira/browse/ISIS-1100?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14371505#comment-14371505
]
ASF subversion and git services commented on ISIS-1100:
-------------------------------------------------------
Commit 3183d013d3d756c098ff96ace23951336e12aad6 in isis's branch
refs/heads/master from [~danhaywood]
[ https://git-wip-us.apache.org/repos/asf?p=isis.git;h=3183d01 ]
ISIS-1100: improving algorithm for preCommit capture of audit pre/post values;
making the refactored algorithm for flushing persistence commands more
efficient.
in addition:
- updating comments only in DataNucleusObjectStore
> Improve algorithm for flushing transaction and similarly in capturing post
> values (for auditing) on transaction preCommit
> -------------------------------------------------------------------------------------------------------------------------
>
> 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.
> ~~~~
> There is also a very similar issue in the way in which the
> changedObjectProperties are iterated over during preCommit; it's possible
> that this collection might be added to while obtaining the post values of all
> objects.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)