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 <[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   | 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());

Reply via email to