(hit "send" to quickly, sorry: see the full email below)
On 17/10/25 17:13, Feder, Stephan wrote:
Hello,
In DefaultUserProvisioningManager, method
public Pair<UserUR, List<PropagationStatus>> update(
final UserUR userUR,
final boolean nullPriorityAsync,
final String updater,
final String context
)
is not annotated with
@Transactional(propagation = Propagation.REQUIRES_NEW)
although the corresponding methods in DefaultGroupProvisioningManager and
DefaultAnyObjectGroupProvisioningManager are. Is this intentional or an
oversight?
Hi,
if you look carefully, the update() method annotated with @Transactional [1] is
not the same as defined by DefaultGroupProvisioningManager or
DefaultAnyObjectGroupProvisioningManager since it is an implementation of [2].
You might find other update() methods in DefaultUserProvisioningManager [3][4].
The rule here is that the update() methods involved during Pull Task execution
require the annotation to work properly.
So, I confirm that was not an oversight, but and intended behavioral
difference: you might want to try removing the annotation and run the
integration test suite to feel the difference.
Regards.
[1]
https://github.com/apache/syncope/blob/4_0_X/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultUserProvisioningManager.java#L147
[2]
https://github.com/apache/syncope/blob/4_0_X/core/provisioning-api/src/main/java/org/apache/syncope/core/provisioning/api/UserProvisioningManager.java#L48
[3]
https://github.com/apache/syncope/blob/4_0_X/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultUserProvisioningManager.java#L113
[4]
https://github.com/apache/syncope/blob/4_0_X/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/DefaultUserProvisioningManager.java#L135
--
Francesco Chicchiriccò
Tirasa - Open Source Excellence
http://www.tirasa.net/
Member at The Apache Software Foundation
Syncope, Cocoon, Olingo, CXF, OpenJPA
https://about.me/ilgrosso