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