Author: bdaw
Date: 2007-02-19 08:37:02 -0500 (Mon, 19 Feb 2007)
New Revision: 6333
Modified:
trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPStaticGroupMembershipModuleImpl.java
trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPStaticRoleMembershipModuleImpl.java
trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPUserModuleImpl.java
trunk/identity/src/main/org/jboss/portal/test/identity/IdentityTest.java
trunk/identity/src/main/org/jboss/portal/test/identity/db/DBIdentityTestCase.java
trunk/identity/src/main/org/jboss/portal/test/identity/ldap/LDAPIdentityTestCase.java
trunk/identity/src/main/org/jboss/portal/test/identity/ldap/LDAPSimpleUserModuleTestCase.java
Log:
- correct bug in offset/limit searches
Modified:
trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPStaticGroupMembershipModuleImpl.java
===================================================================
---
trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPStaticGroupMembershipModuleImpl.java 2007-02-19
12:47:47 UTC (rev 6332)
+++
trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPStaticGroupMembershipModuleImpl.java 2007-02-19
13:37:02 UTC (rev 6333)
@@ -42,6 +42,7 @@
import java.util.List;
import java.util.Iterator;
import java.util.LinkedList;
+import java.util.Collections;
/**
* @author <a href="mailto:boleslaw.dawidowicz@jboss.org">Boleslaw
Dawidowicz</a>
@@ -398,7 +399,31 @@
//if exception was thrown - propagate it, if not....
if (role != null)
{
- return getUsers(role, userNameFilter);
+ Set users = getUsers(role, userNameFilter);
+
+
+
+ int size = users.size();
+
+ if (offset == 0 && size <= limit)
+ {
+ return users;
+ }
+
+ Collections.sort(Tools.toList(users.iterator()), new
LDAPUserImpl.LDAPUserComparator());
+
+ if (offset + limit <= size)
+ {
+ return Tools.toSet(Tools.toList(users.iterator()).subList(offset, offset +
limit).iterator());
+ }
+ else if (offset >= size)
+ {
+ return new HashSet();
+ }
+
+
+ return Tools.toSet(Tools.toList(users.iterator()).subList(offset,
size).iterator());
+
}
else
{
Modified:
trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPStaticRoleMembershipModuleImpl.java
===================================================================
---
trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPStaticRoleMembershipModuleImpl.java 2007-02-19
12:47:47 UTC (rev 6332)
+++
trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPStaticRoleMembershipModuleImpl.java 2007-02-19
13:37:02 UTC (rev 6333)
@@ -41,6 +41,7 @@
import java.util.List;
import java.util.Iterator;
import java.util.LinkedList;
+import java.util.Collections;
/**
* @author <a href="mailto:boleslaw.dawidowicz@jboss.org">Boleslaw
Dawidowicz</a>
@@ -387,7 +388,30 @@
//if exception was thrown - propagate it, if not....
if (role != null)
{
- return getUsers(role, userNameFilter);
+ Set users = getUsers(role, userNameFilter);
+
+
+
+ int size = users.size();
+
+ if (offset == 0 && size <= limit)
+ {
+ return users;
+ }
+
+ Collections.sort(Tools.toList(users.iterator()), new
LDAPUserImpl.LDAPUserComparator());
+
+ if (offset + limit <= size)
+ {
+ return Tools.toSet(Tools.toList(users.iterator()).subList(offset, offset +
limit).iterator());
+ }
+ else if (offset >= size)
+ {
+ return new HashSet();
+ }
+
+
+ return Tools.toSet(Tools.toList(users.iterator()).subList(offset,
size).iterator());
}
else
{
Modified: trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPUserModuleImpl.java
===================================================================
---
trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPUserModuleImpl.java 2007-02-19
12:47:47 UTC (rev 6332)
+++
trunk/identity/src/main/org/jboss/portal/identity/ldap/LDAPUserModuleImpl.java 2007-02-19
13:37:02 UTC (rev 6333)
@@ -293,25 +293,31 @@
int size = uf.size();
- if (offset == 0 && size <= (offset+limit))
+ if (offset == 0 && size <= limit)
{
return Tools.toSet(uf.iterator());
}
+
+ Collections.sort(uf, new LDAPUserImpl.LDAPUserComparator());
+
+ if (offset + limit <= size)
+ {
+ return Tools.toSet(uf.subList(offset, offset + limit).iterator());
+ }
else if (offset >= size)
{
return new HashSet();
}
- else if (offset + limit > size)
- {
- limit = size;
- }
- Collections.sort(uf, new LDAPUserImpl.LDAPUserComparator());
+ return Tools.toSet(uf.subList(offset, size).iterator());
- return Tools.toSet(uf.subList(offset, offset + limit).iterator());
+ //should not happen
+
+
+
}
public int getUserCount() throws IdentityException, IllegalArgumentException
Modified: trunk/identity/src/main/org/jboss/portal/test/identity/IdentityTest.java
===================================================================
--- trunk/identity/src/main/org/jboss/portal/test/identity/IdentityTest.java 2007-02-19
12:47:47 UTC (rev 6332)
+++ trunk/identity/src/main/org/jboss/portal/test/identity/IdentityTest.java 2007-02-19
13:37:02 UTC (rev 6333)
@@ -501,8 +501,78 @@
ctx.commit();
}
+ public void testFindUsers2() throws Exception
+ {
+ ctx.begin();
+ userModule.createUser("test1", "test1");
+ userModule.createUser("test2", "test2");
+ userModule.createUser("test3", "test3");
+ userModule.createUser("test4", "test4");
+ userModule.createUser("test5", "test5");
+ userModule.createUser("test6", "test6");
+ userModule.createUser("test7", "testx");
+ userModule.createUser("test8", "testx");
+
+ assertEquals(11, userModule.getUserCount());
+
+ Set users = userModule.findUsers(0, 4);
+
+ assertEquals(4, users.size());
+
+ users = userModule.findUsers(0, 10);
+
+ assertEquals(10, users.size());
+
+ users = userModule.findUsers(10,1);
+
+ assertEquals(1, users.size());
+
+ users = userModule.findUsers(10,20);
+
+ assertEquals(1, users.size());
+
+ userModule.createUser("test9", "testx");
+ userModule.createUser("test10", "testx");
+ userModule.createUser("test11", "testx");
+ userModule.createUser("test12", "testx");
+ userModule.createUser("test13", "testx");
+ userModule.createUser("test14", "testx");
+ userModule.createUser("test15", "testx");
+ userModule.createUser("test16", "testx");
+ userModule.createUser("test17", "testx");
+ userModule.createUser("test18", "testx");
+ userModule.createUser("test19", "testx");
+ userModule.createUser("test20", "testx");
+ userModule.createUser("test21", "testx");
+ userModule.createUser("test22", "testx");
+ userModule.createUser("test23", "testx");
+
+ assertEquals(26, userModule.getUserCount());
+
+ users = userModule.findUsers(10, 10);
+
+ assertEquals(10, users.size());
+
+ users = userModule.findUsers(20, 1);
+
+ assertEquals(1, users.size());
+
+ users = userModule.findUsers(20, 6);
+
+ assertEquals(6, users.size());
+
+ users = userModule.findUsers(20, 10);
+
+ assertEquals(6, users.size());
+ ctx.commit();
+ }
+
+
+
+
+
//
public void populate() throws Exception
{
Modified:
trunk/identity/src/main/org/jboss/portal/test/identity/db/DBIdentityTestCase.java
===================================================================
---
trunk/identity/src/main/org/jboss/portal/test/identity/db/DBIdentityTestCase.java 2007-02-19
12:47:47 UTC (rev 6332)
+++
trunk/identity/src/main/org/jboss/portal/test/identity/db/DBIdentityTestCase.java 2007-02-19
13:37:02 UTC (rev 6333)
@@ -124,6 +124,11 @@
utc.testFindUsers();
}
+ public void testFindUsers2() throws Exception
+ {
+ utc.testFindUsers2();
+ }
+
public void testCreateUser() throws Exception
{
utc.testCreateUser();
Modified:
trunk/identity/src/main/org/jboss/portal/test/identity/ldap/LDAPIdentityTestCase.java
===================================================================
---
trunk/identity/src/main/org/jboss/portal/test/identity/ldap/LDAPIdentityTestCase.java 2007-02-19
12:47:47 UTC (rev 6332)
+++
trunk/identity/src/main/org/jboss/portal/test/identity/ldap/LDAPIdentityTestCase.java 2007-02-19
13:37:02 UTC (rev 6333)
@@ -123,6 +123,11 @@
utc.testFindUsers();
}
+ public void testFindUsers2() throws Exception
+ {
+ utc.testFindUsers2();
+ }
+
public void testCreateUser() throws Exception
{
utc.testCreateUser();
Modified:
trunk/identity/src/main/org/jboss/portal/test/identity/ldap/LDAPSimpleUserModuleTestCase.java
===================================================================
---
trunk/identity/src/main/org/jboss/portal/test/identity/ldap/LDAPSimpleUserModuleTestCase.java 2007-02-19
12:47:47 UTC (rev 6332)
+++
trunk/identity/src/main/org/jboss/portal/test/identity/ldap/LDAPSimpleUserModuleTestCase.java 2007-02-19
13:37:02 UTC (rev 6333)
@@ -179,4 +179,7 @@
assertTrue(u.validatePassword("1testPassword1"));
}
+
+
+
}