Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
core-1.2.0
-
None
Description
In some situations it may be necessary to temporarily disable concurrency checking.
One example is when running integration test fixtures, where we simply want to delete all existing data, and don't care about any existing state.
However, another might be to get better control of callbacks from the JDO objectstore. For example, on the preDelete callback to the FrameworkSynchronizer, we've seen concurrency exceptions, but these might be as the a result of JDO bumping up the version of the adapter being deleted. Further research is required here. One possibility though is that the preDelete might require checking to be temporarily disabled for the thread, so that when the callback fires, it knows not to do the concurrency check.
This ticket is to provide this thread local capability. Analysis of the codebase shows that - when configured with Wicket and the JDO objectstore - the ConcurrencyException is thrown either via AdapterManager, or in the Framework Synchronizer. Both of these should honour the value of the thread local.