This is an automated email from the ASF dual-hosted git repository. ilgrosso pushed a commit to branch 4_0_X in repository https://gitbox.apache.org/repos/asf/syncope.git
commit 0ec35f363487f4e3932b6660f84cb354b4ae9384 Author: Francesco Chicchiriccò <[email protected]> AuthorDate: Sat Mar 28 07:38:58 2026 +0100 [SYNCOPE-1957] Avoid auxClasses changes double processing during update --- .../core/provisioning/java/data/AnyDataBinder.java | 24 +++------------------- 1 file changed, 3 insertions(+), 21 deletions(-) diff --git a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyDataBinder.java b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyDataBinder.java index 17f63a573d..4a9757b878 100644 --- a/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyDataBinder.java +++ b/core/provisioning-java/src/main/java/org/apache/syncope/core/provisioning/java/data/AnyDataBinder.java @@ -392,25 +392,7 @@ abstract class AnyDataBinder extends AttributableDataBinder { final AnyUtils anyUtils, final SyncopeClientCompositeException scce) { - // 1. anyTypeClasses - for (StringPatchItem patch : anyUR.getAuxClasses()) { - anyTypeClassDAO.findById(patch.getValue()).ifPresentOrElse( - auxClass -> { - switch (patch.getOperation()) { - case ADD_REPLACE: - any.add(auxClass); - break; - - case DELETE: - default: - any.getAuxClasses().remove(auxClass); - } - }, - () -> LOG.debug("Invalid {} {}, ignoring...", - AnyTypeClass.class.getSimpleName(), patch.getValue())); - } - - // 2. resources + // 1. resources for (StringPatchItem patch : anyUR.getResources()) { resourceDAO.findById(patch.getValue()).ifPresentOrElse( resource -> { @@ -431,7 +413,7 @@ abstract class AnyDataBinder extends AttributableDataBinder { Set<ExternalResource> resources = anyUtils.getAllResources(any); SyncopeClientException invalidValues = SyncopeClientException.build(ClientExceptionType.InvalidValues); - // 3. plain attributes + // 2. plain attributes anyUR.getPlainAttrs().stream().filter(patch -> patch.getAttr() != null). forEach(patch -> getPlainSchema(patch.getAttr().getSchema()).ifPresentOrElse( schema -> { @@ -464,7 +446,7 @@ abstract class AnyDataBinder extends AttributableDataBinder { scce.addException(reqValMissing); } - // relationships + // 3. relationships Set<Pair<String, String>> relationships = new HashSet<>(); for (RelationshipUR patch : anyUR.getRelationships().stream(). filter(patch -> patch.getRelationshipTO() != null).toList()) {
