This is an automated email from the ASF dual-hosted git repository. ilgrosso 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 8dfa6b78ff [SYNCOPE-1752] Handling fullPath updates for descendant Realms 8dfa6b78ff is described below commit 8dfa6b78ff6773a7c25842f5d7bcba0b2edfb7bc Author: Francesco Chicchiriccò <ilgro...@apache.org> AuthorDate: Thu Apr 20 18:05:26 2023 +0200 [SYNCOPE-1752] Handling fullPath updates for descendant Realms --- .../syncope/core/persistence/jpa/dao/JPARealmDAO.java | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-) diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARealmDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARealmDAO.java index 7ed9a96d0e..db8bb71b0b 100644 --- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARealmDAO.java +++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPARealmDAO.java @@ -286,8 +286,19 @@ public class JPARealmDAO extends AbstractDAO<Realm> implements RealmDAO { @Override public Realm save(final Realm realm) { - ((JPARealm) realm).setFullPath(buildFullPath(realm)); - return entityManager().merge(realm); + String fullPathBefore = realm.getFullPath(); + String fullPathAfter = buildFullPath(realm); + if (!fullPathAfter.equals(fullPathBefore)) { + ((JPARealm) realm).setFullPath(fullPathAfter); + } + + Realm merged = entityManager().merge(realm); + + if (!fullPathAfter.equals(fullPathBefore)) { + findChildren(realm).forEach(this::save); + } + + return merged; } @Override