You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@syncope.apache.org by il...@apache.org on 2023/05/05 10:41:23 UTC

[syncope] branch 2_1_X updated: [SYNCOPE-1755] Skip delete operation in case of NO_MATCH (#457)

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

ilgrosso pushed a commit to branch 2_1_X
in repository https://gitbox.apache.org/repos/asf/syncope.git


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

commit 1b94827b11c920a5bf5a99354b86fd81cca392d4
Author: Fabio Martelli <fm...@apache.org>
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   | 5 ++++-
 .../provisioning/java/pushpull/DefaultUserPullResultHandler.java     | 4 ++--
 2 files changed, 6 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 2188301bb8..0555329892 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
@@ -835,7 +835,10 @@ public abstract class AbstractPullResultHandler extends AbstractSyncopeResultHan
                 break;
 
             case DELETE:
-                profile.getResults().addAll(delete(delta, matches, provision));
+                // Skip DELETE in case of PullCorrelationRule.NO_MATCH
+                if (matches.get(0).getAny() != null) {
+                    profile.getResults().addAll(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 eed81e015f..c57126b530 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
@@ -136,11 +136,11 @@ public class DefaultUserPullResultHandler extends AbstractPullResultHandler impl
             final Provision provision) throws JobExecutionException {
 
         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;
             }
+            User user = (User) match.getAny();
 
             Optional<? extends LinkedAccount> found =
                     user.getLinkedAccount(provision.getResource().getKey(), delta.getUid().getUidValue());