This is an automated email from the ASF dual-hosted git repository.

fmartelli pushed a commit to branch 3_0_X
in repository https://gitbox.apache.org/repos/asf/syncope.git


The following commit(s) were added to refs/heads/3_0_X by this push:
     new f257752a0e [SYNCOPE-1755] Skip delete operation in case of NO_MATCH 
(#457)
f257752a0e is described below

commit f257752a0e5be2f1dd917263d24e4aa00d0ee2be
Author: Fabio Martelli <[email protected]>
AuthorDate: Fri May 5 12:28:21 2023 +0200

    [SYNCOPE-1755] Skip delete operation in case of NO_MATCH (#457)
---
 .../core/provisioning/java/pushpull/AbstractPullResultHandler.java    | 3 ++-
 .../core/provisioning/java/pushpull/DefaultUserPullResultHandler.java | 4 ++--
 2 files changed, 4 insertions(+), 3 deletions(-)

diff --git 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPullResultHandler.java
 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPullResultHandler.java
index 1f1199ddde..5768f3a103 100644
--- 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPullResultHandler.java
+++ 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/AbstractPullResultHandler.java
@@ -810,7 +810,8 @@ public abstract class AbstractPullResultHandler
                 break;
 
             case DELETE:
-                result = delete(delta, matches, provision);
+                // Skip DELETE in case of PullCorrelationRule.NO_MATCH
+                result = matches.get(0).getAny() == null ? Result.SUCCESS : 
delete(delta, matches, provision);
                 break;
 
             default:
diff --git 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultUserPullResultHandler.java
 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultUserPullResultHandler.java
index e0e49c54e4..80da10702b 100644
--- 
a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultUserPullResultHandler.java
+++ 
b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/pushpull/DefaultUserPullResultHandler.java
@@ -147,11 +147,11 @@ public class DefaultUserPullResultHandler extends 
AbstractPullResultHandler impl
 
         Result global = Result.SUCCESS;
         for (PullMatch match : matches) {
-            User user = (User) match.getAny();
-            if (user == null) {
+            if (match.getAny() == null) {
                 LOG.error("Could not find linking user, cannot process match 
{}", match);
                 return Result.FAILURE;
             }
+            User user = (User) match.getAny();
 
             Optional<? extends LinkedAccount> found =
                     
user.getLinkedAccount(profile.getTask().getResource().getKey(), 
delta.getUid().getUidValue());

Reply via email to