Merged trunk

git-svn-id: https://svn.apache.org/repos/asf/directory/apacheds/branches/xdbm-refactoring@946344 13f79535-47bb-0310-9956-ffa450edef68
diff --git a/core-annotations/src/main/java/org/apache/directory/server/core/factory/DefaultDirectoryServiceFactory.java b/core-annotations/src/main/java/org/apache/directory/server/core/factory/DefaultDirectoryServiceFactory.java
index d8ed690..933bbe5 100644
--- a/core-annotations/src/main/java/org/apache/directory/server/core/factory/DefaultDirectoryServiceFactory.java
+++ b/core-annotations/src/main/java/org/apache/directory/server/core/factory/DefaultDirectoryServiceFactory.java
@@ -37,7 +37,7 @@
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
 import org.apache.directory.shared.ldap.schema.registries.SchemaLoader;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -168,7 +168,7 @@
 
         if ( errors.size() != 0 )
         {
-            throw new Exception( I18n.err( I18n.ERR_317, ExceptionUtils.printErrors( errors ) ) );
+            throw new Exception( I18n.err( I18n.ERR_317, LdapExceptionUtils.printErrors( errors ) ) );
         }
     }
 
diff --git a/core-api/src/main/java/org/apache/directory/server/core/interceptor/context/SearchingOperationContext.java b/core-api/src/main/java/org/apache/directory/server/core/interceptor/context/SearchingOperationContext.java
index bcdd149..72d3a21 100644
--- a/core-api/src/main/java/org/apache/directory/server/core/interceptor/context/SearchingOperationContext.java
+++ b/core-api/src/main/java/org/apache/directory/server/core/interceptor/context/SearchingOperationContext.java
@@ -29,6 +29,7 @@
 import javax.naming.NamingException;
 import javax.naming.directory.SearchControls;
 
+import org.apache.commons.lang.ArrayUtils;
 import org.apache.directory.server.core.CoreSession;
 import org.apache.directory.shared.ldap.constants.SchemaConstants;
 import org.apache.directory.shared.ldap.exception.LdapNoSuchAttributeException;
@@ -38,7 +39,6 @@
 import org.apache.directory.shared.ldap.schema.AttributeType;
 import org.apache.directory.shared.ldap.schema.AttributeTypeOptions;
 import org.apache.directory.shared.ldap.schema.SchemaUtils;
-import org.apache.directory.shared.ldap.util.ArrayUtils;
 import org.apache.directory.shared.ldap.util.StringTools;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/core-api/src/test/java/org/apache/directory/server/core/entry/SchemaAwareEntryAttributeTest.java b/core-api/src/test/java/org/apache/directory/server/core/entry/SchemaAwareEntryAttributeTest.java
index 6e7f818..44db283 100644
--- a/core-api/src/test/java/org/apache/directory/server/core/entry/SchemaAwareEntryAttributeTest.java
+++ b/core-api/src/test/java/org/apache/directory/server/core/entry/SchemaAwareEntryAttributeTest.java
@@ -56,7 +56,7 @@
 import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor;
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.apache.directory.shared.ldap.util.StringTools;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -132,7 +132,7 @@
         {
             // We have inconsistencies : log them and exit.
             throw new RuntimeException( "Inconsistent schemas : " + 
-                ExceptionUtils.printErrors( errors ) );
+                LdapExceptionUtils.printErrors( errors ) );
         }
         
         atCN = schemaManager.lookupAttributeTypeRegistry( "cn" );
diff --git a/core-api/src/test/java/org/apache/directory/server/core/entry/SchemaAwareEntryTest.java b/core-api/src/test/java/org/apache/directory/server/core/entry/SchemaAwareEntryTest.java
index 9e82c3c..a6b1145 100644
--- a/core-api/src/test/java/org/apache/directory/server/core/entry/SchemaAwareEntryTest.java
+++ b/core-api/src/test/java/org/apache/directory/server/core/entry/SchemaAwareEntryTest.java
@@ -58,7 +58,7 @@
 import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor;
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.apache.directory.shared.ldap.util.StringTools;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -118,7 +118,7 @@
         
         if ( errors.size() != 0 )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( errors ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( errors ) );
         }
 
         atObjectClass = schemaManager.lookupAttributeTypeRegistry( "objectClass" );
diff --git a/core-api/src/test/java/org/apache/directory/server/core/entry/SchemaAwareModificationTest.java b/core-api/src/test/java/org/apache/directory/server/core/entry/SchemaAwareModificationTest.java
index 9f13503..270ece0 100644
--- a/core-api/src/test/java/org/apache/directory/server/core/entry/SchemaAwareModificationTest.java
+++ b/core-api/src/test/java/org/apache/directory/server/core/entry/SchemaAwareModificationTest.java
@@ -46,7 +46,7 @@
 import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor;
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -170,7 +170,7 @@
         
         if ( errors.size() != 0 )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( errors ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( errors ) );
         }
 
         atCN = schemaManager.lookupAttributeTypeRegistry( "cn" );
diff --git a/core-avl/src/test/java/org/apache/directory/server/core/avltree/DefaultMarshallerTest.java b/core-avl/src/test/java/org/apache/directory/server/core/avltree/DefaultMarshallerTest.java
index 1eb0186..6bdd070 100644
--- a/core-avl/src/test/java/org/apache/directory/server/core/avltree/DefaultMarshallerTest.java
+++ b/core-avl/src/test/java/org/apache/directory/server/core/avltree/DefaultMarshallerTest.java
@@ -20,8 +20,8 @@
 package org.apache.directory.server.core.avltree;
 
 
+import org.apache.commons.lang.ArrayUtils;
 import org.junit.Test;
-import org.apache.directory.shared.ldap.util.ArrayUtils;
 import static junit.framework.Assert.assertEquals;
 import static junit.framework.Assert.assertNotNull;
 import static junit.framework.Assert.assertTrue;
diff --git a/core-integ/src/test/java/org/apache/directory/server/core/authn/SimpleAuthenticationIT.java b/core-integ/src/test/java/org/apache/directory/server/core/authn/SimpleAuthenticationIT.java
index 15f1e82..7dd764f 100644
--- a/core-integ/src/test/java/org/apache/directory/server/core/authn/SimpleAuthenticationIT.java
+++ b/core-integ/src/test/java/org/apache/directory/server/core/authn/SimpleAuthenticationIT.java
@@ -27,6 +27,7 @@
 import static org.junit.Assert.assertNotNull;
 import static org.junit.Assert.assertTrue;
 
+import org.apache.commons.lang.ArrayUtils;
 import org.apache.directory.ldap.client.api.LdapConnection;
 import org.apache.directory.ldap.client.api.message.ModifyRequest;
 import org.apache.directory.ldap.client.api.message.SearchResultEntry;
@@ -37,7 +38,6 @@
 import org.apache.directory.shared.ldap.entry.Entry;
 import org.apache.directory.shared.ldap.entry.EntryAttribute;
 import org.apache.directory.shared.ldap.name.DN;
-import org.apache.directory.shared.ldap.util.ArrayUtils;
 import org.apache.directory.shared.ldap.util.StringTools;
 import org.junit.After;
 import org.junit.Test;
diff --git a/core-integ/src/test/java/org/apache/directory/server/core/authz/AuthorizationServiceAsAdminIT.java b/core-integ/src/test/java/org/apache/directory/server/core/authz/AuthorizationServiceAsAdminIT.java
index d39d9a7..03afd5c 100644
--- a/core-integ/src/test/java/org/apache/directory/server/core/authz/AuthorizationServiceAsAdminIT.java
+++ b/core-integ/src/test/java/org/apache/directory/server/core/authz/AuthorizationServiceAsAdminIT.java
@@ -27,6 +27,7 @@
 
 import java.util.HashSet;
 
+import org.apache.commons.lang.ArrayUtils;
 import org.apache.directory.ldap.client.api.LdapConnection;
 import org.apache.directory.ldap.client.api.message.DeleteResponse;
 import org.apache.directory.ldap.client.api.message.ModifyDnResponse;
@@ -43,7 +44,6 @@
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.name.DN;
 import org.apache.directory.shared.ldap.name.RDN;
-import org.apache.directory.shared.ldap.util.ArrayUtils;
 import org.apache.directory.shared.ldap.util.StringTools;
 import org.junit.After;
 import org.junit.Before;
diff --git a/core-integ/src/test/java/org/apache/directory/server/core/jndi/ObjStateFactoryIT.java b/core-integ/src/test/java/org/apache/directory/server/core/jndi/ObjStateFactoryIT.java
index b9fc988..dde19de 100644
--- a/core-integ/src/test/java/org/apache/directory/server/core/jndi/ObjStateFactoryIT.java
+++ b/core-integ/src/test/java/org/apache/directory/server/core/jndi/ObjStateFactoryIT.java
@@ -40,11 +40,11 @@
 import javax.naming.spi.DirObjectFactory;
 import javax.naming.spi.DirStateFactory;
 
+import org.apache.commons.lang.ArrayUtils;
 import org.apache.directory.server.core.integ.AbstractLdapTestUnit;
 import org.apache.directory.server.core.integ.FrameworkRunner;
 import org.apache.directory.shared.ldap.entry.DefaultEntry;
 import org.apache.directory.shared.ldap.ldif.LdifEntry;
-import org.apache.directory.shared.ldap.util.ArrayUtils;
 import org.apache.directory.shared.ldap.util.StringTools;
 import org.junit.Test;
 import org.junit.runner.RunWith;
diff --git a/core/src/main/java/org/apache/directory/server/core/authn/SimpleAuthenticator.java b/core/src/main/java/org/apache/directory/server/core/authn/SimpleAuthenticator.java
index 9c968aa..5011cf3 100644
--- a/core/src/main/java/org/apache/directory/server/core/authn/SimpleAuthenticator.java
+++ b/core/src/main/java/org/apache/directory/server/core/authn/SimpleAuthenticator.java
@@ -33,6 +33,7 @@
 import javax.naming.Context;
 
 import org.apache.commons.collections.map.LRUMap;
+import org.apache.commons.lang.ArrayUtils;
 import org.apache.directory.server.core.LdapPrincipal;
 import org.apache.directory.server.core.authz.AciAuthorizationInterceptor;
 import org.apache.directory.server.core.authz.DefaultAuthorizationInterceptor;
@@ -55,7 +56,6 @@
 import org.apache.directory.shared.ldap.entry.Value;
 import org.apache.directory.shared.ldap.exception.LdapAuthenticationException;
 import org.apache.directory.shared.ldap.name.DN;
-import org.apache.directory.shared.ldap.util.ArrayUtils;
 import org.apache.directory.shared.ldap.util.Base64;
 import org.apache.directory.shared.ldap.util.StringTools;
 import org.apache.directory.shared.ldap.util.UnixCrypt;
diff --git a/core/src/test/java/org/apache/directory/server/core/authz/support/MaxValueCountFilterTest.java b/core/src/test/java/org/apache/directory/server/core/authz/support/MaxValueCountFilterTest.java
index e105c1d..9cc747a 100644
--- a/core/src/test/java/org/apache/directory/server/core/authz/support/MaxValueCountFilterTest.java
+++ b/core/src/test/java/org/apache/directory/server/core/authz/support/MaxValueCountFilterTest.java
@@ -42,7 +42,7 @@
 import org.apache.directory.shared.ldap.schema.SchemaManager;
 import org.apache.directory.shared.ldap.schema.loader.ldif.JarLdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.Before;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -88,7 +88,7 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
     }
     
diff --git a/core/src/test/java/org/apache/directory/server/core/authz/support/RelatedProtectedItemFilterTest.java b/core/src/test/java/org/apache/directory/server/core/authz/support/RelatedProtectedItemFilterTest.java
index 3818e9e..844c39c 100644
--- a/core/src/test/java/org/apache/directory/server/core/authz/support/RelatedProtectedItemFilterTest.java
+++ b/core/src/test/java/org/apache/directory/server/core/authz/support/RelatedProtectedItemFilterTest.java
@@ -53,7 +53,7 @@
 import org.apache.directory.shared.ldap.schema.loader.ldif.JarLdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
 import org.apache.directory.shared.ldap.schema.registries.OidRegistry;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -98,7 +98,7 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
 
         OID_REGISTRY = schemaManager.getGlobalOidRegistry();
diff --git a/core/src/test/java/org/apache/directory/server/core/authz/support/RestrictedByFilterTest.java b/core/src/test/java/org/apache/directory/server/core/authz/support/RestrictedByFilterTest.java
index 17eb059..8900e54 100644
--- a/core/src/test/java/org/apache/directory/server/core/authz/support/RestrictedByFilterTest.java
+++ b/core/src/test/java/org/apache/directory/server/core/authz/support/RestrictedByFilterTest.java
@@ -42,7 +42,7 @@
 import org.apache.directory.shared.ldap.schema.SchemaManager;
 import org.apache.directory.shared.ldap.schema.loader.ldif.JarLdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -86,7 +86,7 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
 
         DN entryName = new DN( "ou=test, ou=system" );
diff --git a/core/src/test/java/org/apache/directory/server/core/normalization/NormalizationVisitorTest.java b/core/src/test/java/org/apache/directory/server/core/normalization/NormalizationVisitorTest.java
index 3b13c92..5ce85ae 100644
--- a/core/src/test/java/org/apache/directory/server/core/normalization/NormalizationVisitorTest.java
+++ b/core/src/test/java/org/apache/directory/server/core/normalization/NormalizationVisitorTest.java
@@ -36,7 +36,7 @@
 import org.apache.directory.shared.ldap.schema.loader.ldif.JarLdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
 import org.apache.directory.shared.ldap.schema.normalizers.ConcreteNameComponentNormalizer;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -66,7 +66,7 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
 
         NameComponentNormalizer ncn = new ConcreteNameComponentNormalizer( schemaManager );
diff --git a/core/src/test/java/org/apache/directory/server/core/schema/SchemaCheckerTest.java b/core/src/test/java/org/apache/directory/server/core/schema/SchemaCheckerTest.java
index 3011062..55e942b 100644
--- a/core/src/test/java/org/apache/directory/server/core/schema/SchemaCheckerTest.java
+++ b/core/src/test/java/org/apache/directory/server/core/schema/SchemaCheckerTest.java
@@ -46,7 +46,7 @@
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
 import org.apache.directory.shared.ldap.schema.normalizers.OidNormalizer;
 import org.apache.directory.shared.ldap.schema.registries.OidRegistry;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.apache.directory.shared.ldap.util.StringTools;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -85,7 +85,7 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
     }
 
diff --git a/core/src/test/java/org/apache/directory/server/core/schema/SchemaServiceTest.java b/core/src/test/java/org/apache/directory/server/core/schema/SchemaServiceTest.java
index f51d994..f15ab8a 100644
--- a/core/src/test/java/org/apache/directory/server/core/schema/SchemaServiceTest.java
+++ b/core/src/test/java/org/apache/directory/server/core/schema/SchemaServiceTest.java
@@ -34,7 +34,7 @@
 import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor;
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.BeforeClass;
 import org.junit.Test;
 
@@ -69,14 +69,14 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
 
         loaded = schemaManager.loadWithDeps( "nis" );
         
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
     }
 
diff --git a/core/src/test/java/org/apache/directory/server/core/security/TlsKeyGeneratorTest.java b/core/src/test/java/org/apache/directory/server/core/security/TlsKeyGeneratorTest.java
index 536b1b3..366d27a 100644
--- a/core/src/test/java/org/apache/directory/server/core/security/TlsKeyGeneratorTest.java
+++ b/core/src/test/java/org/apache/directory/server/core/security/TlsKeyGeneratorTest.java
@@ -37,7 +37,7 @@
 import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor;
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.BeforeClass;
 import org.junit.Test;
 import org.slf4j.Logger;
@@ -82,7 +82,7 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
     }
     
diff --git a/core/src/test/java/org/apache/directory/server/core/subtree/RefinementEvaluatorTest.java b/core/src/test/java/org/apache/directory/server/core/subtree/RefinementEvaluatorTest.java
index bed603a..bbe1144 100644
--- a/core/src/test/java/org/apache/directory/server/core/subtree/RefinementEvaluatorTest.java
+++ b/core/src/test/java/org/apache/directory/server/core/subtree/RefinementEvaluatorTest.java
@@ -36,7 +36,7 @@
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
 import org.apache.directory.shared.ldap.schema.registries.OidRegistry;
 import org.apache.directory.shared.ldap.schema.registries.Registries;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -79,7 +79,7 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( sm.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( sm.getErrors() ) );
         }
 
         registries = sm.getRegistries();
diff --git a/core/src/test/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluatorTest.java b/core/src/test/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluatorTest.java
index 3069d30..7011edc 100644
--- a/core/src/test/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluatorTest.java
+++ b/core/src/test/java/org/apache/directory/server/core/subtree/RefinementLeafEvaluatorTest.java
@@ -36,7 +36,7 @@
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
 import org.apache.directory.shared.ldap.schema.registries.OidRegistry;
 import org.apache.directory.shared.ldap.schema.registries.Registries;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -76,7 +76,7 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( sm.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( sm.getErrors() ) );
         }
 
         registries = sm.getRegistries();
diff --git a/core/src/test/java/org/apache/directory/server/core/subtree/SubtreeEvaluatorTest.java b/core/src/test/java/org/apache/directory/server/core/subtree/SubtreeEvaluatorTest.java
index 4ab02de0..4a24829 100644
--- a/core/src/test/java/org/apache/directory/server/core/subtree/SubtreeEvaluatorTest.java
+++ b/core/src/test/java/org/apache/directory/server/core/subtree/SubtreeEvaluatorTest.java
@@ -42,7 +42,7 @@
 import org.apache.directory.shared.ldap.schema.normalizers.ConcreteNameComponentNormalizer;
 import org.apache.directory.shared.ldap.subtree.SubtreeSpecification;
 import org.apache.directory.shared.ldap.subtree.SubtreeSpecificationModifier;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.After;
 import org.junit.AfterClass;
 import org.junit.Before;
@@ -86,7 +86,7 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
 
         ncn = new ConcreteNameComponentNormalizer( schemaManager );
diff --git a/default-config/src/test/java/org/apache/directory/server/config/ConfigPartitionReaderTest.java b/default-config/src/test/java/org/apache/directory/server/config/ConfigPartitionReaderTest.java
index 6118265..06d10ea 100644
--- a/default-config/src/test/java/org/apache/directory/server/config/ConfigPartitionReaderTest.java
+++ b/default-config/src/test/java/org/apache/directory/server/config/ConfigPartitionReaderTest.java
@@ -39,7 +39,7 @@
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
 import org.apache.directory.shared.ldap.schema.registries.SchemaLoader;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.apache.mina.util.AvailablePortFinder;
 import org.junit.AfterClass;
 import org.junit.BeforeClass;
@@ -93,7 +93,7 @@
 
         if ( errors.size() != 0 )
         {
-            throw new Exception( "Schema load failed : " + ExceptionUtils.printErrors( errors ) );
+            throw new Exception( "Schema load failed : " + LdapExceptionUtils.printErrors( errors ) );
         }
 
         LdifConfigExtractor.extract( workDir, true );
diff --git a/jdbm-partition/src/test/java/org/apache/directory/server/core/schema/PartitionSchemaLoaderTest.java b/jdbm-partition/src/test/java/org/apache/directory/server/core/schema/PartitionSchemaLoaderTest.java
index 3c06942..760107c 100644
--- a/jdbm-partition/src/test/java/org/apache/directory/server/core/schema/PartitionSchemaLoaderTest.java
+++ b/jdbm-partition/src/test/java/org/apache/directory/server/core/schema/PartitionSchemaLoaderTest.java
@@ -40,7 +40,7 @@
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
 import org.apache.directory.shared.ldap.schema.registries.Schema;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.BeforeClass;
 import org.junit.Ignore;
 import org.junit.Test;
@@ -96,7 +96,7 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
 
         // --------------------------------------------------------------------
diff --git a/jdbm-store/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmTable.java b/jdbm-store/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmTable.java
index ba616b9..ccf1e80 100644
--- a/jdbm-store/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmTable.java
+++ b/jdbm-store/src/main/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmTable.java
@@ -27,6 +27,7 @@
 import jdbm.RecordManager;
 import jdbm.btree.BTree;
 import jdbm.helper.Serializer;
+import jdbm.helper.Tuple;
 import jdbm.helper.TupleBrowser;
 
 import org.apache.directory.server.core.avltree.ArrayMarshaller;
@@ -79,13 +80,13 @@
     private int count;
     
     /** the wrappedCursor JDBM btree used in this Table */
-    private BTree bt;
+    private BTree<K, V> bt;
 
     /** the limit at which we start using btree redirection for duplicates */
     private int numDupLimit = JdbmIndex.DEFAULT_DUPLICATE_LIMIT;
 
     /** a cache of duplicate BTrees */
-    private final Map<Long, BTree> duplicateBtrees;
+    private final Map<Long, BTree<K, V>> duplicateBtrees;
 
     private final Serializer keySerializer;
 
@@ -174,7 +175,7 @@
             // explicitly managed by this code.  Value serialization is delegated to these
             // marshallers.
 
-            bt = BTree.createInstance( recMan, keyComparator, keySerializer, null );
+            bt = new BTree<K, V>( recMan, keyComparator, keySerializer, null );
             recId = bt.getRecid();
             recMan.setNamedObject( name, recId );
             recId = recMan.insert( 0 );
@@ -182,7 +183,7 @@
         }
         else // Load existing BTree
         {
-            bt = BTree.load( recMan, recId );
+            bt= new BTree<K, V>().load( recMan, recId );
             ((SerializableComparator<K>)bt.getComparator()).setSchemaManager( schemaManager );
             recId = recMan.getNamedObject( name + SZSUFFIX );
             count = ( Integer ) recMan.fetch( recId );
@@ -234,7 +235,7 @@
 
         if ( recId != 0 )
         {
-            bt = BTree.load( recMan, recId );
+            bt = new BTree<K, V>().load( recMan, recId );
             ((SerializableComparator<K>)bt.getComparator()).setSchemaManager( schemaManager );
             bt.setValueSerializer( valueSerializer );
             recId = recMan.getNamedObject( name + SZSUFFIX );
@@ -242,7 +243,7 @@
         }
         else
         {
-            bt = BTree.createInstance( recMan, keyComparator, keySerializer, valueSerializer );
+            bt = new BTree<K, V>( recMan, keyComparator, keySerializer, valueSerializer );
             recId = bt.getRecid();
             recMan.setNamedObject( name, recId );
             recId = recMan.insert( 0 );
@@ -445,7 +446,7 @@
         }
 
         // last option is to try a btree with BTreeRedirects
-        BTree tree = getBTree( values.getBTreeRedirect() );
+        BTree<K, V> tree = getBTree( values.getBTreeRedirect() );
         
         return tree.size() != 0 && btreeHas( tree, val, true );
     }
@@ -476,7 +477,7 @@
         }
 
         // last option is to try a btree with BTreeRedirects
-        BTree tree = getBTree( values.getBTreeRedirect() );
+        BTree<K, V> tree = getBTree( values.getBTreeRedirect() );
         
         return tree.size() != 0 && btreeHas( tree, val, false );
     }
@@ -518,7 +519,7 @@
     {
         // Can only find greater than or equal to with JDBM so we find that
         // and work backwards to see if we can find one less than the key
-        jdbm.helper.Tuple tuple = bt.findGreaterOrEqual( key );
+        Tuple<K, V> tuple = bt.findGreaterOrEqual( key );
 
         // Test for equality first since it satisfies equal to condition
         if ( null != tuple && keyComparator.compare( ( K ) tuple.getKey(), key ) == 0 )
@@ -546,6 +547,7 @@
              * be the previous tuple if it exists.
              */
             TupleBrowser browser = bt.browse( tuple.getKey() );
+            
             if ( browser.getPrevious( tuple ) )
             {
                 return true;
@@ -647,7 +649,7 @@
                 {
                     BTree tree = convertToBTree( set );
                     BTreeRedirect redirect = new BTreeRedirect( tree.getRecid() );
-                    bt.insert( key, BTreeRedirectMarshaller.INSTANCE.serialize( redirect ), true );
+                    bt.insert( key, (V)BTreeRedirectMarshaller.INSTANCE.serialize( redirect ), true );
                     
                     if ( LOG.isDebugEnabled() )
                     {
@@ -656,7 +658,7 @@
                 }
                 else
                 {
-                    bt.insert( key, marshaller.serialize( set ), true );
+                    bt.insert( key, (V)marshaller.serialize( set ), true );
                     
                     if ( LOG.isDebugEnabled() )
                     {
@@ -748,7 +750,7 @@
                     }
                     else
                     {
-                        bt.insert( key, marshaller.serialize( set ), true );
+                        bt.insert( key, (V)marshaller.serialize( set ), true );
                     }
                     count--;
 
@@ -777,7 +779,7 @@
                     if ( tree.size() <= numDupLimit )
                     {
                         ArrayTree<V> avlTree = convertToArrayTree( tree );
-                        bt.insert( key, marshaller.serialize( avlTree ), true );
+                        bt.insert( key, (V)marshaller.serialize( avlTree ), true );
                         recMan.delete( tree.getRecid() );
                     }
                     
@@ -900,7 +902,7 @@
             return new EmptyCursor<org.apache.directory.shared.ldap.cursor.Tuple<K,V>>();
         }
 
-        Object raw = bt.find( key );
+        V raw = bt.find( key );
 
         if ( null == raw )
         {
@@ -933,7 +935,7 @@
             return new EmptyCursor<V>();
         }
 
-        Object raw = bt.find( key );
+        V raw = bt.find( key );
 
         if ( null == raw )
         {
@@ -1053,7 +1055,7 @@
             return duplicateBtrees.get( redirect.getRecId() );
         }
         
-        BTree tree = BTree.load( recMan, redirect.getRecId() );
+        BTree<K, V> tree = new BTree<K, V>().load( recMan, redirect.getRecId() );
         ((SerializableComparator<K>)tree.getComparator()).setSchemaManager( schemaManager );
         duplicateBtrees.put( redirect.getRecId(), tree );
         return tree;
@@ -1119,11 +1121,11 @@
 
         if ( valueSerializer != null )
         {
-            bTree = BTree.createInstance( recMan, valueComparator, valueSerializer, null );
+            bTree = new BTree<K, V>( recMan, valueComparator, valueSerializer, null );
         }
         else
         {
-            bTree = BTree.createInstance( recMan, valueComparator );
+            bTree = new BTree<K, V>( recMan, valueComparator );
         }
 
         Cursor<V> keys = new ArrayTreeCursor<V>( arrayTree );
diff --git a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/BTreeRedirectMarshallerTest.java b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/BTreeRedirectMarshallerTest.java
index a2c7323..d564223 100644
--- a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/BTreeRedirectMarshallerTest.java
+++ b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/BTreeRedirectMarshallerTest.java
@@ -20,9 +20,9 @@
 package org.apache.directory.server.core.partition.impl.btree.jdbm;
 
 
+import org.apache.commons.lang.ArrayUtils;
 import org.junit.Test;
 import org.junit.Before;
-import org.apache.directory.shared.ldap.util.ArrayUtils;
 
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
diff --git a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/DupsContainerCursorTest.java b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/DupsContainerCursorTest.java
index f676a06..97dac4a 100644
--- a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/DupsContainerCursorTest.java
+++ b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/DupsContainerCursorTest.java
@@ -41,7 +41,7 @@
 import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor;
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -90,7 +90,7 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
     }
 
diff --git a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/DupsCursorTest.java b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/DupsCursorTest.java
index cd63efe..1a3fcea 100755
--- a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/DupsCursorTest.java
+++ b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/DupsCursorTest.java
@@ -42,7 +42,7 @@
 import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor;
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -92,7 +92,7 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
     }
 
diff --git a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmBrowserBugTest.java b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmBrowserBugTest.java
index 78cf31c..6637f7f 100644
--- a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmBrowserBugTest.java
+++ b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmBrowserBugTest.java
@@ -76,7 +76,7 @@
 
         dbFile = File.createTempFile( getClass().getSimpleName(), "db", tmpDir );
         recman = new BaseRecordManager( dbFile.getAbsolutePath() );
-        bt = BTree.createInstance( recman, new IntegerComparator(), new IntegerSerializer(), new IntegerSerializer() );
+        bt = new BTree<Integer, Integer>( recman, new IntegerComparator(), new IntegerSerializer(), new IntegerSerializer() );
         LOG.debug( "created new BTree" );
     }
 
diff --git a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmIndexTest.java b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmIndexTest.java
index 7d35d99..ec63eb2 100644
--- a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmIndexTest.java
+++ b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmIndexTest.java
@@ -41,7 +41,7 @@
 import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor;
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -83,7 +83,7 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
     }
 
diff --git a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmMasterTableTest.java b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmMasterTableTest.java
index fe3ad45..3d9f4f3 100644
--- a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmMasterTableTest.java
+++ b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmMasterTableTest.java
@@ -34,7 +34,7 @@
 import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor;
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
@@ -81,7 +81,7 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
     }
 
diff --git a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmRdnIndexTest.java b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmRdnIndexTest.java
index 11ab3bc..a41f666 100644
--- a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmRdnIndexTest.java
+++ b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmRdnIndexTest.java
@@ -42,7 +42,7 @@
 import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor;
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -84,7 +84,7 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
     }
 
diff --git a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmStoreTest.java b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmStoreTest.java
index 4f8bf4a..3920f8f 100644
--- a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmStoreTest.java
+++ b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmStoreTest.java
@@ -62,7 +62,7 @@
 import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor;
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -111,7 +111,7 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
 
         EXAMPLE_COM = new DN( "dc=example,dc=com" );
diff --git a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmTableNoDuplicatesTest.java b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmTableNoDuplicatesTest.java
index 13ba6ed..c9df9f6 100755
--- a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmTableNoDuplicatesTest.java
+++ b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmTableNoDuplicatesTest.java
@@ -39,7 +39,7 @@
 import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor;
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -87,7 +87,7 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
     }
 
diff --git a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmTableWithDuplicatesTest.java b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmTableWithDuplicatesTest.java
index fbe9f8e..c1b1d30 100644
--- a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmTableWithDuplicatesTest.java
+++ b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/JdbmTableWithDuplicatesTest.java
@@ -42,7 +42,7 @@
 import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor;
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -100,7 +100,7 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
     }
 
diff --git a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/KeyBTreeCursorTest.java b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/KeyBTreeCursorTest.java
index 3769c19..d957802 100755
--- a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/KeyBTreeCursorTest.java
+++ b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/KeyBTreeCursorTest.java
@@ -78,7 +78,7 @@
         dbFile = File.createTempFile( KeyBTreeCursorTest.class.getName(), "db", tmpDir );
         recman = new BaseRecordManager( dbFile.getAbsolutePath() );
         comparator = new StringComparator();
-        bt = BTree.createInstance( recman, comparator );
+        bt = new BTree<String, byte[]>( recman, comparator );
 
         // add some data to it
         bt.insert( "0", EMPTY_BYTES, true );
diff --git a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/KeyCursorTest.java b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/KeyCursorTest.java
index 3497149..033e68b 100755
--- a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/KeyCursorTest.java
+++ b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/KeyCursorTest.java
@@ -78,7 +78,7 @@
         dbFile = File.createTempFile( KeyCursorTest.class.getName(), "db", tmpDir );
         recman = new BaseRecordManager( dbFile.getAbsolutePath() );
         comparator = new StringComparator();
-        bt = BTree.createInstance( recman, comparator );
+        bt = new BTree<String, byte[]>( recman, comparator );
 
         // add some data to it
         bt.insert( "0", EMPTY_BYTES, true );
diff --git a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/KeyTupleBTreeCursorTest.java b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/KeyTupleBTreeCursorTest.java
index b64c1d0..8ac69cc 100644
--- a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/KeyTupleBTreeCursorTest.java
+++ b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/KeyTupleBTreeCursorTest.java
@@ -41,7 +41,7 @@
 import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor;
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -89,7 +89,7 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
     }
     
diff --git a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/NoDupsCursorTest.java b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/NoDupsCursorTest.java
index 3eff944..3e2c649 100644
--- a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/NoDupsCursorTest.java
+++ b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/NoDupsCursorTest.java
@@ -41,7 +41,7 @@
 import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor;
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -90,7 +90,7 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
     }
 
diff --git a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/ServerEntrySerializerTest.java b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/ServerEntrySerializerTest.java
index 7c3a7dc..bd42ab4 100644
--- a/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/ServerEntrySerializerTest.java
+++ b/jdbm-store/src/test/java/org/apache/directory/server/core/partition/impl/btree/jdbm/ServerEntrySerializerTest.java
@@ -42,7 +42,7 @@
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
 import org.apache.directory.shared.ldap.schema.normalizers.DeepTrimToLowerNormalizer;
 import org.apache.directory.shared.ldap.schema.normalizers.OidNormalizer;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.apache.directory.shared.ldap.util.StringTools;
 import org.junit.BeforeClass;
 import org.junit.Test;
@@ -88,7 +88,7 @@
         
         if ( errors.size() != 0 )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( errors ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( errors ) );
         }
         
         oids = new HashMap<String, OidNormalizer>();
diff --git a/jdbm/src/main/java/jdbm/btree/BTree.java b/jdbm/src/main/java/jdbm/btree/BTree.java
index cbb0aaa..732c813 100644
--- a/jdbm/src/main/java/jdbm/btree/BTree.java
+++ b/jdbm/src/main/java/jdbm/btree/BTree.java
@@ -148,9 +148,9 @@
      * @param recman Record manager used for persistence.
      * @param comparator Comparator used to order index entries
      */
-    public static BTree createInstance( RecordManager recman, Comparator<?> comparator ) throws IOException
+    public BTree( RecordManager recman, Comparator<?> comparator ) throws IOException
     {
-        return createInstance( recman, comparator, null, null, DEFAULT_SIZE );
+        createInstance( recman, comparator, null, null, DEFAULT_SIZE );
     }
 
 
@@ -162,10 +162,10 @@
      * @param valueSerializer Serializer used to serialize index values (optional)
      * @param comparator Comparator used to order index entries
      */
-    public static BTree createInstance( RecordManager recman, Comparator<?> comparator, Serializer keySerializer,
+    public BTree( RecordManager recman, Comparator<?> comparator, Serializer keySerializer,
         Serializer valueSerializer ) throws IOException
     {
-        return createInstance( recman, comparator, keySerializer, valueSerializer, DEFAULT_SIZE );
+        createInstance( recman, comparator, keySerializer, valueSerializer, DEFAULT_SIZE );
     }
 
 
@@ -178,11 +178,16 @@
      * @param valueSerializer Serializer used to serialize index values (optional)
      * @param pageSize Number of entries per page (must be even).
      */
-    public static BTree createInstance( RecordManager recman, Comparator<?> comparator, Serializer keySerializer,
+    public BTree( RecordManager recman, Comparator<?> comparator, Serializer keySerializer,
         Serializer valueSerializer, int pageSize ) throws IOException
     {
-        BTree btree;
-
+        createInstance( recman, comparator, keySerializer, valueSerializer, pageSize );
+    }
+    
+    
+    private void createInstance(RecordManager recman, Comparator<?> comparator, Serializer keySerializer,
+        Serializer valueSerializer, int pageSize) throws IOException
+    {
         if ( recman == null )
         {
             throw new IllegalArgumentException( I18n.err( I18n.ERR_517 ) );
@@ -214,17 +219,14 @@
             throw new IllegalArgumentException( I18n.err( I18n.ERR_522 ) );
         }
 
-        btree = new BTree();
-        btree.recordManager = recman;
-        btree.comparator = comparator;
-        btree.keySerializer = keySerializer;
-        btree.valueSerializer = valueSerializer;
-        btree.pageSize = pageSize;
-        btree.bpageSerializer = new BPage<Object, Object>();
-        btree.bpageSerializer.btree = btree;
-        btree.recordId = recman.insert( btree );
-        
-        return btree;
+        this.recordManager = recman;
+        this.comparator = comparator;
+        this.keySerializer = keySerializer;
+        this.valueSerializer = valueSerializer;
+        this.pageSize = pageSize;
+        this.bpageSerializer = new BPage<K, V>();
+        this.bpageSerializer.btree = this;
+        this.recordId = recman.insert( this );
     }
 
 
@@ -234,12 +236,12 @@
      * @param recman RecordManager used to store the persistent btree
      * @param recid Record id of the BTree
      */
-    public static BTree load( RecordManager recman, long recid ) throws IOException
+    public BTree<K, V> load( RecordManager recman, long recid ) throws IOException
     {
-        BTree btree = ( BTree ) recman.fetch( recid );
+        BTree<K, V> btree = (BTree<K, V>) recman.fetch( recid );
         btree.recordId = recid;
         btree.recordManager = recman;
-        btree.bpageSerializer = new BPage<Object, Object>();
+        btree.bpageSerializer = new BPage<K, V>();
         btree.bpageSerializer.btree = btree;
         
         return btree;
diff --git a/ldap-client-test/pom.xml b/ldap-client-test/pom.xml
index dc734b2..6645c3f 100644
--- a/ldap-client-test/pom.xml
+++ b/ldap-client-test/pom.xml
@@ -37,9 +37,9 @@
   </issueManagement>
 
   <scm>
-    <connection>scm:svn:http://svn.apache.org/repos/asf/directory/clients/ldap/trunk/ldap-client-test</connection>
-    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/directory/clients/ldap/trunk/ldap-client-test</developerConnection>
-    <url>http://svn.apache.org/viewvc/directory/clients/ldap/trunk/ldap-client-test</url>
+    <connection>scm:svn:http://svn.apache.org/repos/asf/directory/apacheds/trunk/ldap-client-test</connection>
+    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/directory/apacheds/trunk/ldap-client-test</developerConnection>
+    <url>http://svn.apache.org/viewvc/directory/apacheds/trunk/ldap-client-test</url>
   </scm>
 
   <description>
diff --git a/ldif-partition/src/main/java/org/apache/directory/server/core/partition/ldif/LdifPartition.java b/ldif-partition/src/main/java/org/apache/directory/server/core/partition/ldif/LdifPartition.java
index 6548efd..7bc3e2f 100644
--- a/ldif-partition/src/main/java/org/apache/directory/server/core/partition/ldif/LdifPartition.java
+++ b/ldif-partition/src/main/java/org/apache/directory/server/core/partition/ldif/LdifPartition.java
@@ -28,6 +28,7 @@
 import java.util.List;
 import java.util.UUID;
 
+import org.apache.commons.lang.SystemUtils;
 import org.apache.directory.server.core.entry.ClonedServerEntry;
 import org.apache.directory.server.core.interceptor.context.AddOperationContext;
 import org.apache.directory.server.core.interceptor.context.BindOperationContext;
@@ -59,7 +60,6 @@
 import org.apache.directory.shared.ldap.schema.AttributeType;
 import org.apache.directory.shared.ldap.schema.SchemaManager;
 import org.apache.directory.shared.ldap.util.StringTools;
-import org.apache.directory.shared.ldap.util.SystemUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/ldif-partition/src/test/java/org/apache/directory/server/core/partition/LdifPartitionTest.java b/ldif-partition/src/test/java/org/apache/directory/server/core/partition/LdifPartitionTest.java
index 635f936..f336de3 100644
--- a/ldif-partition/src/test/java/org/apache/directory/server/core/partition/LdifPartitionTest.java
+++ b/ldif-partition/src/test/java/org/apache/directory/server/core/partition/LdifPartitionTest.java
@@ -64,7 +64,7 @@
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
 import org.apache.directory.shared.ldap.schema.normalizers.ConcreteNameComponentNormalizer;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -110,7 +110,7 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
 
         defaultCSNFactory = new CsnFactory( 0 );
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/BindHandler.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/BindHandler.java
index 5f48106..f9e5693 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/BindHandler.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/BindHandler.java
@@ -25,6 +25,7 @@
 import javax.security.sasl.SaslException;
 import javax.security.sasl.SaslServer;
 
+import org.apache.commons.lang.exception.ExceptionUtils;
 import org.apache.directory.server.core.CoreSession;
 import org.apache.directory.server.core.DirectoryService;
 import org.apache.directory.server.core.LdapPrincipal;
@@ -46,7 +47,6 @@
 import org.apache.directory.shared.ldap.message.internal.InternalBindResponse;
 import org.apache.directory.shared.ldap.message.internal.InternalLdapResult;
 import org.apache.directory.shared.ldap.name.DN;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
 import org.apache.directory.shared.ldap.util.StringTools;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/ExtendedHandler.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/ExtendedHandler.java
index 1b6908f..75a845b 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/ExtendedHandler.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/ExtendedHandler.java
@@ -20,13 +20,13 @@
 package org.apache.directory.server.ldap.handlers;
 
 
+import org.apache.commons.lang.exception.ExceptionUtils;
 import org.apache.directory.server.ldap.ExtendedOperationHandler;
 import org.apache.directory.server.ldap.LdapSession;
 import org.apache.directory.shared.ldap.message.ResultCodeEnum;
 import org.apache.directory.shared.ldap.message.internal.InternalExtendedRequest;
 import org.apache.directory.shared.ldap.message.internal.InternalExtendedResponse;
 import org.apache.directory.shared.ldap.message.internal.InternalLdapResult;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
 
 
 /**
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/LdapRequestHandler.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/LdapRequestHandler.java
index e48eaf1..959f27b 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/LdapRequestHandler.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/LdapRequestHandler.java
@@ -20,6 +20,7 @@
 package org.apache.directory.server.ldap.handlers;
 
 
+import org.apache.commons.lang.exception.ExceptionUtils;
 import org.apache.directory.server.core.CoreSession;
 import org.apache.directory.server.i18n.I18n;
 import org.apache.directory.server.ldap.LdapServer;
@@ -41,7 +42,6 @@
 import org.apache.directory.shared.ldap.message.internal.InternalResultResponse;
 import org.apache.directory.shared.ldap.message.internal.InternalResultResponseRequest;
 import org.apache.directory.shared.ldap.name.DN;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
 import org.apache.mina.core.filterchain.IoFilterChain;
 import org.apache.mina.core.session.IoSession;
 import org.apache.mina.handler.demux.MessageHandler;
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/SearchHandler.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/SearchHandler.java
index 9d62d61..0edb923 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/SearchHandler.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/SearchHandler.java
@@ -26,6 +26,7 @@
 
 import java.util.concurrent.TimeUnit;
 
+import org.apache.commons.lang.exception.ExceptionUtils;
 import org.apache.directory.server.core.DirectoryService;
 import org.apache.directory.server.core.ReferralManager;
 import org.apache.directory.server.core.entry.ClonedServerEntry;
@@ -69,7 +70,6 @@
 import org.apache.directory.shared.ldap.message.internal.InternalSearchResponseReference;
 import org.apache.directory.shared.ldap.name.DN;
 import org.apache.directory.shared.ldap.schema.AttributeType;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
 import org.apache.directory.shared.ldap.util.LdapURL;
 import org.apache.directory.shared.ldap.util.StringTools;
 import org.slf4j.Logger;
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/bind/AbstractSaslCallbackHandler.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/bind/AbstractSaslCallbackHandler.java
index 7aa4cfd..91acb4b 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/bind/AbstractSaslCallbackHandler.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/bind/AbstractSaslCallbackHandler.java
@@ -32,6 +32,7 @@
 import javax.security.sasl.AuthorizeCallback;
 import javax.security.sasl.RealmCallback;
 
+import org.apache.commons.lang.exception.ExceptionUtils;
 import org.apache.directory.server.constants.ServerDNConstants;
 import org.apache.directory.server.core.CoreSession;
 import org.apache.directory.server.core.DirectoryService;
@@ -46,7 +47,6 @@
 import org.apache.directory.shared.ldap.message.internal.InternalBindRequest;
 import org.apache.directory.shared.ldap.message.internal.InternalLdapResult;
 import org.apache.directory.shared.ldap.name.DN;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
 import org.apache.directory.shared.ldap.util.StringTools;
 import org.apache.mina.core.session.IoSession;
 import org.slf4j.Logger;
diff --git a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/bind/SimpleMechanismHandler.java b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/bind/SimpleMechanismHandler.java
index 418d2ed..ca1081d 100644
--- a/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/bind/SimpleMechanismHandler.java
+++ b/protocol-ldap/src/main/java/org/apache/directory/server/ldap/handlers/bind/SimpleMechanismHandler.java
@@ -20,6 +20,7 @@
 package org.apache.directory.server.ldap.handlers.bind;
 
 
+import org.apache.commons.lang.exception.ExceptionUtils;
 import org.apache.directory.server.core.CoreSession;
 import org.apache.directory.server.core.interceptor.context.BindOperationContext;
 import org.apache.directory.server.ldap.LdapProtocolUtils;
@@ -32,7 +33,6 @@
 import org.apache.directory.shared.ldap.message.internal.InternalBindResponse;
 import org.apache.directory.shared.ldap.message.internal.InternalLdapResult;
 import org.apache.directory.shared.ldap.name.DN;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
diff --git a/server-integ/src/test/java/org/apache/directory/server/operations/bind/MiscBindIT.java b/server-integ/src/test/java/org/apache/directory/server/operations/bind/MiscBindIT.java
index 8262076..46593da 100644
--- a/server-integ/src/test/java/org/apache/directory/server/operations/bind/MiscBindIT.java
+++ b/server-integ/src/test/java/org/apache/directory/server/operations/bind/MiscBindIT.java
@@ -48,6 +48,7 @@
 import netscape.ldap.LDAPSearchResults;
 import netscape.ldap.LDAPUrl;
 
+import org.apache.commons.lang.ArrayUtils;
 import org.apache.directory.server.annotations.CreateLdapServer;
 import org.apache.directory.server.annotations.CreateTransport;
 import org.apache.directory.server.core.annotations.ContextEntry;
@@ -68,7 +69,6 @@
 import org.apache.directory.shared.ldap.constants.SupportedSaslMechanisms;
 import org.apache.directory.shared.ldap.jndi.JndiUtils;
 import org.apache.directory.shared.ldap.message.control.Control;
-import org.apache.directory.shared.ldap.util.ArrayUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.Test;
diff --git a/server-integ/src/test/java/org/apache/directory/server/operations/bind/SaslBindIT.java b/server-integ/src/test/java/org/apache/directory/server/operations/bind/SaslBindIT.java
index c003b4c..a974d32 100644
--- a/server-integ/src/test/java/org/apache/directory/server/operations/bind/SaslBindIT.java
+++ b/server-integ/src/test/java/org/apache/directory/server/operations/bind/SaslBindIT.java
@@ -36,6 +36,7 @@
 import javax.naming.directory.DirContext;
 import javax.naming.directory.InitialDirContext;
 
+import org.apache.commons.lang.ArrayUtils;
 import org.apache.commons.net.SocketClient;
 import org.apache.directory.server.annotations.CreateLdapServer;
 import org.apache.directory.server.annotations.CreateTransport;
@@ -61,7 +62,6 @@
 import org.apache.directory.shared.ldap.message.internal.InternalBindResponse;
 import org.apache.directory.shared.ldap.message.spi.BinaryAttributeDetector;
 import org.apache.directory.shared.ldap.name.DN;
-import org.apache.directory.shared.ldap.util.ArrayUtils;
 import org.junit.Test;
 import org.junit.runner.RunWith;
 import org.slf4j.Logger;
diff --git a/server-jndi/src/main/java/org/apache/directory/server/configuration/ApacheDS.java b/server-jndi/src/main/java/org/apache/directory/server/configuration/ApacheDS.java
index 26806ca..4906d01 100644
--- a/server-jndi/src/main/java/org/apache/directory/server/configuration/ApacheDS.java
+++ b/server-jndi/src/main/java/org/apache/directory/server/configuration/ApacheDS.java
@@ -52,7 +52,7 @@
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
 import org.apache.directory.shared.ldap.schema.registries.SchemaLoader;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.apache.directory.shared.ldap.util.StringTools;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -503,7 +503,7 @@
 
         if ( errors.size() != 0 )
         {
-            throw new Exception( I18n.err( I18n.ERR_317, ExceptionUtils.printErrors( errors ) ) );
+            throw new Exception( I18n.err( I18n.ERR_317, LdapExceptionUtils.printErrors( errors ) ) );
         }
     }
 
diff --git a/server-tools/src/main/java/org/apache/directory/server/tools/DumpCommand.java b/server-tools/src/main/java/org/apache/directory/server/tools/DumpCommand.java
index 1b8e093..e50496e 100644
--- a/server-tools/src/main/java/org/apache/directory/server/tools/DumpCommand.java
+++ b/server-tools/src/main/java/org/apache/directory/server/tools/DumpCommand.java
@@ -58,7 +58,7 @@
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
 import org.apache.directory.shared.ldap.util.Base64;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 
 
 /**
@@ -107,7 +107,7 @@
         
         if ( errors.size() != 0 )
         {
-            throw new Exception( I18n.err( I18n.ERR_317, ExceptionUtils.printErrors( errors ) ) );
+            throw new Exception( I18n.err( I18n.ERR_317, LdapExceptionUtils.printErrors( errors ) ) );
         }
 
         
diff --git a/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/AndCursorTest.java b/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/AndCursorTest.java
index 1fe5a2d..06513f4 100644
--- a/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/AndCursorTest.java
+++ b/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/AndCursorTest.java
@@ -50,7 +50,7 @@
 import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor;
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -100,14 +100,14 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
 
         loaded = schemaManager.loadWithDeps( "collective" );
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
     }
 
diff --git a/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/GreaterEqTest.java b/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/GreaterEqTest.java
index 1b204f1..f97c0e1 100644
--- a/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/GreaterEqTest.java
+++ b/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/GreaterEqTest.java
@@ -58,7 +58,7 @@
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
 import org.apache.directory.shared.ldap.schema.parsers.SyntaxCheckerDescription;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -105,14 +105,14 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
 
         loaded = schemaManager.loadWithDeps( loader.getSchema( "collective" ) );
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
     }
 
diff --git a/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/LessEqTest.java b/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/LessEqTest.java
index b8dd9ee..445365a 100644
--- a/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/LessEqTest.java
+++ b/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/LessEqTest.java
@@ -58,7 +58,7 @@
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
 import org.apache.directory.shared.ldap.schema.parsers.SyntaxCheckerDescription;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -105,14 +105,14 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
 
         loaded = schemaManager.loadWithDeps( loader.getSchema( "collective" ) );
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
     }
 
diff --git a/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/NestedFilterTest.java b/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/NestedFilterTest.java
index dc79647..f5d7006 100644
--- a/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/NestedFilterTest.java
+++ b/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/NestedFilterTest.java
@@ -48,7 +48,7 @@
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
 import org.apache.directory.shared.ldap.schema.normalizers.ConcreteNameComponentNormalizer;
 import org.apache.directory.shared.ldap.schema.syntaxCheckers.UuidSyntaxChecker;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -100,14 +100,14 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
 
         loaded = schemaManager.loadWithDeps( loader.getSchema( "collective" ) );
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
 
         NameComponentNormalizer ncn = new ConcreteNameComponentNormalizer( schemaManager );
diff --git a/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/NotCursorTest.java b/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/NotCursorTest.java
index 7c199cc..e56b7f8 100644
--- a/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/NotCursorTest.java
+++ b/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/NotCursorTest.java
@@ -50,7 +50,7 @@
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
 import org.apache.directory.shared.ldap.schema.syntaxCheckers.UuidSyntaxChecker;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -102,14 +102,14 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
 
         loaded = schemaManager.loadWithDeps( loader.getSchema( "collective" ) );
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
     }
 
diff --git a/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/OneLevelScopeTest.java b/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/OneLevelScopeTest.java
index 3c27eb4..2140ac3 100644
--- a/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/OneLevelScopeTest.java
+++ b/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/OneLevelScopeTest.java
@@ -50,7 +50,7 @@
 import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor;
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -97,14 +97,14 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
 
         loaded = schemaManager.loadWithDeps( loader.getSchema( "collective" ) );
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
     }
 
diff --git a/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/OrCursorTest.java b/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/OrCursorTest.java
index 414e119..693d014 100644
--- a/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/OrCursorTest.java
+++ b/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/OrCursorTest.java
@@ -51,7 +51,7 @@
 import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor;
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -104,14 +104,14 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
 
         loaded = schemaManager.loadWithDeps( loader.getSchema( "collective" ) );
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
     }
 
diff --git a/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/PresenceTest.java b/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/PresenceTest.java
index 0982532..667887c 100644
--- a/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/PresenceTest.java
+++ b/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/PresenceTest.java
@@ -46,7 +46,7 @@
 import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor;
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -92,14 +92,14 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
 
         loaded = schemaManager.loadWithDeps( loader.getSchema( "collective" ) );
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
     }
 
diff --git a/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/SubstringTest.java b/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/SubstringTest.java
index 4e4f584..ec5bf19 100644
--- a/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/SubstringTest.java
+++ b/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/SubstringTest.java
@@ -42,7 +42,7 @@
 import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor;
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -88,14 +88,14 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
 
         loaded = schemaManager.loadWithDeps( loader.getSchema( "collective" ) );
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
     }
 
diff --git a/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/SubtreeScopeTest.java b/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/SubtreeScopeTest.java
index bb8a052..6b68341 100644
--- a/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/SubtreeScopeTest.java
+++ b/xdbm-search/src/test/java/org/apache/directory/server/xdbm/search/impl/SubtreeScopeTest.java
@@ -51,7 +51,7 @@
 import org.apache.directory.shared.ldap.schema.ldif.extractor.impl.DefaultSchemaLdifExtractor;
 import org.apache.directory.shared.ldap.schema.loader.ldif.LdifSchemaLoader;
 import org.apache.directory.shared.ldap.schema.manager.impl.DefaultSchemaManager;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
+import org.apache.directory.shared.ldap.util.LdapExceptionUtils;
 import org.junit.After;
 import org.junit.Before;
 import org.junit.BeforeClass;
@@ -97,14 +97,14 @@
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
 
         loaded = schemaManager.loadWithDeps( loader.getSchema( "collective" ) );
 
         if ( !loaded )
         {
-            fail( "Schema load failed : " + ExceptionUtils.printErrors( schemaManager.getErrors() ) );
+            fail( "Schema load failed : " + LdapExceptionUtils.printErrors( schemaManager.getErrors() ) );
         }
     }
 
diff --git a/xdbm-tools/src/main/java/org/apache/directory/server/core/partition/impl/btree/gui/IndexDialog.java b/xdbm-tools/src/main/java/org/apache/directory/server/core/partition/impl/btree/gui/IndexDialog.java
index a8f679e..c6e5c2e 100644
--- a/xdbm-tools/src/main/java/org/apache/directory/server/core/partition/impl/btree/gui/IndexDialog.java
+++ b/xdbm-tools/src/main/java/org/apache/directory/server/core/partition/impl/btree/gui/IndexDialog.java
@@ -44,12 +44,12 @@
 import javax.swing.border.TitledBorder;
 import javax.swing.table.DefaultTableModel;
 
+import org.apache.commons.lang.exception.ExceptionUtils;
 import org.apache.directory.server.i18n.I18n;
 import org.apache.directory.server.xdbm.IndexEntry;
 import org.apache.directory.server.xdbm.ForwardIndexEntry;
 import org.apache.directory.server.xdbm.Index;
 import org.apache.directory.shared.ldap.cursor.Cursor;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
 import org.apache.directory.shared.ldap.NotImplementedException;
 
 import org.slf4j.Logger;
diff --git a/xdbm-tools/src/main/java/org/apache/directory/server/xdbm/tools/IndexDialog.java b/xdbm-tools/src/main/java/org/apache/directory/server/xdbm/tools/IndexDialog.java
index 0605272..985174f 100644
--- a/xdbm-tools/src/main/java/org/apache/directory/server/xdbm/tools/IndexDialog.java
+++ b/xdbm-tools/src/main/java/org/apache/directory/server/xdbm/tools/IndexDialog.java
@@ -44,13 +44,13 @@
 import javax.swing.border.TitledBorder;
 import javax.swing.table.DefaultTableModel;
 
+import org.apache.commons.lang.exception.ExceptionUtils;
 import org.apache.directory.server.xdbm.Index;
 import org.apache.directory.server.xdbm.IndexEntry;
 import org.apache.directory.server.xdbm.ForwardIndexEntry;
 import org.apache.directory.server.i18n.I18n;
 import org.apache.directory.shared.ldap.cursor.Cursor;
 import org.apache.directory.shared.ldap.entry.Entry;
-import org.apache.directory.shared.ldap.util.ExceptionUtils;
 import org.apache.directory.shared.ldap.NotImplementedException;
 
 import org.slf4j.Logger;