[midPoint-git] [Evolveum/midpoint] 9dd53f: Improve RESTART conflict resolution action
mederly
noreply at github.com
Sat May 30 01:31:30 CEST 2026
Branch: refs/heads/fix/10714-4.8
Home: https://github.com/Evolveum/midpoint
Commit: 9dd53fbda3bf3e63cf47d63535805fe8b8ce9b70
https://github.com/Evolveum/midpoint/commit/9dd53fbda3bf3e63cf47d63535805fe8b8ce9b70
Author: Pavol Mederly <mederly at evolveum.com>
Date: 2026-05-30 (Sat, 30 May 2026)
Changed paths:
M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/Clockwork.java
M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/ClockworkConflictResolver.java
M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/FocusConflictResolutionContext.java
M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/LensContext.java
M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/LensElementContext.java
M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/LensFocusContext.java
M model/model-impl/src/main/java/com/evolveum/midpoint/model/impl/lens/LensProjectionContext.java
M model/model-intest/src/test/java/com/evolveum/midpoint/model/intest/TestRaceConditions.java
A model/model-intest/src/test/resources/contract/resource-dummy-conflict-1.xml
A model/model-intest/src/test/resources/contract/resource-dummy-conflict-2.xml
A model/model-intest/src/test/resources/contract/resource-dummy-conflict-3.xml
A model/model-intest/src/test/resources/contract/resource-dummy-conflict-4.xml
A model/model-intest/src/test/resources/contract/resource-dummy-conflict-abstract.xml
A model/model-intest/src/test/resources/contract/task-live-sync-conflict-1.xml
A model/model-intest/src/test/resources/contract/task-live-sync-conflict-2.xml
A model/model-intest/src/test/resources/contract/task-live-sync-conflict-3.xml
A model/model-intest/src/test/resources/contract/task-live-sync-conflict-4.xml
Log Message:
-----------
Improve RESTART conflict resolution action
What
1. When restarting the processing after focus update conflict is
detected, we now use a (simplified) copy of the original LensContext,
instead of trying to construct it from scratch.
2. If the operation cannot be succesfully completed after given #
of attempts, we throw an exception - instead of quietly continuing.
These changes are supported by TestRaceConditions#test150 that
checks that ALL conflicting operations are really executed.
Why
1. This is to preserve many settings and options that can be set on the
context by the caller. (Note that the current solution is quite
brittle, and should be improved later - see
FocusConflictResolutionContext#contextCopy).
2. It is to let the user clearly known that there is a problem.
Note that RECOMPUTE/RECONCILE action is completely different.
It leaves the object in more-or-less adequate state, so continuing
a good option there.
Related to: #10714 (duplicate assignments creation)
To unsubscribe from these emails, change your notification settings at https://github.com/Evolveum/midpoint/settings/notifications
More information about the midPoint-svn
mailing list