diff --git a/impl/src/main/java/org/apache/directory/fortress/realm/J2eePolicyMgrImpl.java b/impl/src/main/java/org/apache/directory/fortress/realm/J2eePolicyMgrImpl.java
index 8fc5127..7407639 100644
--- a/impl/src/main/java/org/apache/directory/fortress/realm/J2eePolicyMgrImpl.java
+++ b/impl/src/main/java/org/apache/directory/fortress/realm/J2eePolicyMgrImpl.java
@@ -30,6 +30,7 @@
 import java.security.Principal;
 import java.util.Set;
 
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.directory.fortress.core.GlobalIds;
 import org.apache.directory.fortress.core.ReviewMgr;
 import org.apache.directory.fortress.core.ReviewMgrFactory;
@@ -40,7 +41,6 @@
 import org.apache.directory.fortress.core.model.User;
 import org.apache.directory.fortress.core.model.Role;
 import org.apache.directory.fortress.core.model.Session;
-import org.apache.directory.fortress.core.util.ObjUtil;
 import org.apache.directory.fortress.core.util.VUtil;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -244,7 +244,7 @@
         User user = new User( userId, password );
         
         // Load the passed in role list into list of User requested roles:
-        if ( ObjUtil.isNotNullOrEmpty( roles ) )
+        if ( CollectionUtils.isNotEmpty( roles ) )
         {
             for(String role : roles)
             {
diff --git a/impl/src/main/java/org/apache/directory/fortress/realm/tomcat/TcAccessMgrImpl.java b/impl/src/main/java/org/apache/directory/fortress/realm/tomcat/TcAccessMgrImpl.java
index 5b23a09..1fab25c 100644
--- a/impl/src/main/java/org/apache/directory/fortress/realm/tomcat/TcAccessMgrImpl.java
+++ b/impl/src/main/java/org/apache/directory/fortress/realm/tomcat/TcAccessMgrImpl.java
@@ -19,9 +19,9 @@
  */
 package org.apache.directory.fortress.realm.tomcat;
 
+import org.apache.commons.collections.CollectionUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.directory.fortress.core.SecurityException;
-import org.apache.directory.fortress.core.util.ObjUtil;
 import org.apache.directory.fortress.realm.J2eePolicyMgr;
 import org.apache.directory.fortress.realm.J2eePolicyMgrFactory;
 import org.apache.directory.fortress.realm.TcPrincipal;
@@ -87,7 +87,7 @@
         try
         {
             // If a 'default.roles' property set in config, user them
-            if ( ObjUtil.isNotNullOrEmpty( defaultRoles ) )
+            if ( CollectionUtils.isNotEmpty( defaultRoles ) )
             {
                 principal = j2eeMgr.createSession( userId, password, defaultRoles );
                 LOG.debug( "{}.authenticate userId [{}], with default roles[{}], successful", CLS_NM, userId, defaultRoles );
