| It looks like the BulkOperationCleanupAction.EntityCleanup constructor (called during the transaction) is calling cacheAccess.removeAll( session ); In the case of EntityReadWriteAccess this invokes the removeAll method inherited from AbstractCachedDomainDataAccess, which does: getStorageAccess().clearCache( session ); So the cache is cleared here before the transaction is committed. Also note that the release method in{{BulkOperationCleanupAction.EntityCleanup}} (called after the transaction is committed) calls cacheAccess.unlockRegion( cacheLock ); In the case of EntityReadWriteAccess this is a no-op. (One possible approach might be to change EntityReadWriteAccess so that removeAll is the no-op and unlockRegion performs the cache eviction.) |