Repository: syncope Updated Branches: refs/heads/2_0_X cb134c7bb -> 33fda85dc
fix for paged dynamic membership loading Project: http://git-wip-us.apache.org/repos/asf/syncope/repo Commit: http://git-wip-us.apache.org/repos/asf/syncope/commit/33fda85d Tree: http://git-wip-us.apache.org/repos/asf/syncope/tree/33fda85d Diff: http://git-wip-us.apache.org/repos/asf/syncope/diff/33fda85d Branch: refs/heads/2_0_X Commit: 33fda85dc6992ba1c63299f9a1882b8ba10a743a Parents: cb134c7 Author: fmartelli <[email protected]> Authored: Wed Dec 20 09:32:26 2017 +0100 Committer: fmartelli <[email protected]> Committed: Wed Dec 20 09:32:26 2017 +0100 ---------------------------------------------------------------------- .../syncope/core/persistence/jpa/dao/JPAGroupDAO.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/syncope/blob/33fda85d/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java ---------------------------------------------------------------------- diff --git a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java index 03c1219..23c7af6 100644 --- a/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java +++ b/core/persistence-jpa/src/main/java/org/apache/syncope/core/persistence/jpa/dao/JPAGroupDAO.java @@ -298,7 +298,9 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO { // refresh dynamic memberships if (merged.getUDynMembership() != null) { - for (int page = 1; page <= (countUDynMembers(group) / AnyDAO.DEFAULT_PAGE_SIZE) + 1; page++) { + clearUDynMembers(merged); + int count = countUDynMembers(group); + for (int page = 1; page <= (count / AnyDAO.DEFAULT_PAGE_SIZE) + 1; page++) { List<User> matching = searchDAO().search( Collections.<String>singleton(merged.getRealm().getFullPath()), buildDynMembershipCond(merged.getUDynMembership().getFIQLCond(), merged.getRealm()), @@ -307,8 +309,6 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO { Collections.<OrderByClause>emptyList(), AnyTypeKind.USER); - clearUDynMembers(merged); - for (User user : matching) { Query insert = entityManager().createNativeQuery("INSERT INTO " + UDYNMEMB_TABLE + " VALUES(?, ?)"); insert.setParameter(1, user.getKey()); @@ -320,7 +320,9 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO { } } for (ADynGroupMembership memb : merged.getADynMemberships()) { - for (int page = 1; page <= (countADynMembers(group) / AnyDAO.DEFAULT_PAGE_SIZE) + 1; page++) { + clearADynMembers(merged); + int count = countADynMembers(group); + for (int page = 1; page <= (count / AnyDAO.DEFAULT_PAGE_SIZE) + 1; page++) { List<AnyObject> matching = searchDAO().search( Collections.<String>singleton(merged.getRealm().getFullPath()), buildDynMembershipCond(memb.getFIQLCond(), merged.getRealm()), @@ -329,8 +331,6 @@ public class JPAGroupDAO extends AbstractAnyDAO<Group> implements GroupDAO { Collections.<OrderByClause>emptyList(), AnyTypeKind.ANY_OBJECT); - clearADynMembers(merged); - for (AnyObject anyObject : matching) { Query insert = entityManager().createNativeQuery( "INSERT INTO " + ADYNMEMB_TABLE + " VALUES(?, ?, ?)");
