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(?, ?, 
?)");

Reply via email to