From a3c93828f847345ed67fda0cddf1089d8fb433d5 Mon Sep 17 00:00:00 2001
From: Jean-Noël Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Mon, 07 Mar 2016 15:04:03 +0000
Subject: [PATCH] OPENDJ-1342 Migrate AVA, RDN, and DN classes: DirectoryException => LocalizedIllegalArgumentException

---
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/DuplicateEntryPanel.java                       |   70 +--
 opendj-server-legacy/src/main/java/org/opends/server/plugins/PasswordPolicyImportPlugin.java                          |    7 
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/VLVIndexPanel.java                             |   17 
 opendj-server-legacy/src/main/java/org/opends/server/tasks/ImportTask.java                                            |   26 -
 opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/DomainFakeCfg.java                            |   16 
 opendj-server-legacy/src/main/java/org/opends/server/core/AddOperationBasis.java                                      |    9 
 opendj-server-legacy/src/main/java/org/opends/server/core/SearchOperationBasis.java                                   |    8 
 opendj-server-legacy/src/main/java/org/opends/server/core/VirtualAttributeConfigManager.java                          |   25 
 opendj-server-legacy/src/main/java/org/opends/server/admin/ManagedObjectPath.java                                     |    9 
 opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/ReplicationCliMain.java                      |    6 
 opendj-server-legacy/src/main/java/org/opends/server/replication/protocol/ModifyDNMsg.java                            |   15 
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/ResetUserPasswordTask.java                   |   25 
 opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/AciHandler.java                         |    7 
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewGroupPanel.java                             |   19 
 opendj-server-legacy/src/main/java/org/opends/server/tools/LDIFDiff.java                                              |    4 
 opendj-server-legacy/src/main/java/org/opends/server/protocols/internal/InternalClientConnection.java                 |    8 
 opendj-server-legacy/src/main/java/org/opends/server/core/DeleteOperationBasis.java                                   |    8 
 opendj-server-legacy/src/main/java/org/opends/server/api/AuthenticationPolicy.java                                    |    3 
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/BaseDNPanel.java                               |   11 
 opendj-server-legacy/src/main/java/org/opends/server/admin/AdministrationDataSync.java                                |   48 -
 opendj-server-legacy/src/main/java/org/opends/server/extensions/VirtualStaticGroup.java                               |    9 
 opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/InstallerHelper.java                               |    3 
 opendj-server-legacy/src/main/java/org/opends/server/tools/ExportLDIF.java                                            |   10 
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/DeleteEntryTask.java                         |   11 
 opendj-server-legacy/src/main/java/org/opends/server/admin/server/DNBuilder.java                                      |   14 
 opendj-server-legacy/src/main/java/org/opends/server/plugins/ReferentialIntegrityPlugin.java                          |    5 
 opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/ReplicationEnvironment.java    |    6 
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendStat.java                              |    7 
 opendj-server-legacy/src/main/java/org/opends/server/tasks/ExportTask.java                                            |   14 
 opendj-server-legacy/src/main/java/org/opends/server/tools/BackendToolUtils.java                                      |   11 
 opendj-server-legacy/src/main/java/org/opends/server/core/AuthenticatedUsers.java                                     |   17 
 opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/LDAPReplicationDomain.java                    |    4 
 opendj-server-legacy/src/test/java/org/opends/server/extensions/LDAPPassThroughAuthenticationPolicyTestCase.java      |   57 +-
 opendj-server-legacy/src/main/java/org/opends/server/plugins/SevenBitCleanPlugin.java                                 |   30 
 opendj-server-legacy/src/main/java/org/opends/server/loggers/AbstractTextAccessLogPublisher.java                      |   20 
 opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java                                        |   66 +--
 opendj-server-legacy/src/main/java/org/opends/server/extensions/DiskSpaceMonitor.java                                 |   10 
 opendj-server-legacy/src/test/java/org/opends/server/loggers/AbstractTextAccessLogPublisherTest.java                  |   12 
 opendj-server-legacy/src/main/java/org/opends/server/backends/ChangelogBackend.java                                   |   20 
 opendj-server-legacy/src/test/java/org/opends/server/admin/client/ldap/MockLDAPConnection.java                        |   17 
 opendj-server-legacy/src/main/java/org/opends/server/tasks/RebuildTask.java                                           |    6 
 opendj-server-legacy/src/main/java/org/opends/server/util/LDIFReader.java                                             |   51 -
 opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/DummyReplicationDomain.java                   |   16 
 opendj-server-legacy/src/main/java/org/opends/server/admin/DNPropertyDefinition.java                                  |   24 
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/ModifyEntryTask.java                         |   38 -
 opendj-server-legacy/src/main/java/org/opends/server/extensions/EntryDNVirtualAttributeProvider.java                  |    4 
 opendj-server-legacy/src/main/java/org/opends/server/tools/ListBackends.java                                          |   14 
 opendj-server-legacy/src/main/java/org/opends/server/core/ModifyDNOperationBasis.java                                 |   65 +-
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/NumSubordinateHacker.java                    |   10 
 opendj-server-legacy/src/main/java/org/opends/server/admin/Reference.java                                             |   10 
 opendj-server-legacy/src/main/java/org/opends/server/types/BackupDirectory.java                                       |    7 
 opendj-server-legacy/src/test/java/org/opends/server/types/TestRDN.java                                               |    3 
 opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/GroupDN.java                            |    3 
 opendj-server-legacy/src/main/java/org/opends/server/extensions/PlainSASLMechanismHandler.java                        |   43 -
 opendj-server-legacy/src/main/java/org/opends/server/tools/VerifyIndex.java                                           |    8 
 opendj-server-legacy/src/main/java/org/opends/server/extensions/PasswordModifyExtendedOperation.java                  |    5 
 opendj-server-legacy/src/test/java/org/opends/server/types/TestDN.java                                                |    5 
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/BrowseEntriesPanel.java                        |   12 
 opendj-server-legacy/src/main/java/org/opends/server/crypto/CryptoManagerImpl.java                                    |   54 +
 opendj-server-legacy/src/main/java/org/opends/server/tools/ImportLDIF.java                                            |   10 
 opendj-server-legacy/src/main/java/org/opends/server/core/ModifyOperationBasis.java                                   |   11 
 opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/UserDN.java                             |    3 
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/AbstractVLVIndexPanel.java                     |    7 
 opendj-server-legacy/src/main/java/org/opends/server/extensions/CRAMMD5SASLMechanismHandler.java                      |   32 
 opendj-server-legacy/src/main/java/org/opends/server/tasks/TaskUtils.java                                             |    5 
 opendj-server-legacy/src/main/java/org/opends/server/core/BindOperationBasis.java                                     |    9 
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/AddToGroupPanel.java                           |   32 -
 opendj-server-legacy/src/main/java/org/opends/server/tools/ConfigureDS.java                                           |   15 
 opendj-server-legacy/src/test/java/org/opends/server/types/TestEntry.java                                             |    7 
 opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewBaseDNPanel.java                            |    5 
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2URI.java                                   |    7 
 opendj-server-legacy/src/main/java/org/opends/server/extensions/PasswordPolicyStateExtendedOperation.java             |    7 
 opendj-server-legacy/src/main/java/org/opends/server/core/CompareOperationBasis.java                                  |   18 
 opendj-server-legacy/src/test/java/org/opends/server/types/LockManagerTest.java                                       |   25 
 opendj-server-legacy/src/main/java/org/opends/server/extensions/SASLContext.java                                      |   37 +
 opendj-server-legacy/src/main/java/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java |    3 
 opendj-server-legacy/src/main/java/org/opends/server/replication/protocol/ByteArrayScanner.java                       |    6 
 opendj-server-legacy/src/main/java/org/opends/server/crypto/CryptoManagerSync.java                                    |   19 
 78 files changed, 501 insertions(+), 819 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/DeleteEntryTask.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/DeleteEntryTask.java
index bc58144..5b82c50 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/DeleteEntryTask.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/DeleteEntryTask.java
@@ -91,16 +91,7 @@
     for (TreePath path : paths)
     {
       BasicNode node = (BasicNode)path.getLastPathComponent();
-      try
-      {
-        DN dn = DN.valueOf(node.getDN());
-        entries.add(dn);
-      }
-      catch (DirectoryException de)
-      {
-        throw new RuntimeException("Unexpected error parsing dn: "+
-            node.getDN(), de);
-      }
+      entries.add(DN.valueOf(node.getDN()));
     }
     for (BackendDescriptor backend : info.getServerDescriptor().getBackends())
     {
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/ModifyEntryTask.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/ModifyEntryTask.java
index eb5b771..6a1b0bb 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/ModifyEntryTask.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/ModifyEntryTask.java
@@ -40,6 +40,8 @@
 import org.forgerock.opendj.ldap.AVA;
 import org.forgerock.opendj.ldap.AttributeDescription;
 import org.forgerock.opendj.ldap.ByteString;
+import org.forgerock.opendj.ldap.DN;
+import org.forgerock.opendj.ldap.RDN;
 import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.opends.guitools.controlpanel.browser.BrowserController;
 import org.opends.guitools.controlpanel.datamodel.BackendDescriptor;
@@ -54,11 +56,7 @@
 import org.opends.guitools.controlpanel.ui.nodes.BasicNode;
 import org.opends.guitools.controlpanel.util.Utilities;
 import org.opends.messages.AdminToolMessages;
-import org.forgerock.opendj.ldap.DN;
-import org.opends.server.types.DirectoryException;
 import org.opends.server.types.Entry;
-import org.opends.server.types.OpenDsException;
-import org.forgerock.opendj.ldap.RDN;
 import org.opends.server.types.Schema;
 
 /** The task that is called when we must modify an entry. */
@@ -96,28 +94,22 @@
     this.newEntry = newEntry;
     this.controller = controller;
     this.treePath = path;
+
     DN newDn = newEntry.getName();
-    try
+    oldDn = DN.valueOf(oldEntry.getDN());
+    for (BackendDescriptor backend : info.getServerDescriptor().getBackends())
     {
-      oldDn = DN.valueOf(oldEntry.getDN());
-      for (BackendDescriptor backend : info.getServerDescriptor().getBackends())
+      for (BaseDNDescriptor baseDN : backend.getBaseDns())
       {
-        for (BaseDNDescriptor baseDN : backend.getBaseDns())
+        if (newDn.isSubordinateOrEqualTo(baseDN.getDn()) || oldDn.isSubordinateOrEqualTo(baseDN.getDn()))
         {
-          if (newDn.isSubordinateOrEqualTo(baseDN.getDn()) ||
-              oldDn.isSubordinateOrEqualTo(baseDN.getDn()))
-          {
-            backendSet.add(backend.getBackendID());
-          }
+          backendSet.add(backend.getBackendID());
         }
       }
-      mustRename = !newDn.equals(oldDn);
     }
-    catch (OpenDsException e)
-    {
-      throw new RuntimeException("Could not parse DN: " + oldEntry.getDN(), e);
-    }
+    mustRename = !newDn.equals(oldDn);
     modifications = getModifications(newEntry, oldEntry, getInfo());
+
     // Find password modifications
     for (ModificationItem mod : modifications)
     {
@@ -518,15 +510,7 @@
        * modifications.
        */
       ByteString oldRdnValueDeleted = null;
-      RDN oldRDN = null;
-      try
-      {
-        oldRDN = DN.valueOf(oldEntry.getDN()).rdn();
-      }
-      catch (DirectoryException unexpected)
-      {
-        throw new RuntimeException("Unexpected error parsing DN: " + oldEntry.getDN(), unexpected);
-      }
+      RDN oldRDN = DN.valueOf(oldEntry.getDN()).rdn();
       for (AVA ava : oldRDN)
       {
         if (ava.getAttributeType().equals(attrDesc.getAttributeType()))
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/ResetUserPasswordTask.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/ResetUserPasswordTask.java
index e7db79d..0f6e240 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/ResetUserPasswordTask.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/task/ResetUserPasswordTask.java
@@ -43,12 +43,8 @@
 import org.opends.server.config.ConfigConstants;
 import org.opends.server.tools.LDAPPasswordModify;
 import org.forgerock.opendj.ldap.DN;
-import org.opends.server.types.OpenDsException;
 
-/**
- * The task called when we want to reset the password of the user.
- *
- */
+/** The task called when we want to reset the password of the user. */
 public class ResetUserPasswordTask extends Task
 {
   private Set<String> backendSet;
@@ -74,24 +70,19 @@
     backendSet = new HashSet<>();
     this.node = node;
     this.newPassword = pwd;
-    try
+    dn = DN.valueOf(node.getDN());
+
+    for (BackendDescriptor backend : info.getServerDescriptor().getBackends())
     {
-      dn = DN.valueOf(node.getDN());
-      for (BackendDescriptor backend : info.getServerDescriptor().getBackends())
+      for (BaseDNDescriptor baseDN : backend.getBaseDns())
       {
-        for (BaseDNDescriptor baseDN : backend.getBaseDns())
+        if (dn.isSubordinateOrEqualTo(baseDN.getDn()))
         {
-          if (dn.isSubordinateOrEqualTo(baseDN.getDn()))
-          {
-            backendSet.add(backend.getBackendID());
-          }
+          backendSet.add(backend.getBackendID());
         }
       }
     }
-    catch (OpenDsException ode)
-    {
-      throw new RuntimeException("Could not parse DN: "+node.getDN(), ode);
-    }
+
     try
     {
       InitialLdapContext ctx =
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/AbstractVLVIndexPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/AbstractVLVIndexPanel.java
index 41883c6..8c0274a 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/AbstractVLVIndexPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/AbstractVLVIndexPanel.java
@@ -52,6 +52,7 @@
 import javax.swing.event.ListSelectionListener;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.opendj.adapter.server3x.Converters;
 import org.forgerock.opendj.config.LDAPProfile;
 import org.forgerock.opendj.config.PropertyException;
@@ -619,11 +620,11 @@
     {
       try
       {
-        org.forgerock.opendj.ldap.DN.valueOf(baseDN);
+        DN.valueOf(baseDN);
       }
-      catch (OpenDsException oe)
+      catch (LocalizedIllegalArgumentException e)
       {
-        errors.add(ERR_CTRL_PANEL_INVALID_BASE_DN_FOR_VLV_PROVIDED.get(oe.getMessageObject()));
+        errors.add(ERR_CTRL_PANEL_INVALID_BASE_DN_FOR_VLV_PROVIDED.get(e.getMessageObject()));
         setPrimaryInvalid(lBaseDN);
       }
     }
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/AddToGroupPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/AddToGroupPanel.java
index 005cf07..4460f44 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/AddToGroupPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/AddToGroupPanel.java
@@ -51,15 +51,11 @@
 import org.opends.guitools.controlpanel.util.BackgroundTask;
 import org.opends.guitools.controlpanel.util.Utilities;
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.opendj.ldap.DN;
-import org.opends.server.types.OpenDsException;
 import org.opends.server.util.ServerConstants;
 
-/**
- * The dialog that is displayed when we want to add entries to a set of groups.
- * @author jvergara
- *
- */
+/** The dialog that is displayed when we want to add entries to a set of groups. */
 public class AddToGroupPanel extends StatusGenericPanel
 {
   private static final long serialVersionUID = 1837745944604435848L;
@@ -360,10 +356,9 @@
             oneGroupDefined = true;
           }
         }
-        catch (OpenDsException ode)
+        catch (LocalizedIllegalArgumentException e)
         {
-          errors.add(INFO_CTRL_PANEL_INVALID_DN_DETAILS.get(groupDn,
-              ode.getMessageObject()));
+          errors.add(INFO_CTRL_PANEL_INVALID_DN_DETAILS.get(groupDn, e.getMessageObject()));
         }
       }
     }
@@ -394,24 +389,15 @@
           Utilities.getParentDialog(this),
           INFO_CTRL_PANEL_ADD_TO_GROUP_TITLE.get(), getInfo());
       LinkedHashSet<DN> groupDns = new LinkedHashSet<>();
-      String[] grs = groups.getText().split("\n");
-      try
+      for (String groupDn : groups.getText().split("\n"))
       {
-        for (String groupDn : grs)
+        groupDn = groupDn.trim();
+        if (groupDn.length() > 0)
         {
-          groupDn = groupDn.trim();
-          if (groupDn.length() > 0)
-          {
-            groupDns.add(DN.valueOf(groupDn));
-          }
+          groupDns.add(DN.valueOf(groupDn));
         }
       }
-      catch (OpenDsException ode)
-      {
-        throw new RuntimeException(
-            "Unexpected error decoding dn. Details: "+ode.getMessageObject(),
-            ode);
-      }
+
       try
       {
         AddToGroupTask newTask =
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/BaseDNPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/BaseDNPanel.java
index 163f97d..a9c8a76 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/BaseDNPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/BaseDNPanel.java
@@ -28,13 +28,10 @@
 import org.opends.guitools.controlpanel.event.ConfigurationChangeEvent;
 import org.opends.guitools.controlpanel.util.Utilities;
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.opendj.ldap.DN;
-import org.opends.server.types.OpenDsException;
 
-/**
- * A simple dialog where the user can provide a base DN.
- *
- */
+/** A simple dialog where the user can provide a base DN. */
 public class BaseDNPanel extends StatusGenericPanel
 {
   private static final long serialVersionUID = 2742173517231794830L;
@@ -119,9 +116,9 @@
       {
         DN.valueOf(dn.getText());
       }
-      catch (OpenDsException ode)
+      catch (LocalizedIllegalArgumentException e)
       {
-        errors.add(ERR_CTRL_PANEL_INVALID_BASE_DN_PROVIDED.get(ode.getMessageObject()));
+        errors.add(ERR_CTRL_PANEL_INVALID_BASE_DN_PROVIDED.get(e.getMessageObject()));
       }
     }
 
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/BrowseEntriesPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/BrowseEntriesPanel.java
index a695c98..c7d71d6 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/BrowseEntriesPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/BrowseEntriesPanel.java
@@ -80,7 +80,6 @@
 import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.forgerock.opendj.ldap.DN;
 import org.opends.server.types.ObjectClass;
-import org.opends.server.types.OpenDsException;
 import org.opends.server.types.Schema;
 import org.opends.server.util.ServerConstants;
 
@@ -1076,16 +1075,7 @@
       for (TreePath path : paths)
       {
         BasicNode node = (BasicNode)path.getLastPathComponent();
-        try
-        {
-          dns.add(DN.valueOf(node.getDN()));
-        }
-        catch (OpenDsException ode)
-        {
-          throw new RuntimeException(
-              "Unexpected error decoding dn. Details: "+ode.getMessageObject(),
-              ode);
-        }
+        dns.add(DN.valueOf(node.getDN()));
       }
       if (addToGroupDlg == null)
       {
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/DuplicateEntryPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/DuplicateEntryPanel.java
index c0ef2ce..3f6f8fe 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/DuplicateEntryPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/DuplicateEntryPanel.java
@@ -36,23 +36,20 @@
 import javax.swing.event.DocumentEvent;
 import javax.swing.event.DocumentListener;
 
+import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
+import org.forgerock.opendj.ldap.DN;
 import org.opends.guitools.controlpanel.browser.BrowserController;
 import org.opends.guitools.controlpanel.datamodel.CustomSearchResult;
 import org.opends.guitools.controlpanel.ui.nodes.BasicNode;
 import org.opends.guitools.controlpanel.util.BackgroundTask;
 import org.opends.guitools.controlpanel.util.LDAPEntryReader;
 import org.opends.guitools.controlpanel.util.Utilities;
-import org.forgerock.i18n.LocalizableMessage;
-import org.forgerock.opendj.ldap.DN;
-import org.opends.server.types.DirectoryException;
 import org.opends.server.util.Base64;
 import org.opends.server.util.LDIFException;
 import org.opends.server.util.ServerConstants;
 
-/**
- * The panel used to duplicate an entry.
- *
- */
+/** The panel used to duplicate an entry. */
 public class DuplicateEntryPanel extends AbstractNewEntryPanel
 {
   private static final long serialVersionUID = -9879879123123123L;
@@ -122,25 +119,18 @@
 
     DN aParentDN;
     String aRdn;
-    try
+    DN nodeDN = DN.valueOf(node.getDN());
+    if (nodeDN.isRootDN())
     {
-      DN nodeDN = DN.valueOf(node.getDN());
-      if (nodeDN.isRootDN())
-      {
-        aParentDN = nodeDN;
-        aRdn = "(1)";
-      }
-      else
-      {
-        aParentDN = nodeDN.parent();
-        aRdn = nodeDN.rdn().getFirstAVA().getAttributeValue() + "-1";
-      }
+      aParentDN = nodeDN;
+      aRdn = "(1)";
     }
-    catch (DirectoryException de)
+    else
     {
-      throw new IllegalStateException("Unexpected error decoding dn: '"+
-          node.getDN()+"' error: "+de, de);
+      aParentDN = nodeDN.parent();
+      aRdn = nodeDN.rdn().getFirstAVA().getAttributeValue() + "-1";
     }
+
     parentDN.setText(aParentDN != null ? aParentDN.toString() : "");
     name.setText(aRdn);
     password.setText("");
@@ -149,7 +139,7 @@
     readEntry(node);
   }
 
-  /** {@inheritDoc} */
+  @Override
   protected LocalizableMessage getProgressDialogTitle()
   {
     return INFO_CTRL_PANEL_DUPLICATE_ENTRY_TITLE.get();
@@ -392,17 +382,7 @@
       }
       else
       {
-        String newValue;
-        try
-        {
-          DN theDN = DN.valueOf(dn);
-          newValue = theDN.rdn().getFirstAVA().getAttributeValue().toString();
-        }
-        catch (DirectoryException de)
-        {
-          throw new IllegalStateException("Unexpected error with dn: '"+dn+
-              "' "+de, de);
-        }
+        String newValue = getFirstValue(dn);
         if (values.size() == 1)
         {
           sb.append("\n");
@@ -410,17 +390,7 @@
         }
         else
         {
-          String oldValue;
-          try
-          {
-            DN oldDN = DN.valueOf(entryToDuplicate.getDN());
-            oldValue = oldDN.rdn().getFirstAVA().getAttributeValue().toString();
-          }
-          catch (DirectoryException de)
-          {
-            throw new IllegalStateException("Unexpected error with dn: '"+
-                entryToDuplicate.getDN()+"' "+de, de);
-          }
+          String oldValue = getFirstValue(entryToDuplicate.getDN());
           for (Object value : values)
           {
             sb.append("\n");
@@ -439,6 +409,11 @@
     return sb.toString();
   }
 
+  private String getFirstValue(String dn)
+  {
+    return DN.valueOf(dn).rdn().getFirstAVA().getAttributeValue().toString();
+  }
+
   private void browseClicked()
   {
     if (browseDlg == null)
@@ -510,10 +485,9 @@
             displayMainPanel();
             setEnabledOK(true);
           }
-          catch (DirectoryException de)
+          catch (LocalizedIllegalArgumentException e)
           {
-            displayErrorMessage(INFO_CTRL_PANEL_ERROR_DIALOG_TITLE.get(),
-                de.getMessageObject());
+            displayErrorMessage(INFO_CTRL_PANEL_ERROR_DIALOG_TITLE.get(), e.getMessageObject());
           }
         }
       }
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewBaseDNPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewBaseDNPanel.java
index 9b46ef9..85da51e 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewBaseDNPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewBaseDNPanel.java
@@ -57,6 +57,7 @@
 import javax.swing.event.DocumentListener;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.opendj.config.LDAPProfile;
 import org.forgerock.opendj.ldap.DN;
 import org.opends.guitools.controlpanel.datamodel.BackendDescriptor;
@@ -623,9 +624,9 @@
         }
       }
     }
-    catch (OpenDsException oe)
+    catch (LocalizedIllegalArgumentException e)
     {
-      errors.add(INFO_CTRL_PANEL_INVALID_DN_DETAILS.get(dn, oe.getMessageObject()));
+      errors.add(INFO_CTRL_PANEL_INVALID_DN_DETAILS.get(dn, e.getMessageObject()));
       setPrimaryInvalid(lDirectoryBaseDN);
     }
 
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewGroupPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewGroupPanel.java
index 0bfe290..0fda2c5 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewGroupPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/NewGroupPanel.java
@@ -54,6 +54,7 @@
 import org.opends.guitools.controlpanel.ui.nodes.DndBrowserNodes;
 import org.opends.guitools.controlpanel.util.Utilities;
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.opendj.ldap.DN;
 import org.opends.server.types.LDAPURL;
 import org.opends.server.types.OpenDsException;
@@ -212,10 +213,10 @@
               oneMemberDefined = true;
             }
           }
-          catch (OpenDsException ode)
+          catch (LocalizedIllegalArgumentException e)
           {
             errorFound = true;
-            errors.add(ERR_CTRL_PANEL_MEMBER_VALUE_NOT_VALID.get(member, ode.getMessageObject()));
+            errors.add(ERR_CTRL_PANEL_MEMBER_VALUE_NOT_VALID.get(member, e.getMessageObject()));
           }
         }
       }
@@ -280,10 +281,10 @@
           errors.add(ERR_CTRL_PANEL_REFERENCE_GROUP_NOT_DYNAMIC.get());
         }
       }
-      catch (OpenDsException ode)
+      catch (LocalizedIllegalArgumentException e)
       {
         errorFound = true;
-        errors.add(ERR_CTRL_PANEL_REFERENCE_GROUP_NOT_VALID.get(ode.getMessageObject()));
+        errors.add(ERR_CTRL_PANEL_REFERENCE_GROUP_NOT_VALID.get(e.getMessageObject()));
       }
       if (errorFound)
       {
@@ -697,15 +698,7 @@
         member = member.trim();
         if (member.length() > 0)
         {
-          try
-          {
-            dns.add(DN.valueOf(member));
-          }
-          catch (OpenDsException ode)
-          {
-            throw new RuntimeException("Unexpected error decoding DN: "+
-                member, ode);
-          }
+          dns.add(DN.valueOf(member));
         }
       }
 
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/VLVIndexPanel.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/VLVIndexPanel.java
index 851d66e..75b654a 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/VLVIndexPanel.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/ui/VLVIndexPanel.java
@@ -49,6 +49,7 @@
 import javax.swing.event.ListDataListener;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.opendj.config.server.ConfigException;
 import org.forgerock.opendj.ldap.DN;
 import org.forgerock.opendj.ldap.SearchScope;
@@ -519,7 +520,7 @@
       return !index.getBaseDN().equals(DN.valueOf(getBaseDN())) || !index.getScope().equals(getScope())
           || !index.getFilter().equals(filter.getText().trim()) || !index.getSortOrder().equals(getSortOrder());
     }
-    catch (final OpenDsException odse)
+    catch (final LocalizedIllegalArgumentException unused)
     {
       // The base DN is not valid.  This means that the index has been modified.
       return true;
@@ -776,18 +777,10 @@
       args.add("--index-name");
       args.add(indexName);
 
-      try
+      if (!indexToModify.getBaseDN().equals(DN.valueOf(baseDN)))
       {
-        final DN b = DN.valueOf(baseDN);
-        if (!indexToModify.getBaseDN().equals(b))
-        {
-          args.add("--set");
-          args.add("base-dn:" + baseDN);
-        }
-      }
-      catch (final OpenDsException odse)
-      {
-        throw new RuntimeException("Unexpected error parsing DN " + getBaseDN() + ": " + odse, odse);
+        args.add("--set");
+        args.add("base-dn:" + baseDN);
       }
 
       if (indexToModify.getScope() != searchScope)
diff --git a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/NumSubordinateHacker.java b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/NumSubordinateHacker.java
index f5097ce..6ee92a8 100644
--- a/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/NumSubordinateHacker.java
+++ b/opendj-server-legacy/src/main/java/org/opends/guitools/controlpanel/util/NumSubordinateHacker.java
@@ -21,7 +21,6 @@
 
 import org.forgerock.opendj.ldap.DN;
 import org.opends.server.types.LDAPURL;
-import org.opends.server.types.OpenDsException;
 
 /** Class used to handle the case where numsubordinates does not work between databases. */
 public class NumSubordinateHacker {
@@ -54,14 +53,7 @@
     if (!isUnreliableEntryListEmpty) {
       boolean isInServer = serverHost.equalsIgnoreCase(url.getHost()) && serverPort == url.getPort();
       if (isInServer) {
-        try
-        {
-          return unreliableEntryList.contains(DN.valueOf(url.getRawBaseDN()));
-        }
-        catch (OpenDsException oe)
-        {
-          throw new RuntimeException("Error decoding DN of url: " + url);
-        }
+        return unreliableEntryList.contains(DN.valueOf(url.getRawBaseDN()));
       }
     }
     return false;
diff --git a/opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/InstallerHelper.java b/opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/InstallerHelper.java
index b058269..d1c3583 100644
--- a/opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/InstallerHelper.java
+++ b/opendj-server-legacy/src/main/java/org/opends/quicksetup/installer/InstallerHelper.java
@@ -48,6 +48,7 @@
 import javax.naming.ldap.InitialLdapContext;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.config.server.ConfigException;
 import org.opends.guitools.controlpanel.util.Utilities;
@@ -292,7 +293,7 @@
     try (LDIFWriter writer = new LDIFWriter(exportConfig)) {
       DN dn = DN.valueOf(baseDn);
       writer.writeEntry(StaticUtils.createEntry(dn));
-    } catch (DirectoryException | LDIFException | IOException de) {
+    } catch (LocalizedIllegalArgumentException | LDIFException | IOException de) {
       throw new ApplicationException(
           ReturnCode.CONFIGURATION_ERROR,
               getThrowableMsg(INFO_ERROR_IMPORTING_LDIF.get(), de), de);
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/admin/AdministrationDataSync.java b/opendj-server-legacy/src/main/java/org/opends/server/admin/AdministrationDataSync.java
index 61ef77f..28e4b8a 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/admin/AdministrationDataSync.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/admin/AdministrationDataSync.java
@@ -23,6 +23,7 @@
 import java.util.List;
 
 import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.ldap.DN;
 import org.forgerock.opendj.ldap.ModificationType;
 import org.forgerock.opendj.ldap.ResultCode;
 import org.forgerock.opendj.ldap.SearchScope;
@@ -34,8 +35,6 @@
 import org.opends.server.protocols.internal.SearchRequest;
 import org.opends.server.types.Attribute;
 import org.opends.server.types.Attributes;
-import org.forgerock.opendj.ldap.DN;
-import org.opends.server.types.DirectoryException;
 import org.opends.server.types.Entry;
 import org.opends.server.types.Modification;
 import org.opends.server.types.SearchResultEntry;
@@ -118,8 +117,6 @@
    */
   private DN searchServerEntry()
   {
-    DN returnDN = null;
-
     // Get the LDAP and LDAPS port
     String ldapPort = getAttr("cn=LDAP Connection Handler,cn=Connection Handlers,cn=config", LDAP_PORT);
     String ldapsPort = getAttr("cn=LDAPS Connection Handler,cn=Connection Handlers,cn=config", LDAP_PORT);
@@ -148,25 +145,17 @@
     }
 
     // Look for a local server with the Ldap Port.
-    try
+    SearchRequest request = newSearchRequest(DN.valueOf("cn=Servers,cn=admin data"), SearchScope.SINGLE_LEVEL);
+    InternalSearchOperation op = internalConnection.processSearch(request);
+    if (op.getResultCode() == ResultCode.SUCCESS)
     {
-      SearchRequest request = newSearchRequest(DN.valueOf("cn=Servers,cn=admin data"), SearchScope.SINGLE_LEVEL);
-      InternalSearchOperation op = internalConnection.processSearch(request);
-      if (op.getResultCode() == ResultCode.SUCCESS)
+      Entry entry = findSameHostAndPort(op.getSearchEntries(), hostName, ldapPort, ldapsPortEnable, ldapsPort);
+      if (entry != null)
       {
-        Entry entry = findSameHostAndPort(op.getSearchEntries(), hostName, ldapPort, ldapsPortEnable, ldapsPort);
-        if (entry != null)
-        {
-          returnDN = entry.getName();
-        }
+        return entry.getName();
       }
     }
-    catch (DirectoryException e)
-    {
-      // never happens because the filter is always valid.
-      return null;
-    }
-    return returnDN;
+    return null;
   }
 
   private Entry findSameHostAndPort(LinkedList<SearchResultEntry> searchResultEntries,
@@ -217,25 +206,14 @@
    */
   private String getAttr(String baseDN, String attrName)
   {
-    InternalSearchOperation search;
-    try
-    {
-      SearchRequest request = Requests.newSearchRequest(DN.valueOf(baseDN), SearchScope.BASE_OBJECT)
-          .addAttribute(attrName);
-      search = internalConnection.processSearch(request);
-      if (search.getResultCode() != ResultCode.SUCCESS)
-      {
-        // can not happen
-        // best effort.
-        // TODO Log an Error.
-        return null;
-      }
-    }
-    catch (DirectoryException e)
+    SearchRequest request = Requests.newSearchRequest(DN.valueOf(baseDN), SearchScope.BASE_OBJECT)
+        .addAttribute(attrName);
+    InternalSearchOperation search = internalConnection.processSearch(request);
+    if (search.getResultCode() != ResultCode.SUCCESS)
     {
       // can not happen
       // best effort.
-      logger.traceException(e);
+      // TODO Log an Error.
       return null;
     }
 
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/admin/DNPropertyDefinition.java b/opendj-server-legacy/src/main/java/org/opends/server/admin/DNPropertyDefinition.java
index ed976d0..fae4101 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/admin/DNPropertyDefinition.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/admin/DNPropertyDefinition.java
@@ -17,16 +17,12 @@
 
 package org.opends.server.admin;
 
-
-
 import static org.forgerock.util.Reject.ifNull;
 
 import java.util.EnumSet;
 
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.opendj.ldap.DN;
-import org.opends.server.types.DirectoryException;
-
-
 
 /**
  * DN property definition.
@@ -76,15 +72,7 @@
      */
     public void setBaseDN(String baseDN)
         throws IllegalArgumentException {
-      if (baseDN == null) {
-        setBaseDN((DN) null);
-      } else {
-        try {
-          setBaseDN(DN.valueOf(baseDN));
-        } catch (DirectoryException e) {
-          throw new IllegalArgumentException(e);
-        }
-      }
+      setBaseDN(baseDN != null ? DN.valueOf(baseDN) : null);
     }
 
 
@@ -177,9 +165,6 @@
     }
   }
 
-
-
-  /** {@inheritDoc} */
   @Override
   public DN decodeValue(String value)
       throws PropertyException {
@@ -189,14 +174,11 @@
       DN dn = DN.valueOf(value);
       validateValue(dn);
       return dn;
-    } catch (DirectoryException | PropertyException e) {
+    } catch (LocalizedIllegalArgumentException | PropertyException e) {
       throw PropertyException.illegalPropertyValueException(this, value);
     }
   }
 
-
-
-  /** {@inheritDoc} */
   @Override
   public <R, P> R accept(PropertyDefinitionVisitor<R, P> v, P p) {
     return v.visitDN(this, p);
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/admin/ManagedObjectPath.java b/opendj-server-legacy/src/main/java/org/opends/server/admin/ManagedObjectPath.java
index b1f636e..37bedb9 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/admin/ManagedObjectPath.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/admin/ManagedObjectPath.java
@@ -30,7 +30,6 @@
 import org.opends.server.admin.std.server.RootCfg;
 import org.opends.server.core.DirectoryServer;
 import org.forgerock.opendj.ldap.schema.AttributeType;
-import org.opends.server.types.*;
 
 /**
  * A path which can be used to determine the location of a managed
@@ -192,12 +191,8 @@
     /** Appends the RDN sequence representing the provided relation. */
     private void appendManagedObjectPathElement(RelationDefinition<?, ?> r) {
       // Add the RDN sequence representing the relation.
-      try {
-        DN localName = DN.valueOf(profile.getRelationRDNSequence(r));
-        dn = dn.child(localName);
-      } catch (DirectoryException e) {
-        throw new RuntimeException(e);
-      }
+      DN localName = DN.valueOf(profile.getRelationRDNSequence(r));
+      dn = dn.child(localName);
     }
 
 
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/admin/Reference.java b/opendj-server-legacy/src/main/java/org/opends/server/admin/Reference.java
index f55fdda..81f07fa 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/admin/Reference.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/admin/Reference.java
@@ -18,7 +18,6 @@
 
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.DN;
-import org.opends.server.types.DirectoryException;
 import org.forgerock.opendj.ldap.RDN;
 import org.opends.server.util.StaticUtils;
 
@@ -70,14 +69,7 @@
           + "\" is not associated with the definition \"" + d.getName() + "\"");
     }
 
-    DN dn;
-    try {
-      dn = DN.valueOf(s);
-    } catch (DirectoryException e) {
-      throw new IllegalArgumentException("Unabled to decode the DN string: \""
-          + s + "\"");
-    }
-
+    DN dn = DN.valueOf(s);
     RDN rdn = dn.rdn();
     if (rdn == null) {
       throw new IllegalArgumentException("Unabled to decode the DN string: \""
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/admin/server/DNBuilder.java b/opendj-server-legacy/src/main/java/org/opends/server/admin/server/DNBuilder.java
index 73cbc83..d99257d 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/admin/server/DNBuilder.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/admin/server/DNBuilder.java
@@ -19,11 +19,10 @@
 
 
 
+import org.forgerock.opendj.ldap.DN;
 import org.opends.server.admin.LDAPProfile;
 import org.opends.server.admin.ManagedObjectPath;
 import org.opends.server.admin.RelationDefinition;
-import org.forgerock.opendj.ldap.DN;
-import org.opends.server.types.DirectoryException;
 
 
 
@@ -61,14 +60,9 @@
   public static DN create(ManagedObjectPath<?, ?> path,
       RelationDefinition<?, ?> relation) {
     DN dn = path.toDN();
-
-    try {
-      LDAPProfile profile = LDAPProfile.getInstance();
-      DN localName = DN.valueOf(profile.getRelationRDNSequence(relation));
-      return dn.child(localName);
-    } catch (DirectoryException e) {
-      throw new RuntimeException(e);
-    }
+    LDAPProfile profile = LDAPProfile.getInstance();
+    DN localName = DN.valueOf(profile.getRelationRDNSequence(relation));
+    return dn.child(localName);
   }
 
 
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/api/AuthenticationPolicy.java b/opendj-server-legacy/src/main/java/org/opends/server/api/AuthenticationPolicy.java
index 24e01de..1511585 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/api/AuthenticationPolicy.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/api/AuthenticationPolicy.java
@@ -21,6 +21,7 @@
 import java.util.List;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.DN;
@@ -82,7 +83,7 @@
       {
         subentryDN = DN.valueOf(v);
       }
-      catch (DirectoryException e)
+      catch (LocalizedIllegalArgumentException e)
       {
         logger.traceException(e);
 
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/AciHandler.java b/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/AciHandler.java
index ebdaad8..1b4bba9 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/AciHandler.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/AciHandler.java
@@ -22,10 +22,11 @@
 import java.util.SortedSet;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.config.server.ConfigException;
-import org.forgerock.opendj.ldap.AttributeDescription;
 import org.forgerock.opendj.ldap.AVA;
+import org.forgerock.opendj.ldap.AttributeDescription;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.DN;
 import org.forgerock.opendj.ldap.ModificationType;
@@ -143,7 +144,7 @@
     {
       debugSearchIndexDN = DN.valueOf("cn=debugsearch");
     }
-    catch (DirectoryException ex)
+    catch (LocalizedIllegalArgumentException unexpected)
     {
       // Should never happen.
     }
@@ -551,7 +552,7 @@
           container.setRights(container.getRights() | ACI_SELF);
         }
       }
-      catch (DirectoryException ex)
+      catch (LocalizedIllegalArgumentException ex)
       {
         // Log a message and keep going.
         logger.warn(WARN_ACI_NOT_VALID_DN, dnString);
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/GroupDN.java b/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/GroupDN.java
index 1effe8b..9d9b6c4 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/GroupDN.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/GroupDN.java
@@ -25,6 +25,7 @@
 import java.util.regex.Pattern;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.DN;
 import org.opends.server.api.Group;
@@ -147,7 +148,7 @@
                     matched=EnumEvalResult.TRUE;
                     break;
                 }
-            } catch (DirectoryException ex) {
+            } catch (LocalizedIllegalArgumentException ignored) {
                 break;
             }
         }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/UserDN.java b/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/UserDN.java
index 850ca75..de54459 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/UserDN.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/authorization/dseecompat/UserDN.java
@@ -21,6 +21,7 @@
 import java.util.List;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.DN;
 import org.forgerock.opendj.ldap.SearchScope;
@@ -386,7 +387,7 @@
                 if(dn.equals(clientDN)) {
                     return EnumEvalResult.TRUE;
                 }
-            } catch (DirectoryException ex) {
+            } catch (LocalizedIllegalArgumentException ignored) {
                 break;
             }
         }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/ChangelogBackend.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/ChangelogBackend.java
index 174610c..3d27a72 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/ChangelogBackend.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/ChangelogBackend.java
@@ -45,9 +45,12 @@
 import org.forgerock.opendj.config.server.ConfigException;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ConditionResult;
+import org.forgerock.opendj.ldap.DN;
 import org.forgerock.opendj.ldap.ModificationType;
+import org.forgerock.opendj.ldap.RDN;
 import org.forgerock.opendj.ldap.ResultCode;
 import org.forgerock.opendj.ldap.SearchScope;
+import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.opends.server.admin.Configuration;
 import org.opends.server.api.Backend;
 import org.opends.server.config.ConfigConstants;
@@ -84,13 +87,11 @@
 import org.opends.server.replication.server.changelog.file.ECLMultiDomainDBCursor;
 import org.opends.server.replication.server.changelog.file.MultiDomainDBCursor;
 import org.opends.server.types.Attribute;
-import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.opends.server.types.Attributes;
 import org.opends.server.types.BackupConfig;
 import org.opends.server.types.BackupDirectory;
 import org.opends.server.types.CanceledOperationException;
 import org.opends.server.types.Control;
-import org.forgerock.opendj.ldap.DN;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.Entry;
 import org.opends.server.types.FilterType;
@@ -102,7 +103,6 @@
 import org.opends.server.types.Modification;
 import org.opends.server.types.ObjectClass;
 import org.opends.server.types.Privilege;
-import org.forgerock.opendj.ldap.RDN;
 import org.opends.server.types.RawAttribute;
 import org.opends.server.types.RestoreConfig;
 import org.opends.server.types.SearchFilter;
@@ -194,19 +194,7 @@
   private static final AttributeType MODIFIERS_NAME_TYPE = getAttributeType(OP_ATTR_MODIFIERS_NAME);
 
   /** The base DN for the external change log. */
-  public static final DN CHANGELOG_BASE_DN;
-
-  static
-  {
-    try
-    {
-      CHANGELOG_BASE_DN = DN.valueOf(DN_EXTERNAL_CHANGELOG_ROOT);
-    }
-    catch (DirectoryException e)
-    {
-      throw new RuntimeException(e);
-    }
-  }
+  public static final DN CHANGELOG_BASE_DN = DN.valueOf(DN_EXTERNAL_CHANGELOG_ROOT);
 
   /** The set of base DNs for this backend. */
   private DN[] baseDNs;
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendStat.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendStat.java
index f2be8bb..f48dc6c 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendStat.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/BackendStat.java
@@ -35,6 +35,7 @@
 import java.util.TreeSet;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.opendj.config.SizeUnit;
 import org.forgerock.opendj.config.server.ConfigException;
 import org.forgerock.opendj.ldap.ByteString;
@@ -952,10 +953,10 @@
     {
       return DN.valueOf(baseDNArg.getValue());
     }
-    catch (DirectoryException de)
+    catch (LocalizedIllegalArgumentException e)
     {
-      printWrappedText(err, ERR_BACKEND_DEBUG_DECODE_BASE_DN.get(baseDNArg.getValue(), getExceptionMessage(de)));
-      throw de;
+      printWrappedText(err, ERR_BACKEND_DEBUG_DECODE_BASE_DN.get(baseDNArg.getValue(), getExceptionMessage(e)));
+      throw e;
     }
   }
 
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2URI.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2URI.java
index 4335e44..b1c3a27 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2URI.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/DN2URI.java
@@ -27,12 +27,14 @@
 import java.util.Map;
 import java.util.Set;
 
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.ByteSequence;
 import org.forgerock.opendj.ldap.ByteSequenceReader;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteStringBuilder;
 import org.forgerock.opendj.ldap.ConditionResult;
+import org.forgerock.opendj.ldap.DN;
 import org.forgerock.opendj.ldap.ResultCode;
 import org.forgerock.opendj.ldap.SearchScope;
 import org.forgerock.opendj.ldap.schema.AttributeType;
@@ -45,7 +47,6 @@
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.SearchOperation;
 import org.opends.server.types.Attribute;
-import org.forgerock.opendj.ldap.DN;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.Entry;
 import org.opends.server.types.LDAPURL;
@@ -156,7 +157,7 @@
       {
         return DN.valueOf(r.readStringUtf8(dnLength));
       }
-      catch (DirectoryException e)
+      catch (LocalizedIllegalArgumentException e)
       {
         throw new StorageRuntimeException("Unable to decode DN from binary value", e);
       }
@@ -428,7 +429,7 @@
     {
       return toKey(DN.valueOf(key));
     }
-    catch (DirectoryException e)
+    catch (LocalizedIllegalArgumentException e)
     {
       return ByteString.empty();
     }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/AddOperationBasis.java b/opendj-server-legacy/src/main/java/org/opends/server/core/AddOperationBasis.java
index 1aee4c8..598954f 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/AddOperationBasis.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/AddOperationBasis.java
@@ -21,6 +21,7 @@
 import java.util.List;
 import java.util.Map;
 
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.DN;
@@ -35,7 +36,6 @@
 import org.opends.server.types.CancelResult;
 import org.opends.server.types.CanceledOperationException;
 import org.opends.server.types.Control;
-import org.opends.server.types.DirectoryException;
 import org.opends.server.types.Entry;
 import org.opends.server.types.LDAPException;
 import org.opends.server.types.ObjectClass;
@@ -196,10 +196,11 @@
         entryDN = DN.valueOf(rawEntryDN);
       }
     }
-    catch (DirectoryException de)
+    catch (LocalizedIllegalArgumentException e)
     {
-      logger.traceException(de);
-      setResponseData(de);
+      logger.traceException(e);
+      setResultCode(ResultCode.INVALID_DN_SYNTAX);
+      appendErrorMessage(e.getMessageObject());
     }
     return entryDN;
   }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/AuthenticatedUsers.java b/opendj-server-legacy/src/main/java/org/opends/server/core/AuthenticatedUsers.java
index f662634..bab5c20 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/AuthenticatedUsers.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/AuthenticatedUsers.java
@@ -24,13 +24,12 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.ldap.DN;
 import org.forgerock.opendj.ldap.ResultCode;
 import org.opends.server.api.ClientConnection;
 import org.opends.server.api.DITCacheMap;
 import org.opends.server.api.plugin.InternalDirectoryServerPlugin;
 import org.opends.server.api.plugin.PluginResult.PostResponse;
-import org.forgerock.opendj.ldap.DN;
-import org.opends.server.types.DirectoryException;
 import org.opends.server.types.DisconnectReason;
 import org.opends.server.types.Entry;
 import org.opends.server.types.operation.PostResponseDeleteOperation;
@@ -71,7 +70,7 @@
    */
   public AuthenticatedUsers()
   {
-    super(toDN(CONFIG_DN), EnumSet.of(
+    super(DN.valueOf(CONFIG_DN), EnumSet.of(
         // No implementation is required for add operations, since a connection
         // can not be authenticated as a user that does not exist yet.
         POST_RESPONSE_MODIFY, POST_RESPONSE_MODIFY_DN, POST_RESPONSE_DELETE),
@@ -82,18 +81,6 @@
     DirectoryServer.registerInternalPlugin(this);
   }
 
-  private static DN toDN(String dn)
-  {
-    try
-    {
-      return DN.valueOf(dn);
-    }
-    catch (DirectoryException e)
-    {
-      throw new RuntimeException(e);
-    }
-  }
-
   /**
    * Registers the provided user DN and client connection with this object.
    *
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/BindOperationBasis.java b/opendj-server-legacy/src/main/java/org/opends/server/core/BindOperationBasis.java
index f142742..588f296 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/BindOperationBasis.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/BindOperationBasis.java
@@ -20,6 +20,7 @@
 import java.util.List;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.DN;
@@ -288,7 +289,6 @@
     bindDN = null;
   }
 
-  /** {@inheritDoc} */
   @Override
   public final DN getBindDN()
   {
@@ -299,17 +299,16 @@
         bindDN = DN.valueOf(rawBindDN);
       }
     }
-    catch (DirectoryException de)
+    catch (LocalizedIllegalArgumentException e)
     {
-      logger.traceException(de);
+      logger.traceException(e);
 
       setResultCode(ResultCode.INVALID_CREDENTIALS);
-      setAuthFailureReason(de.getMessageObject());
+      setAuthFailureReason(e.getMessageObject());
     }
     return bindDN;
   }
 
-  /** {@inheritDoc} */
   @Override
   public final ByteString getSimplePassword()
   {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/CompareOperationBasis.java b/opendj-server-legacy/src/main/java/org/opends/server/core/CompareOperationBasis.java
index 30bcd41..68f0a6a 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/CompareOperationBasis.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/CompareOperationBasis.java
@@ -21,6 +21,7 @@
 import java.util.List;
 import java.util.Set;
 
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.AttributeDescription;
 import org.forgerock.opendj.ldap.ByteString;
@@ -31,7 +32,6 @@
 import org.opends.server.types.CancelResult;
 import org.opends.server.types.CanceledOperationException;
 import org.opends.server.types.Control;
-import org.opends.server.types.DirectoryException;
 import org.opends.server.types.Entry;
 import org.opends.server.types.Operation;
 import org.opends.server.types.OperationType;
@@ -172,12 +172,12 @@
       {
         entryDN = DN.valueOf(rawEntryDN);
       }
-      catch (DirectoryException de)
+      catch (LocalizedIllegalArgumentException e)
       {
-        logger.traceException(de);
+        logger.traceException(e);
 
-        setResultCode(de.getResultCode());
-        appendErrorMessage(de.getMessageObject());
+        setResultCode(ResultCode.INVALID_DN_SYNTAX);
+        appendErrorMessage(e.getMessageObject());
       }
     }
     return entryDN;
@@ -339,12 +339,12 @@
           entryDN = DN.valueOf(rawEntryDN);
         }
       }
-      catch (DirectoryException de)
+      catch (LocalizedIllegalArgumentException e)
       {
-        logger.traceException(de);
+        logger.traceException(e);
 
-        setResultCode(de.getResultCode());
-        appendErrorMessage(de.getMessageObject());
+        setResultCode(ResultCode.INVALID_DN_SYNTAX);
+        appendErrorMessage(e.getMessageObject());
 
         return;
       }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/DeleteOperationBasis.java b/opendj-server-legacy/src/main/java/org/opends/server/core/DeleteOperationBasis.java
index 51a778d..e740419 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/DeleteOperationBasis.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/DeleteOperationBasis.java
@@ -19,6 +19,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.DN;
@@ -125,10 +126,11 @@
         entryDN = DN.valueOf(rawEntryDN);
       }
     }
-    catch (DirectoryException de)
+    catch (LocalizedIllegalArgumentException e)
     {
-      logger.traceException(de);
-      setResponseData(de);
+      logger.traceException(e);
+      setResultCode(ResultCode.INVALID_DN_SYNTAX);
+      appendErrorMessage(e.getMessageObject());
     }
     return entryDN;
   }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java b/opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java
index 1d79696..5aebedc 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/DirectoryServer.java
@@ -58,6 +58,7 @@
 import javax.management.MBeanServerFactory;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.config.server.ConfigException;
 import org.forgerock.opendj.ldap.ResultCode;
@@ -1642,53 +1643,39 @@
     // Re-register all of the change listeners with the configuration.
     for (String dnStr : addListeners.keySet())
     {
-      try
+      for (ConfigAddListener listener : addListeners.get(dnStr))
       {
-        DN dn = DN.valueOf(dnStr);
-        for (ConfigAddListener listener : addListeners.get(dnStr))
-        {
-          configHandler.getConfigEntry(dn).registerAddListener(listener);
-        }
-      }
-      catch (DirectoryException de)
-      {
-        // This should never happen, so we'll just re-throw it.
-        throw new InitializationException(de.getMessageObject());
+        configHandler.getConfigEntry(toDn(dnStr)).registerAddListener(listener);
       }
     }
 
     for (String dnStr : deleteListeners.keySet())
     {
-      try
+      for (ConfigDeleteListener listener : deleteListeners.get(dnStr))
       {
-        DN dn = DN.valueOf(dnStr);
-        for (ConfigDeleteListener listener : deleteListeners.get(dnStr))
-        {
-          configHandler.getConfigEntry(dn).registerDeleteListener(listener);
-        }
-      }
-      catch (DirectoryException de)
-      {
-        // This should never happen, so we'll just re-throw it.
-        throw new InitializationException(de.getMessageObject());
+        configHandler.getConfigEntry(toDn(dnStr)).registerDeleteListener(listener);
       }
     }
 
     for (String dnStr : changeListeners.keySet())
     {
-      try
+      for (ConfigChangeListener listener : changeListeners.get(dnStr))
       {
-        DN dn = DN.valueOf(dnStr);
-        for (ConfigChangeListener listener : changeListeners.get(dnStr))
-        {
-          configHandler.getConfigEntry(dn).registerChangeListener(listener);
-        }
+        configHandler.getConfigEntry(toDn(dnStr)).registerChangeListener(listener);
       }
-      catch (DirectoryException de)
-      {
-        // This should never happen, so we'll just re-throw it.
-        throw new InitializationException(de.getMessageObject());
-      }
+    }
+  }
+
+  private DN toDn(String dn) throws InitializationException
+  {
+    try
+    {
+      return DN.valueOf(dn);
+    }
+    catch (LocalizedIllegalArgumentException e)
+    {
+      // This should never happen, so we'll just re-throw it.
+      throw new InitializationException(e.getMessageObject(), e);
     }
   }
 
@@ -7243,17 +7230,8 @@
    */
   public static DN getMonitorProviderDN(MonitorProvider provider)
   {
-    String monitorName = provider.getMonitorInstanceName();
-    try
-    {
-      // Get a complete DN which could be a tree naming schema
-      return DN.valueOf("cn="+monitorName+","+DN_MONITOR_ROOT);
-    }
-    catch (DirectoryException e)
-    {
-      // Cannot reach this point.
-      throw new RuntimeException();
-    }
+    // Get a complete DN which could be a tree naming schema
+    return DN.valueOf("cn=" + provider.getMonitorInstanceName() + "," + DN_MONITOR_ROOT);
   }
 
   /**
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/ModifyDNOperationBasis.java b/opendj-server-legacy/src/main/java/org/opends/server/core/ModifyDNOperationBasis.java
index 0c9b288..f297cb5 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/ModifyDNOperationBasis.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/ModifyDNOperationBasis.java
@@ -15,9 +15,11 @@
  * Portions Copyright 2011-2016 ForgeRock AS.
  */
 package org.opends.server.core;
+
 import java.util.ArrayList;
 import java.util.List;
 
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.DN;
@@ -28,8 +30,6 @@
 import org.opends.server.types.CancelResult;
 import org.opends.server.types.CanceledOperationException;
 import org.opends.server.types.Control;
-import org.opends.server.types.DN;
-import org.opends.server.types.DirectoryException;
 import org.opends.server.types.Entry;
 import org.opends.server.types.Modification;
 import org.opends.server.types.Operation;
@@ -202,27 +202,31 @@
     entryDN = null;
   }
 
-  /** {@inheritDoc} */
   @Override
   public final DN getEntryDN()
   {
-    try
+    if (entryDN == null)
     {
-      if (entryDN == null)
-      {
-        entryDN = DN.valueOf(rawEntryDN);
-      }
-    }
-    catch (DirectoryException de)
-    {
-      logger.traceException(de);
-      setResultCode(de.getResultCode());
-      appendErrorMessage(de.getMessageObject());
+      entryDN = valueOfRawDN(rawEntryDN);
     }
     return entryDN;
   }
 
-  /** {@inheritDoc} */
+  private DN valueOfRawDN(ByteString dn)
+  {
+    try
+    {
+      return dn != null ? DN.valueOf(dn) : null;
+    }
+    catch (LocalizedIllegalArgumentException e)
+    {
+      logger.traceException(e);
+      setResultCode(ResultCode.INVALID_DN_SYNTAX);
+      appendErrorMessage(e.getMessageObject());
+      return null;
+    }
+  }
+
   @Override
   public final ByteString getRawNewRDN()
   {
@@ -250,12 +254,12 @@
         newRDN = RDN.valueOf(rawNewRDN.toString());
       }
     }
-    catch (DirectoryException de)
+    catch (LocalizedIllegalArgumentException e)
     {
-      logger.traceException(de);
+      logger.traceException(e);
 
-      setResultCode(de.getResultCode());
-      appendErrorMessage(de.getMessageObject());
+      setResultCode(ResultCode.INVALID_DN_SYNTAX);
+      appendErrorMessage(e.getMessageObject());
     }
     return newRDN;
   }
@@ -291,35 +295,16 @@
     newDN = null;
   }
 
-  /** {@inheritDoc} */
   @Override
   public final DN getNewSuperior()
   {
-    if (rawNewSuperior == null)
+    if (newSuperior == null)
     {
-      newSuperior = null;
-    }
-    else
-    {
-      try
-      {
-        if (newSuperior == null)
-        {
-          newSuperior = DN.valueOf(rawNewSuperior);
-        }
-      }
-      catch (DirectoryException de)
-      {
-        logger.traceException(de);
-
-        setResultCode(de.getResultCode());
-        appendErrorMessage(de.getMessageObject());
-      }
+      newSuperior = valueOfRawDN(rawNewSuperior);
     }
     return newSuperior;
   }
 
-  /** {@inheritDoc} */
   @Override
   public final List<Modification> getModifications()
   {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/ModifyOperationBasis.java b/opendj-server-legacy/src/main/java/org/opends/server/core/ModifyOperationBasis.java
index e7883d4..e8bd7fe 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/ModifyOperationBasis.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/ModifyOperationBasis.java
@@ -19,6 +19,7 @@
 import java.util.ArrayList;
 import java.util.List;
 
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.DN;
@@ -153,7 +154,6 @@
     entryDN = null;
   }
 
-  /** {@inheritDoc} */
   @Override
   public final DN getEntryDN()
   {
@@ -161,17 +161,16 @@
       try {
         entryDN = DN.valueOf(rawEntryDN);
       }
-      catch (DirectoryException de) {
-        logger.traceException(de);
+      catch (LocalizedIllegalArgumentException e) {
+        logger.traceException(e);
 
-        setResultCode(de.getResultCode());
-        appendErrorMessage(de.getMessageObject());
+        setResultCode(ResultCode.INVALID_DN_SYNTAX);
+        appendErrorMessage(e.getMessageObject());
       }
     }
     return entryDN;
   }
 
-  /** {@inheritDoc} */
   @Override
   public final List<RawModification> getRawModifications()
   {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/SearchOperationBasis.java b/opendj-server-legacy/src/main/java/org/opends/server/core/SearchOperationBasis.java
index f1ed73b..8403a9e 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/SearchOperationBasis.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/SearchOperationBasis.java
@@ -24,6 +24,7 @@
 import java.util.Set;
 import java.util.concurrent.atomic.AtomicBoolean;
 
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.DereferenceAliasesPolicy;
@@ -308,10 +309,11 @@
         baseDN = DN.valueOf(rawBaseDN);
       }
     }
-    catch (DirectoryException de)
+    catch (LocalizedIllegalArgumentException e)
     {
-      logger.traceException(de);
-      setResponseData(de);
+      logger.traceException(e);
+      setResultCode(ResultCode.INVALID_DN_SYNTAX);
+      appendErrorMessage(e.getMessageObject());
     }
     return baseDN;
   }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/core/VirtualAttributeConfigManager.java b/opendj-server-legacy/src/main/java/org/opends/server/core/VirtualAttributeConfigManager.java
index 9511ddc..24a706e 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/core/VirtualAttributeConfigManager.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/core/VirtualAttributeConfigManager.java
@@ -20,8 +20,14 @@
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.server.util.StaticUtils.*;
 
-import java.util.*;
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.LinkedHashMap;
+import java.util.LinkedHashSet;
+import java.util.List;
+import java.util.Map;
 import java.util.Map.Entry;
+import java.util.Set;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.ConcurrentMap;
 
@@ -41,7 +47,10 @@
 import org.opends.server.admin.std.server.RootCfg;
 import org.opends.server.admin.std.server.VirtualAttributeCfg;
 import org.opends.server.api.VirtualAttributeProvider;
-import org.opends.server.types.*;
+import org.opends.server.types.DirectoryException;
+import org.opends.server.types.InitializationException;
+import org.opends.server.types.SearchFilter;
+import org.opends.server.types.VirtualAttributeRule;
 
 /**
  * This class defines a utility that will be used to manage the set of
@@ -498,15 +507,7 @@
 
   private DN getDummyDN(VirtualAttributeRule rule)
   {
-    try
-    {
-      String name = rule.getAttributeType().getNameOrOID();
-      return DN.valueOf("cn=" + name + ",cn=Virtual Attributes,cn=config");
-    }
-    catch (DirectoryException e)
-    {
-      // should never happen
-      throw new RuntimeException(e);
-    }
+    String name = rule.getAttributeType().getNameOrOID();
+    return DN.valueOf("cn=" + name + ",cn=Virtual Attributes,cn=config");
   }
 }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/crypto/CryptoManagerImpl.java b/opendj-server-legacy/src/main/java/org/opends/server/crypto/CryptoManagerImpl.java
index 076e993..21a02f2 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/crypto/CryptoManagerImpl.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/crypto/CryptoManagerImpl.java
@@ -22,18 +22,36 @@
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.io.PrintStream;
-import java.security.*;
+import java.security.GeneralSecurityException;
+import java.security.InvalidKeyException;
+import java.security.MessageDigest;
+import java.security.NoSuchAlgorithmException;
+import java.security.PrivateKey;
+import java.security.SecureRandom;
 import java.security.cert.Certificate;
 import java.security.cert.CertificateFactory;
 import java.text.ParseException;
-import java.util.*;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.LinkedHashMap;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.SortedSet;
+import java.util.UUID;
 import java.util.concurrent.ConcurrentHashMap;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.zip.DataFormatException;
 import java.util.zip.Deflater;
 import java.util.zip.Inflater;
 
-import javax.crypto.*;
+import javax.crypto.Cipher;
+import javax.crypto.CipherInputStream;
+import javax.crypto.CipherOutputStream;
+import javax.crypto.KeyGenerator;
+import javax.crypto.Mac;
+import javax.crypto.SecretKey;
 import javax.crypto.spec.IvParameterSpec;
 import javax.crypto.spec.SecretKeySpec;
 import javax.net.ssl.KeyManager;
@@ -72,7 +90,19 @@
 import org.opends.server.tools.LDAPConnectionOptions;
 import org.opends.server.tools.LDAPReader;
 import org.opends.server.tools.LDAPWriter;
-import org.opends.server.types.*;
+import org.opends.server.types.Attribute;
+import org.opends.server.types.AttributeBuilder;
+import org.opends.server.types.Attributes;
+import org.opends.server.types.Control;
+import org.opends.server.types.CryptoManager;
+import org.opends.server.types.CryptoManagerException;
+import org.opends.server.types.DirectoryException;
+import org.opends.server.types.Entry;
+import org.opends.server.types.IdentifiedException;
+import org.opends.server.types.InitializationException;
+import org.opends.server.types.Modification;
+import org.opends.server.types.ObjectClass;
+import org.opends.server.types.SearchResultEntry;
 import org.opends.server.util.Base64;
 import org.opends.server.util.SelectableCertificateKeyManager;
 import org.opends.server.util.ServerConstants;
@@ -240,17 +270,11 @@
       ocCipherKey = DirectoryServer.getObjectClass(OC_CRYPTO_CIPHER_KEY);
       ocMacKey = DirectoryServer.getObjectClass(OC_CRYPTO_MAC_KEY);
 
-      try {
-        localTruststoreDN = DN.valueOf(DN_TRUST_STORE_ROOT);
-        DN adminSuffixDN = DN.valueOf(ADSContext.getAdministrationSuffixDN());
-        instanceKeysDN = adminSuffixDN.child(DN.valueOf("cn=instance keys"));
-        secretKeysDN = adminSuffixDN.child(DN.valueOf("cn=secret keys"));
-        serversDN = adminSuffixDN.child(DN.valueOf("cn=Servers"));
-      }
-      catch (DirectoryException ex) {
-        logger.traceException(ex);
-        throw new InitializationException(ex.getMessageObject());
-      }
+      localTruststoreDN = DN.valueOf(DN_TRUST_STORE_ROOT);
+      DN adminSuffixDN = DN.valueOf(ADSContext.getAdministrationSuffixDN());
+      instanceKeysDN = adminSuffixDN.child(DN.valueOf("cn=instance keys"));
+      secretKeysDN = adminSuffixDN.child(DN.valueOf("cn=secret keys"));
+      serversDN = adminSuffixDN.child(DN.valueOf("cn=Servers"));
 
       schemaInitDone = true;
     }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/crypto/CryptoManagerSync.java b/opendj-server-legacy/src/main/java/org/opends/server/crypto/CryptoManagerSync.java
index 5d3685d..b7b3888 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/crypto/CryptoManagerSync.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/crypto/CryptoManagerSync.java
@@ -34,6 +34,8 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.ldap.DN;
+import org.forgerock.opendj.ldap.RDN;
 import org.forgerock.opendj.ldap.ResultCode;
 import org.forgerock.opendj.ldap.SearchScope;
 import org.forgerock.opendj.ldap.schema.AttributeType;
@@ -54,12 +56,10 @@
 import org.opends.server.types.Attribute;
 import org.opends.server.types.Control;
 import org.opends.server.types.CryptoManagerException;
-import org.forgerock.opendj.ldap.DN;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.Entry;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.ObjectClass;
-import org.forgerock.opendj.ldap.RDN;
 import org.opends.server.types.SearchFilter;
 import org.opends.server.types.SearchResultEntry;
 import org.opends.server.types.operation.PostResponseAddOperation;
@@ -122,7 +122,7 @@
    */
   public CryptoManagerSync() throws InitializationException
   {
-    super(toDN(CONFIG_DN), EnumSet.of(
+    super(DN.valueOf(CONFIG_DN), EnumSet.of(
         // No implementation required for modify_dn operations
         // FIXME: Technically it is possible to perform a subtree modDN
         // in this case however such subtree modDN would essentially be
@@ -170,19 +170,6 @@
     DirectoryServer.registerInternalPlugin(this);
   }
 
-  private static DN toDN(final String dn) throws InitializationException
-  {
-    try
-    {
-      return DN.valueOf(dn);
-    }
-    catch (DirectoryException e)
-    {
-      throw new RuntimeException(e);
-    }
-  }
-
-
   private void searchAdminSuffix()
   {
     SearchRequest request = newSearchRequest(adminSuffixDN, SearchScope.WHOLE_SUBTREE, keySearchFilter);
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/CRAMMD5SASLMechanismHandler.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/CRAMMD5SASLMechanismHandler.java
index 4c0866d..8e759ff 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/CRAMMD5SASLMechanismHandler.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/CRAMMD5SASLMechanismHandler.java
@@ -21,21 +21,30 @@
 import java.text.ParseException;
 import java.util.Arrays;
 import java.util.List;
+
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.config.server.ConfigChangeResult;
+import org.forgerock.opendj.config.server.ConfigException;
+import org.forgerock.opendj.ldap.ByteString;
+import org.forgerock.opendj.ldap.DN;
+import org.forgerock.opendj.ldap.ResultCode;
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.admin.std.server.CramMD5SASLMechanismHandlerCfg;
 import org.opends.server.admin.std.server.SASLMechanismHandlerCfg;
-import org.opends.server.api.*;
-import org.forgerock.opendj.config.server.ConfigChangeResult;
-import org.forgerock.opendj.config.server.ConfigException;
+import org.opends.server.api.AuthenticationPolicyState;
+import org.opends.server.api.ClientConnection;
+import org.opends.server.api.IdentityMapper;
+import org.opends.server.api.SASLMechanismHandler;
 import org.opends.server.core.BindOperation;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.PasswordPolicyState;
-import org.forgerock.i18n.slf4j.LocalizedLogger;
-import org.opends.server.types.*;
-import org.forgerock.opendj.ldap.DN;
-import org.forgerock.opendj.ldap.ResultCode;
-import org.forgerock.opendj.ldap.ByteString;
+import org.opends.server.types.AuthenticationInfo;
+import org.opends.server.types.DirectoryException;
+import org.opends.server.types.Entry;
+import org.opends.server.types.InitializationException;
+
 import static org.opends.messages.ExtensionMessages.*;
 import static org.opends.server.util.ServerConstants.*;
 import static org.opends.server.util.StaticUtils.*;
@@ -279,14 +288,13 @@
       {
         userDN = DN.valueOf(userName.substring(3));
       }
-      catch (DirectoryException de)
+      catch (LocalizedIllegalArgumentException e)
       {
-        logger.traceException(de);
+        logger.traceException(e);
 
         bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
 
-        LocalizableMessage message = ERR_SASLCRAMMD5_CANNOT_DECODE_USERNAME_AS_DN.get(
-                userName, de.getMessageObject());
+        LocalizableMessage message = ERR_SASLCRAMMD5_CANNOT_DECODE_USERNAME_AS_DN.get(userName, e.getMessageObject());
         bindOperation.setAuthFailureReason(message);
         return;
       }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/DiskSpaceMonitor.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/DiskSpaceMonitor.java
index 0ad8355..6fbb27b 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/DiskSpaceMonitor.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/DiskSpaceMonitor.java
@@ -36,8 +36,11 @@
 import java.util.concurrent.TimeUnit;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.config.server.ConfigException;
+import org.forgerock.opendj.ldap.DN;
+import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.forgerock.opendj.ldap.schema.Syntax;
 import org.opends.server.admin.std.server.MonitorProviderCfg;
 import org.opends.server.api.AlertGenerator;
@@ -46,10 +49,7 @@
 import org.opends.server.api.ServerShutdownListener;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.types.Attribute;
-import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.opends.server.types.Attributes;
-import org.forgerock.opendj.ldap.DN;
-import org.opends.server.types.DirectoryException;
 import org.opends.server.types.InitializationException;
 
 /**
@@ -451,7 +451,6 @@
     }
   }
 
-  /** {@inheritDoc} */
   @Override
   public DN getComponentEntryDN()
   {
@@ -459,13 +458,12 @@
     {
       return DN.valueOf(INSTANCENAME);
     }
-    catch (DirectoryException de)
+    catch (LocalizedIllegalArgumentException ignored)
     {
       return DN.rootDN();
     }
   }
 
-  /** {@inheritDoc} */
   @Override
   public String getClassName()
   {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/EntryDNVirtualAttributeProvider.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/EntryDNVirtualAttributeProvider.java
index 8cf12c0..ab9c6a2 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/EntryDNVirtualAttributeProvider.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/EntryDNVirtualAttributeProvider.java
@@ -20,6 +20,7 @@
 import java.util.List;
 import java.util.Set;
 
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ConditionResult;
@@ -34,7 +35,6 @@
 import org.opends.server.core.SearchOperation;
 import org.opends.server.types.Attribute;
 import org.opends.server.types.Attributes;
-import org.opends.server.types.DirectoryException;
 import org.opends.server.types.Entry;
 import org.opends.server.types.SearchFilter;
 import org.opends.server.types.VirtualAttributeRule;
@@ -295,7 +295,7 @@
           {
             dnSet.add(DN.valueOf(filter.getAssertionValue()));
           }
-          catch (DirectoryException e)
+          catch (LocalizedIllegalArgumentException e)
           {
             logger.traceException(e);
           }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/PasswordModifyExtendedOperation.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/PasswordModifyExtendedOperation.java
index e80fe39..13f1944 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/PasswordModifyExtendedOperation.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/PasswordModifyExtendedOperation.java
@@ -37,6 +37,7 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageBuilder;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.config.server.ConfigChangeResult;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -260,7 +261,7 @@
           {
             userDN = DN.valueOf(authzIDStr.substring(3));
           }
-          catch (DirectoryException de)
+          catch (LocalizedIllegalArgumentException de)
           {
             logger.traceException(de);
 
@@ -317,7 +318,7 @@
           {
             userDN = DN.valueOf(authzIDStr);
           }
-          catch (DirectoryException ignored)
+          catch (LocalizedIllegalArgumentException ignored)
           {
             logger.traceException(ignored);
           }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/PasswordPolicyStateExtendedOperation.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/PasswordPolicyStateExtendedOperation.java
index 6cdecb6..681b43c 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/PasswordPolicyStateExtendedOperation.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/PasswordPolicyStateExtendedOperation.java
@@ -341,11 +341,12 @@
     {
       targetDN = DN.valueOf(dnString);
     }
-    catch (DirectoryException de)
+    catch (LocalizedIllegalArgumentException e)
     {
-      logger.traceException(de);
+      logger.traceException(e);
 
-      operation.setResponseData(de);
+      operation.setResultCode(ResultCode.INVALID_DN_SYNTAX);
+      operation.appendErrorMessage(e.getMessageObject());
       return;
     }
 
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/PlainSASLMechanismHandler.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/PlainSASLMechanismHandler.java
index c06a600..bde8dcb 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/PlainSASLMechanismHandler.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/PlainSASLMechanismHandler.java
@@ -22,23 +22,29 @@
 import static org.opends.server.util.StaticUtils.*;
 
 import java.util.List;
+
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.config.server.ConfigChangeResult;
+import org.forgerock.opendj.config.server.ConfigException;
+import org.forgerock.opendj.ldap.ByteString;
+import org.forgerock.opendj.ldap.DN;
+import org.forgerock.opendj.ldap.ResultCode;
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.admin.std.server.PlainSASLMechanismHandlerCfg;
 import org.opends.server.admin.std.server.SASLMechanismHandlerCfg;
 import org.opends.server.api.AuthenticationPolicyState;
 import org.opends.server.api.IdentityMapper;
 import org.opends.server.api.SASLMechanismHandler;
-import org.forgerock.opendj.config.server.ConfigChangeResult;
-import org.forgerock.opendj.config.server.ConfigException;
 import org.opends.server.core.BindOperation;
 import org.opends.server.core.DirectoryServer;
-import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.internal.InternalClientConnection;
-import org.opends.server.types.*;
-import org.forgerock.opendj.ldap.DN;
-import org.forgerock.opendj.ldap.ResultCode;
-import org.forgerock.opendj.ldap.ByteString;
+import org.opends.server.types.AuthenticationInfo;
+import org.opends.server.types.DirectoryException;
+import org.opends.server.types.Entry;
+import org.opends.server.types.InitializationException;
+import org.opends.server.types.Privilege;
 
 /**
  * This class provides an implementation of a SASL mechanism that uses
@@ -191,24 +197,20 @@
       {
         userDN = DN.valueOf(authcID.substring(3));
       }
-      catch (DirectoryException de)
+      catch (LocalizedIllegalArgumentException e)
       {
-        logger.traceException(de);
+        logger.traceException(e);
 
         bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
-
-        LocalizableMessage message = ERR_SASLPLAIN_CANNOT_DECODE_AUTHCID_AS_DN.get(
-                authcID, de.getMessageObject());
-        bindOperation.setAuthFailureReason(message);
+        bindOperation.setAuthFailureReason(
+            ERR_SASLPLAIN_CANNOT_DECODE_AUTHCID_AS_DN.get(authcID, e.getMessageObject()));
         return;
       }
 
       if (userDN.isRootDN())
       {
         bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
-
-        LocalizableMessage message = ERR_SASLPLAIN_AUTHCID_IS_NULL_DN.get();
-        bindOperation.setAuthFailureReason(message);
+        bindOperation.setAuthFailureReason(ERR_SASLPLAIN_AUTHCID_IS_NULL_DN.get());
         return;
       }
 
@@ -286,15 +288,12 @@
         {
           authzDN = DN.valueOf(authzID.substring(3));
         }
-        catch (DirectoryException de)
+        catch (LocalizedIllegalArgumentException e)
         {
-          logger.traceException(de);
+          logger.traceException(e);
 
           bindOperation.setResultCode(ResultCode.INVALID_CREDENTIALS);
-
-          LocalizableMessage message = ERR_SASLPLAIN_AUTHZID_INVALID_DN.get(
-                  authzID, de.getMessageObject());
-          bindOperation.setAuthFailureReason(message);
+          bindOperation.setAuthFailureReason(ERR_SASLPLAIN_AUTHZID_INVALID_DN.get(authzID, e.getMessageObject()));
           return;
         }
 
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/SASLContext.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/SASLContext.java
index d68cd3c..203e3d3 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/SASLContext.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/SASLContext.java
@@ -24,13 +24,27 @@
 import java.security.PrivilegedExceptionAction;
 import java.util.HashMap;
 import java.util.List;
-import javax.security.auth.Subject;
-import javax.security.auth.callback.*;
-import javax.security.auth.login.LoginContext;
-import javax.security.sasl.*;
 
-import org.ietf.jgss.GSSException;
+import javax.security.auth.Subject;
+import javax.security.auth.callback.Callback;
+import javax.security.auth.callback.CallbackHandler;
+import javax.security.auth.callback.NameCallback;
+import javax.security.auth.callback.PasswordCallback;
+import javax.security.auth.callback.UnsupportedCallbackException;
+import javax.security.auth.login.LoginContext;
+import javax.security.sasl.AuthorizeCallback;
+import javax.security.sasl.RealmCallback;
+import javax.security.sasl.Sasl;
+import javax.security.sasl.SaslException;
+import javax.security.sasl.SaslServer;
+
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
+import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.ldap.ByteString;
+import org.forgerock.opendj.ldap.DN;
+import org.forgerock.opendj.ldap.ResultCode;
+import org.ietf.jgss.GSSException;
 import org.opends.server.api.AuthenticationPolicyState;
 import org.opends.server.api.ClientConnection;
 import org.opends.server.api.IdentityMapper;
@@ -38,13 +52,12 @@
 import org.opends.server.core.BindOperation;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.PasswordPolicyState;
-import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.protocols.ldap.LDAPClientConnection;
-import org.opends.server.types.*;
-import org.forgerock.opendj.ldap.DN;
-import org.forgerock.opendj.ldap.ResultCode;
-import org.forgerock.opendj.ldap.ByteString;
+import org.opends.server.types.AuthenticationInfo;
+import org.opends.server.types.DirectoryException;
+import org.opends.server.types.Entry;
+import org.opends.server.types.Privilege;
 
 /**
  * This class defines the SASL context needed to process GSSAPI and DIGEST-MD5
@@ -686,7 +699,7 @@
     {
       authzDN = DN.valueOf(responseAuthzID.substring(3));
     }
-    catch (final DirectoryException e)
+    catch (final LocalizedIllegalArgumentException e)
     {
       logger.traceException(e);
       setCallbackMsg(ERR_SASL_AUTHZID_INVALID_DN.get(responseAuthzID,
@@ -1024,7 +1037,7 @@
       {
         userDN = DN.valueOf(userName.substring(3));
       }
-      catch (final DirectoryException e)
+      catch (final LocalizedIllegalArgumentException e)
       {
         logger.traceException(e);
         setCallbackMsg(ERR_SASL_CANNOT_DECODE_USERNAME_AS_DN.get(mechanism,
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java
index baab0a5..33949c2 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/SubjectAttributeToUserAttributeCertificateMapper.java
@@ -35,6 +35,7 @@
 import javax.security.auth.x500.X500Principal;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.config.server.ConfigChangeResult;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -189,7 +190,7 @@
     {
       peerDN = DN.valueOf(peerName);
     }
-    catch (DirectoryException de)
+    catch (LocalizedIllegalArgumentException de)
     {
       LocalizableMessage message = ERR_SATUACM_CANNOT_DECODE_SUBJECT_AS_DN.get(
           peerName, de.getMessageObject());
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/extensions/VirtualStaticGroup.java b/opendj-server-legacy/src/main/java/org/opends/server/extensions/VirtualStaticGroup.java
index d4b2941..2dc115b 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/extensions/VirtualStaticGroup.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/extensions/VirtualStaticGroup.java
@@ -21,6 +21,7 @@
 import java.util.Set;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.config.server.ConfigException;
 import org.forgerock.opendj.ldap.ByteString;
@@ -134,13 +135,13 @@
         {
           targetDN = DN.valueOf(v);
         }
-        catch (DirectoryException de)
+        catch (LocalizedIllegalArgumentException e)
         {
-          logger.traceException(de);
+          logger.traceException(e);
 
           LocalizableMessage message = ERR_VIRTUAL_STATIC_GROUP_CANNOT_DECODE_TARGET.
-              get(v, groupEntry.getName(), de.getMessageObject());
-          throw new DirectoryException(ResultCode.INVALID_ATTRIBUTE_SYNTAX, message, de);
+              get(v, groupEntry.getName(), e.getMessageObject());
+          throw new DirectoryException(ResultCode.INVALID_ATTRIBUTE_SYNTAX, message, e);
         }
       }
     }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/loggers/AbstractTextAccessLogPublisher.java b/opendj-server-legacy/src/main/java/org/opends/server/loggers/AbstractTextAccessLogPublisher.java
index e04abf4..ea2da3d 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/loggers/AbstractTextAccessLogPublisher.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/loggers/AbstractTextAccessLogPublisher.java
@@ -27,6 +27,7 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageDescriptor.Arg2;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.config.server.ConfigChangeResult;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -43,8 +44,21 @@
 import org.opends.server.api.ClientConnection;
 import org.opends.server.api.Group;
 import org.opends.server.authorization.dseecompat.PatternDN;
-import org.opends.server.core.*;
-import org.opends.server.types.*;
+import org.opends.server.core.AddOperation;
+import org.opends.server.core.BindOperation;
+import org.opends.server.core.CompareOperation;
+import org.opends.server.core.DeleteOperation;
+import org.opends.server.core.DirectoryServer;
+import org.opends.server.core.GroupManager;
+import org.opends.server.core.ModifyDNOperation;
+import org.opends.server.core.ModifyOperation;
+import org.opends.server.core.SearchOperation;
+import org.opends.server.types.AdditionalLogItem;
+import org.opends.server.types.DirectoryException;
+import org.opends.server.types.Entry;
+import org.opends.server.types.InitializationException;
+import org.opends.server.types.Operation;
+import org.opends.server.types.OperationType;
 
 /**
  * This class provides the base implementation of the access loggers used by the
@@ -394,7 +408,7 @@
         {
           targetDN = DN.valueOf(rawTargetDN);
         }
-        catch (final DirectoryException e)
+        catch (final LocalizedIllegalArgumentException e)
         {
           // The DN raw target DN was invalid:
           // Invalid DN will never match equal-to patterns,
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/plugins/PasswordPolicyImportPlugin.java b/opendj-server-legacy/src/main/java/org/opends/server/plugins/PasswordPolicyImportPlugin.java
index b1430fd..865bd36 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/plugins/PasswordPolicyImportPlugin.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/plugins/PasswordPolicyImportPlugin.java
@@ -29,10 +29,12 @@
 import java.util.Set;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.config.server.ConfigChangeResult;
 import org.forgerock.opendj.config.server.ConfigException;
 import org.forgerock.opendj.ldap.ByteString;
+import org.forgerock.opendj.ldap.DN;
 import org.forgerock.opendj.ldap.ResultCode;
 import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.opends.server.admin.server.ConfigurationChangeListener;
@@ -53,7 +55,6 @@
 import org.opends.server.schema.UserPasswordSyntax;
 import org.opends.server.types.Attribute;
 import org.opends.server.types.AttributeBuilder;
-import org.forgerock.opendj.ldap.DN;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.Entry;
 import org.opends.server.types.LDIFImportConfig;
@@ -322,9 +323,9 @@
 
             break policyLoop;
           }
-          catch (DirectoryException de)
+          catch (LocalizedIllegalArgumentException e)
           {
-            logger.warn(WARN_PLUGIN_PWIMPORT_CANNOT_DECODE_POLICY_DN, entry.getName(), de.getMessageObject());
+            logger.warn(WARN_PLUGIN_PWIMPORT_CANNOT_DECODE_POLICY_DN, entry.getName(), e.getMessageObject());
             break policyLoop;
           }
         }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/plugins/ReferentialIntegrityPlugin.java b/opendj-server-legacy/src/main/java/org/opends/server/plugins/ReferentialIntegrityPlugin.java
index 76db679..b854e2b 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/plugins/ReferentialIntegrityPlugin.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/plugins/ReferentialIntegrityPlugin.java
@@ -39,6 +39,7 @@
 import java.util.Set;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.config.server.ConfigChangeResult;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -893,10 +894,10 @@
               DN movedDN=DN.valueOf(a[1]);
               processModifyDN(origDn, movedDN);
             }
-          } catch (DirectoryException ex) {
+          } catch (LocalizedIllegalArgumentException e) {
             //This exception should rarely happen since the plugin wrote the DN
             //strings originally.
-            logger.error(ERR_PLUGIN_REFERENT_CANNOT_DECODE_STRING_AS_DN, ex.getMessage());
+            logger.error(ERR_PLUGIN_REFERENT_CANNOT_DECODE_STRING_AS_DN, e.getMessage());
           }
         }
         reader.close();
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/plugins/SevenBitCleanPlugin.java b/opendj-server-legacy/src/main/java/org/opends/server/plugins/SevenBitCleanPlugin.java
index eb107ca..59a9c24 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/plugins/SevenBitCleanPlugin.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/plugins/SevenBitCleanPlugin.java
@@ -22,14 +22,15 @@
 import java.util.Set;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.opendj.config.server.ConfigChangeResult;
 import org.forgerock.opendj.config.server.ConfigException;
 import org.forgerock.opendj.ldap.AVA;
-import org.forgerock.opendj.ldap.DN;
 import org.forgerock.opendj.ldap.ByteSequence;
 import org.forgerock.opendj.ldap.ByteString;
-import org.forgerock.opendj.ldap.ResultCode;
+import org.forgerock.opendj.ldap.DN;
 import org.forgerock.opendj.ldap.RDN;
+import org.forgerock.opendj.ldap.ResultCode;
 import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.admin.std.meta.PluginCfgDefn;
@@ -40,7 +41,6 @@
 import org.opends.server.api.plugin.PluginType;
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.types.Attribute;
-import org.opends.server.types.DirectoryException;
 import org.opends.server.types.Entry;
 import org.opends.server.types.LDAPException;
 import org.opends.server.types.LDIFImportConfig;
@@ -177,10 +177,10 @@
     {
       entryDN = DN.valueOf(addOperation.getRawEntryDN());
     }
-    catch (DirectoryException de)
+    catch (LocalizedIllegalArgumentException e)
     {
-      return PluginResult.PreParse.stopProcessing(de.getResultCode(),
-          ERR_PLUGIN_7BIT_CANNOT_DECODE_DN.get(de.getMessageObject()));
+      return PluginResult.PreParse.stopProcessing(ResultCode.INVALID_DN_SYNTAX,
+          ERR_PLUGIN_7BIT_CANNOT_DECODE_DN.get(e.getMessageObject()));
     }
 
     if (isInScope(config, entryDN))
@@ -241,10 +241,10 @@
     {
       entryDN = DN.valueOf(modifyOperation.getRawEntryDN());
     }
-    catch (DirectoryException de)
+    catch (LocalizedIllegalArgumentException e)
     {
-      return PluginResult.PreParse.stopProcessing(de.getResultCode(),
-          ERR_PLUGIN_7BIT_CANNOT_DECODE_DN.get(de.getMessageObject()));
+      return PluginResult.PreParse.stopProcessing(ResultCode.INVALID_DN_SYNTAX,
+          ERR_PLUGIN_7BIT_CANNOT_DECODE_DN.get(e.getMessageObject()));
     }
 
     if (isInScope(config, entryDN))
@@ -317,10 +317,10 @@
     {
       entryDN = DN.valueOf(modifyDNOperation.getRawEntryDN());
     }
-    catch (DirectoryException de)
+    catch (LocalizedIllegalArgumentException e)
     {
-      return PluginResult.PreParse.stopProcessing(de.getResultCode(),
-          ERR_PLUGIN_7BIT_CANNOT_DECODE_DN.get(de.getMessageObject()));
+      return PluginResult.PreParse.stopProcessing(ResultCode.INVALID_DN_SYNTAX,
+          ERR_PLUGIN_7BIT_CANNOT_DECODE_DN.get(e.getMessageObject()));
     }
 
     if (isInScope(config, entryDN))
@@ -332,10 +332,10 @@
       {
         newRDN = RDN.valueOf(rawNewRDN.toString());
       }
-      catch (DirectoryException de)
+      catch (LocalizedIllegalArgumentException e)
       {
-        return PluginResult.PreParse.stopProcessing(de.getResultCode(),
-            ERR_PLUGIN_7BIT_CANNOT_DECODE_NEW_RDN.get(de.getMessageObject()));
+        return PluginResult.PreParse.stopProcessing(ResultCode.INVALID_DN_SYNTAX,
+            ERR_PLUGIN_7BIT_CANNOT_DECODE_NEW_RDN.get(e.getMessageObject()));
       }
 
       for (AVA ava : newRDN)
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/protocols/internal/InternalClientConnection.java b/opendj-server-legacy/src/main/java/org/opends/server/protocols/internal/InternalClientConnection.java
index 2ae7780..52a1401 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/protocols/internal/InternalClientConnection.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/protocols/internal/InternalClientConnection.java
@@ -27,6 +27,7 @@
 import java.util.concurrent.atomic.AtomicLong;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.AttributeDescription;
 import org.forgerock.opendj.ldap.ByteString;
@@ -182,11 +183,10 @@
       super.setIdleTimeLimit(0);
       super.setLookthroughLimit(0);
     }
-    catch (DirectoryException de)
+    catch (LocalizedIllegalArgumentException e)
     {
-      logger.traceException(de);
-
-      logger.error(ERR_INTERNAL_CANNOT_DECODE_DN, fullDNString, getExceptionMessage(de));
+      logger.traceException(e);
+      logger.error(ERR_INTERNAL_CANNOT_DECODE_DN, fullDNString, getExceptionMessage(e));
     }
 
     connectionID  = nextConnectionID.getAndDecrement();
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/LDAPReplicationDomain.java b/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/LDAPReplicationDomain.java
index 1dc3312..8b7e26a 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/LDAPReplicationDomain.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/replication/plugin/LDAPReplicationDomain.java
@@ -58,6 +58,7 @@
 import java.util.zip.DataFormatException;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.config.server.ConfigChangeResult;
 import org.forgerock.opendj.config.server.ConfigException;
@@ -3080,7 +3081,8 @@
     try
     {
       return RDN.valueOf(newRDN);
-    } catch (DirectoryException e)
+    }
+    catch (LocalizedIllegalArgumentException e)
     {
       // cannot happen
       return null;
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/replication/protocol/ByteArrayScanner.java b/opendj-server-legacy/src/main/java/org/opends/server/replication/protocol/ByteArrayScanner.java
index e55ec21..91a3976 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/replication/protocol/ByteArrayScanner.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/replication/protocol/ByteArrayScanner.java
@@ -18,14 +18,14 @@
 import java.util.Collection;
 import java.util.zip.DataFormatException;
 
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.opendj.io.ASN1;
 import org.forgerock.opendj.io.ASN1Reader;
 import org.forgerock.opendj.ldap.ByteSequenceReader;
 import org.forgerock.opendj.ldap.ByteString;
+import org.forgerock.opendj.ldap.DN;
 import org.opends.server.replication.common.CSN;
 import org.opends.server.replication.common.ServerState;
-import org.forgerock.opendj.ldap.DN;
-import org.opends.server.types.DirectoryException;
 
 /**
  * Byte array scanner class helps decode data from byte arrays received via
@@ -287,7 +287,7 @@
     {
       return DN.valueOf(nextString());
     }
-    catch (DirectoryException e)
+    catch (LocalizedIllegalArgumentException e)
     {
       throw new DataFormatException(e.getLocalizedMessage());
     }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/replication/protocol/ModifyDNMsg.java b/opendj-server-legacy/src/main/java/org/opends/server/replication/protocol/ModifyDNMsg.java
index 1969b20..1954957 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/replication/protocol/ModifyDNMsg.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/replication/protocol/ModifyDNMsg.java
@@ -20,14 +20,17 @@
 import java.util.List;
 import java.util.zip.DataFormatException;
 
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
+import org.forgerock.opendj.ldap.ByteString;
+import org.forgerock.opendj.ldap.DN;
+import org.forgerock.opendj.ldap.RDN;
 import org.opends.server.core.ModifyDNOperation;
 import org.opends.server.core.ModifyDNOperationBasis;
 import org.opends.server.protocols.internal.InternalClientConnection;
 import org.opends.server.replication.common.CSN;
-import org.opends.server.types.*;
-import org.forgerock.opendj.ldap.ByteString;
-import org.forgerock.opendj.ldap.DN;
-import org.forgerock.opendj.ldap.RDN;
+import org.opends.server.types.DirectoryException;
+import org.opends.server.types.LDAPException;
+import org.opends.server.types.Modification;
 import org.opends.server.types.operation.PostOperationModifyDNOperation;
 
 import static org.opends.server.replication.protocol.OperationContext.*;
@@ -434,7 +437,8 @@
     {
       DN newSuperiorDN = DN.valueOf(newSuperior);
       return newSuperiorDN.equals(targetDN);
-    } catch (DirectoryException e)
+    }
+    catch (LocalizedIllegalArgumentException e)
     {
       // The newsuperior was not a correct DN, and therefore does not match the
       // DN given as a parameter.
@@ -442,7 +446,6 @@
     }
   }
 
-  /** {@inheritDoc} */
   @Override
   public int size()
   {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/ReplicationEnvironment.java b/opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/ReplicationEnvironment.java
index a5a59d5..0dcecca 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/ReplicationEnvironment.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/replication/server/changelog/file/ReplicationEnvironment.java
@@ -43,7 +43,9 @@
 import net.jcip.annotations.GuardedBy;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.ldap.DN;
 import org.forgerock.util.time.TimeService;
 import org.opends.server.replication.common.CSN;
 import org.opends.server.replication.protocol.UpdateMsg;
@@ -53,8 +55,6 @@
 import org.opends.server.replication.server.changelog.api.ChangelogException;
 import org.opends.server.replication.server.changelog.api.ChangelogStateProvider;
 import org.opends.server.replication.server.changelog.file.Log.LogRotationParameters;
-import org.forgerock.opendj.ldap.DN;
-import org.opends.server.types.DirectoryException;
 import org.opends.server.util.StaticUtils;
 
 import static org.opends.messages.ReplicationMessages.*;
@@ -593,7 +593,7 @@
           domains.put(domainDN, domainId);
         }
       }
-      catch(DirectoryException e)
+      catch (LocalizedIllegalArgumentException e)
       {
         throw new ChangelogException(ERR_CHANGELOG_UNABLE_TO_DECODE_DN_FROM_DOMAIN_STATE_FILE.get(
             domainsStateFile.getPath(), line), e);
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tasks/ExportTask.java b/opendj-server-legacy/src/main/java/org/opends/server/tasks/ExportTask.java
index e331161..fc78222 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tasks/ExportTask.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tasks/ExportTask.java
@@ -32,7 +32,9 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.ldap.DN;
 import org.forgerock.opendj.ldap.ResultCode;
+import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.opends.messages.Severity;
 import org.opends.messages.TaskMessages;
 import org.opends.server.api.Backend;
@@ -43,8 +45,6 @@
 import org.opends.server.core.DirectoryServer;
 import org.opends.server.core.LockFileManager;
 import org.opends.server.types.Attribute;
-import org.forgerock.opendj.ldap.schema.AttributeType;
-import org.forgerock.opendj.ldap.DN;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.Entry;
 import org.opends.server.types.ExistingFileBehavior;
@@ -297,11 +297,6 @@
         {
           excludeBranch = DN.valueOf(s);
         }
-        catch (DirectoryException de)
-        {
-          logger.error(ERR_LDIFEXPORT_CANNOT_DECODE_EXCLUDE_BASE, s, de.getMessageObject());
-          return TaskState.STOPPED_BY_ERROR;
-        }
         catch (Exception e)
         {
           logger.error(ERR_LDIFEXPORT_CANNOT_DECODE_EXCLUDE_BASE, s, getExceptionMessage(e));
@@ -327,11 +322,6 @@
         {
           includeBranch = DN.valueOf(s);
         }
-        catch (DirectoryException de)
-        {
-          logger.error(ERR_LDIFIMPORT_CANNOT_DECODE_INCLUDE_BASE, s, de.getMessageObject());
-          return TaskState.STOPPED_BY_ERROR;
-        }
         catch (Exception e)
         {
           logger.error(ERR_LDIFIMPORT_CANNOT_DECODE_INCLUDE_BASE, s, getExceptionMessage(e));
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tasks/ImportTask.java b/opendj-server-legacy/src/main/java/org/opends/server/tasks/ImportTask.java
index f90eeea..d55a6eb 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tasks/ImportTask.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tasks/ImportTask.java
@@ -33,7 +33,9 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
+import org.forgerock.opendj.ldap.DN;
 import org.forgerock.opendj.ldap.ResultCode;
+import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.opends.messages.Severity;
 import org.opends.messages.TaskMessages;
 import org.opends.server.api.Backend;
@@ -45,8 +47,6 @@
 import org.opends.server.core.LockFileManager;
 import org.opends.server.tools.makeldif.TemplateFile;
 import org.opends.server.types.Attribute;
-import org.forgerock.opendj.ldap.schema.AttributeType;
-import org.forgerock.opendj.ldap.DN;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.Entry;
 import org.opends.server.types.ExistingFileBehavior;
@@ -232,12 +232,6 @@
       {
         includeBranch = DN.valueOf(s);
       }
-      catch (DirectoryException de)
-      {
-        LocalizableMessage message = ERR_LDIFIMPORT_CANNOT_DECODE_INCLUDE_BASE.get(
-            s, de.getMessageObject());
-        throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, message);
-      }
       catch (Exception e)
       {
         LocalizableMessage message = ERR_LDIFIMPORT_CANNOT_DECODE_INCLUDE_BASE.get(
@@ -254,12 +248,6 @@
       {
         excludeBranch = DN.valueOf(s);
       }
-      catch (DirectoryException de)
-      {
-        LocalizableMessage message = ERR_LDIFIMPORT_CANNOT_DECODE_EXCLUDE_BASE.get(
-            s, de.getMessageObject());
-        throw new DirectoryException(ResultCode.UNWILLING_TO_PERFORM, message);
-      }
       catch (Exception e)
       {
         LocalizableMessage message = ERR_LDIFIMPORT_CANNOT_DECODE_EXCLUDE_BASE.get(
@@ -448,11 +436,6 @@
       {
         includeBranch = DN.valueOf(s);
       }
-      catch (DirectoryException de)
-      {
-        logger.error(ERR_LDIFIMPORT_CANNOT_DECODE_INCLUDE_BASE, s, de.getMessageObject());
-        return TaskState.STOPPED_BY_ERROR;
-      }
       catch (Exception e)
       {
         logger.error(ERR_LDIFIMPORT_CANNOT_DECODE_INCLUDE_BASE, s, getExceptionMessage(e));
@@ -528,11 +511,6 @@
       {
         excludeBranch = DN.valueOf(s);
       }
-      catch (DirectoryException de)
-      {
-        logger.error(ERR_LDIFIMPORT_CANNOT_DECODE_EXCLUDE_BASE, s, de.getMessageObject());
-        return TaskState.STOPPED_BY_ERROR;
-      }
       catch (Exception e)
       {
         logger.error(ERR_LDIFIMPORT_CANNOT_DECODE_EXCLUDE_BASE, s, getExceptionMessage(e));
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tasks/RebuildTask.java b/opendj-server-legacy/src/main/java/org/opends/server/tasks/RebuildTask.java
index 42f0591..4943ca1 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tasks/RebuildTask.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tasks/RebuildTask.java
@@ -26,6 +26,7 @@
 import java.util.List;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.ldap.ResultCode;
 import org.opends.messages.TaskMessages;
@@ -133,7 +134,6 @@
     return RebuildMode.USER_DEFINED;
   }
 
-  /** {@inheritDoc} */
   @Override
   protected TaskState runTask()
   {
@@ -143,9 +143,9 @@
     {
       rebuildConfig.setBaseDN(DN.valueOf(baseDN));
     }
-    catch (DirectoryException de)
+    catch (LocalizedIllegalArgumentException e)
     {
-      logger.error(ERR_CANNOT_DECODE_BASE_DN, baseDN, de.getMessageObject());
+      logger.error(ERR_CANNOT_DECODE_BASE_DN, baseDN, e.getMessageObject());
       return TaskState.STOPPED_BY_ERROR;
     }
 
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tasks/TaskUtils.java b/opendj-server-legacy/src/main/java/org/opends/server/tasks/TaskUtils.java
index 7d88ab5..b4a327a 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tasks/TaskUtils.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tasks/TaskUtils.java
@@ -107,11 +107,6 @@
     {
       backendBaseDN = DN.valueOf(DN_BACKEND_BASE);
     }
-    catch (DirectoryException de)
-    {
-      logger.error(ERR_CANNOT_DECODE_BACKEND_BASE_DN, DN_BACKEND_BASE, de.getMessageObject());
-      return configEntries;
-    }
     catch (Exception e)
     {
       logger.error(ERR_CANNOT_DECODE_BACKEND_BASE_DN, DN_BACKEND_BASE, getExceptionMessage(e));
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/BackendToolUtils.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/BackendToolUtils.java
index 11d1aa1..83ff96b 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/BackendToolUtils.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/BackendToolUtils.java
@@ -20,6 +20,7 @@
 
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.forgerock.opendj.config.server.ConfigException;
+import org.forgerock.opendj.ldap.DN;
 import org.opends.server.admin.server.ServerManagementContext;
 import org.opends.server.admin.std.server.BackendCfg;
 import org.opends.server.admin.std.server.RootCfg;
@@ -28,15 +29,13 @@
 import org.opends.server.config.DNConfigAttribute;
 import org.opends.server.config.StringConfigAttribute;
 import org.opends.server.core.DirectoryServer;
-import org.forgerock.opendj.ldap.DN;
-import org.opends.server.types.DirectoryException;
 
 import static org.opends.messages.ConfigMessages.*;
 import static org.opends.messages.ToolMessages.*;
 import static org.opends.server.config.ConfigConstants.*;
 import static org.opends.server.util.StaticUtils.*;
 
-/** This class provides utility functions for all JE related client tools. */
+/** This class provides utility functions for all backend client tools. */
 public class BackendToolUtils
 {
   private static final LocalizedLogger logger = LocalizedLogger.getLoggerForThisClass();
@@ -210,16 +209,10 @@
     {
       return DN.valueOf(DN_BACKEND_BASE);
     }
-    catch (final DirectoryException de)
-    {
-      logger.error(ERR_CANNOT_DECODE_BACKEND_BASE_DN, DN_BACKEND_BASE, de.getMessageObject());
-      throw de;
-    }
     catch (final Exception e)
     {
       logger.error(ERR_CANNOT_DECODE_BACKEND_BASE_DN, DN_BACKEND_BASE, getExceptionMessage(e));
       throw e;
     }
   }
-
 }
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/ConfigureDS.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/ConfigureDS.java
index 849cb72..56979fa 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/ConfigureDS.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/ConfigureDS.java
@@ -46,7 +46,9 @@
 import javax.crypto.Cipher;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.opendj.config.ManagedObjectDefinition;
+import org.forgerock.opendj.ldap.DN;
 import org.forgerock.opendj.server.config.client.BackendCfgClient;
 import org.forgerock.opendj.server.config.server.BackendCfg;
 import org.opends.quicksetup.installer.Installer;
@@ -65,7 +67,6 @@
 import org.opends.server.extensions.ConfigFileHandler;
 import org.opends.server.extensions.SaltedSHA512PasswordStorageScheme;
 import org.opends.server.protocols.ldap.LDAPResultCode;
-import org.forgerock.opendj.ldap.DN;
 import org.opends.server.types.DirectoryEnvironmentConfig;
 import org.opends.server.types.DirectoryException;
 import org.opends.server.types.Entry;
@@ -648,11 +649,11 @@
       {
         rootDN = DN.valueOf(rootDNString.getValue());
       }
-      catch (final DirectoryException de)
+      catch (final LocalizedIllegalArgumentException e)
       {
         final LocalizableMessage msg = ERR_CONFIGDS_CANNOT_PARSE_ROOT_DN.get(
-            rootDNString.getValue(), de.getMessageObject());
-        throw new ConfigureDSException(de, msg);
+            rootDNString.getValue(), e.getMessageObject());
+        throw new ConfigureDSException(e, msg);
       }
     }
     return rootDN;
@@ -691,14 +692,14 @@
         dn = DN.valueOf(trustManagerProviderDN.getValue());
         JCEKSManagerDN = DN.valueOf(jckesDN);
       }
-      catch (final DirectoryException de)
+      catch (final LocalizedIllegalArgumentException e)
       {
         final String value = trustManagerProviderDN.getValue();
-        final LocalizableMessage errorMessage = de.getMessageObject();
+        final LocalizableMessage errorMessage = e.getMessageObject();
         final LocalizableMessage message =
             isKeyManager ? ERR_CONFIGDS_CANNOT_PARSE_KEYMANAGER_PROVIDER_DN.get(value, errorMessage)
                          : ERR_CONFIGDS_CANNOT_PARSE_TRUSTMANAGER_PROVIDER_DN.get(value, errorMessage);
-        throw new ConfigureDSException(de, message);
+        throw new ConfigureDSException(e, message);
       }
 
       if (dn.equals(JCEKSManagerDN))
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/ExportLDIF.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/ExportLDIF.java
index a144e69..1c9b06f 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/ExportLDIF.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/ExportLDIF.java
@@ -628,11 +628,6 @@
         {
           excludeBranch = DN.valueOf(s);
         }
-        catch (DirectoryException de)
-        {
-          logger.error(ERR_LDIFEXPORT_CANNOT_DECODE_EXCLUDE_BASE, s, de.getMessageObject());
-          return 1;
-        }
         catch (Exception e)
         {
           logger.error(ERR_LDIFEXPORT_CANNOT_DECODE_EXCLUDE_BASE, s, getExceptionMessage(e));
@@ -658,11 +653,6 @@
         {
           includeBranch = DN.valueOf(s);
         }
-        catch (DirectoryException de)
-        {
-          logger.error(ERR_LDIFIMPORT_CANNOT_DECODE_INCLUDE_BASE, s, de.getMessageObject());
-          return 1;
-        }
         catch (Exception e)
         {
           logger.error(ERR_LDIFIMPORT_CANNOT_DECODE_INCLUDE_BASE, s, getExceptionMessage(e));
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/ImportLDIF.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/ImportLDIF.java
index 98fc53d..db7d499 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/ImportLDIF.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/ImportLDIF.java
@@ -776,11 +776,6 @@
         {
           includeBranch = DN.valueOf(s);
         }
-        catch (DirectoryException de)
-        {
-          logger.error(ERR_LDIFIMPORT_CANNOT_DECODE_INCLUDE_BASE, s, de.getMessageObject());
-          return 1;
-        }
         catch (Exception e)
         {
           logger.error(ERR_LDIFIMPORT_CANNOT_DECODE_INCLUDE_BASE, s, getExceptionMessage(e));
@@ -865,11 +860,6 @@
       {
         excludeBranch = DN.valueOf(s);
       }
-      catch (DirectoryException de)
-      {
-        logger.error(ERR_LDIFIMPORT_CANNOT_DECODE_EXCLUDE_BASE, s, de.getMessageObject());
-        return 1;
-      }
       catch (Exception e)
       {
         logger.error(ERR_LDIFIMPORT_CANNOT_DECODE_EXCLUDE_BASE, s, getExceptionMessage(e));
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/LDIFDiff.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/LDIFDiff.java
index f447c61..a400aeb 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/LDIFDiff.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/LDIFDiff.java
@@ -31,6 +31,7 @@
 import java.util.TreeMap;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.DN;
 import org.forgerock.opendj.ldap.ModificationType;
@@ -41,7 +42,6 @@
 import org.opends.server.loggers.JDKLogging;
 import org.opends.server.types.Attribute;
 import org.opends.server.types.AttributeBuilder;
-import org.opends.server.types.DirectoryException;
 import org.opends.server.types.Entry;
 import org.opends.server.types.ExistingFileBehavior;
 import org.opends.server.types.LDIFExportConfig;
@@ -363,7 +363,7 @@
             DN dn = DN.valueOf(line);
             ignoreEntries.add(dn);
           }
-          catch (DirectoryException e)
+          catch (LocalizedIllegalArgumentException e)
           {
             LocalizableMessage message = INFO_LDIFDIFF_CANNOT_PARSE_STRING_AS_DN.get(
                     line, ignoreEntriesFile.getValue());
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/ListBackends.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/ListBackends.java
index e713b69..21b42c3 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/ListBackends.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/ListBackends.java
@@ -35,6 +35,7 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.opendj.config.server.ConfigException;
+import org.forgerock.opendj.ldap.DN;
 import org.opends.server.config.ConfigEntry;
 import org.opends.server.config.DNConfigAttribute;
 import org.opends.server.config.StringConfigAttribute;
@@ -42,8 +43,6 @@
 import org.opends.server.core.DirectoryServer.DirectoryServerVersionHandler;
 import org.opends.server.extensions.ConfigFileHandler;
 import org.opends.server.loggers.JDKLogging;
-import org.forgerock.opendj.ldap.DN;
-import org.opends.server.types.DirectoryException;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.NullOutputStream;
 import org.opends.server.util.BuildVersion;
@@ -319,11 +318,6 @@
         {
           dn = DN.valueOf(dnStr);
         }
-        catch (DirectoryException de)
-        {
-          printWrappedText(err, ERR_LISTBACKENDS_INVALID_DN.get(dnStr, de.getMessage()));
-          return 1;
-        }
         catch (Exception e)
         {
           printWrappedText(err, ERR_LISTBACKENDS_INVALID_DN.get(dnStr, getExceptionMessage(e)));
@@ -466,12 +460,6 @@
     {
       backendBaseDN = DN.valueOf(DN_BACKEND_BASE);
     }
-    catch (DirectoryException de)
-    {
-      LocalizableMessage message = ERR_CANNOT_DECODE_BACKEND_BASE_DN.get(
-          DN_BACKEND_BASE, de.getMessageObject());
-      throw new ConfigException(message, de);
-    }
     catch (Exception e)
     {
       LocalizableMessage message = ERR_CANNOT_DECODE_BACKEND_BASE_DN.get(
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/VerifyIndex.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/VerifyIndex.java
index 4d811bd..4f14736 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/VerifyIndex.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/VerifyIndex.java
@@ -31,6 +31,7 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.opendj.config.server.ConfigException;
+import org.forgerock.opendj.ldap.DN;
 import org.opends.server.admin.std.server.BackendCfg;
 import org.opends.server.api.Backend;
 import org.opends.server.api.Backend.BackendOperation;
@@ -41,8 +42,6 @@
 import org.opends.server.core.LockFileManager;
 import org.opends.server.extensions.ConfigFileHandler;
 import org.opends.server.loggers.JDKLogging;
-import org.forgerock.opendj.ldap.DN;
-import org.opends.server.types.DirectoryException;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.NullOutputStream;
 import org.opends.server.util.BuildVersion;
@@ -298,11 +297,6 @@
     {
       verifyBaseDN = DN.valueOf(baseDNString.getValue());
     }
-    catch (DirectoryException de)
-    {
-      printWrappedText(err, ERR_CANNOT_DECODE_BASE_DN.get(baseDNString.getValue(), de.getMessageObject()));
-      return 1;
-    }
     catch (Exception e)
     {
       printWrappedText(err, ERR_CANNOT_DECODE_BASE_DN.get(baseDNString.getValue(), getExceptionMessage(e)));
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/ReplicationCliMain.java b/opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/ReplicationCliMain.java
index 3a513d6..96946ef 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/ReplicationCliMain.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/tools/dsreplication/ReplicationCliMain.java
@@ -60,6 +60,7 @@
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.i18n.LocalizableMessageBuilder;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.i18n.LocalizableMessageDescriptor.Arg0;
 import org.forgerock.i18n.LocalizableMessageDescriptor.Arg1;
 import org.forgerock.i18n.LocalizableMessageDescriptor.Arg2;
@@ -100,7 +101,6 @@
 import org.opends.server.tools.tasks.TaskScheduleInteraction;
 import org.opends.server.tools.tasks.TaskScheduleUserData;
 import org.forgerock.opendj.ldap.DN;
-import org.opends.server.types.DirectoryException;
 import org.opends.server.types.HostPort;
 import org.opends.server.types.InitializationException;
 import org.opends.server.types.NullOutputStream;
@@ -1453,9 +1453,9 @@
           }
         }
       }
-      catch (DirectoryException de)
+      catch (LocalizedIllegalArgumentException e)
       {
-        errPrintln(ERROR_RESET_CHANGE_NUMBER_EXCEPTION.get(de.getLocalizedMessage()));
+        errPrintln(ERROR_RESET_CHANGE_NUMBER_EXCEPTION.get(e.getLocalizedMessage()));
         return ERROR_RESET_CHANGE_NUMBER_PROBLEM;
       }
       if (targetBaseDN.isRootDN())
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/types/BackupDirectory.java b/opendj-server-legacy/src/main/java/org/opends/server/types/BackupDirectory.java
index 294f2c9..acf5486 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/types/BackupDirectory.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/types/BackupDirectory.java
@@ -17,6 +17,7 @@
 package org.opends.server.types;
 
 import org.forgerock.i18n.LocalizableMessage;
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 
 import java.io.BufferedReader;
 import java.io.BufferedWriter;
@@ -403,11 +404,11 @@
       {
         configEntryDN = DN.valueOf(dnString);
       }
-      catch (DirectoryException de)
+      catch (LocalizedIllegalArgumentException e)
       {
         LocalizableMessage message = ERR_BACKUPDIRECTORY_CANNOT_DECODE_DN.get(
-            dnString, descriptorFilePath, de.getMessageObject());
-        throw new ConfigException(message, de);
+            dnString, descriptorFilePath, e.getMessageObject());
+        throw new ConfigException(message, e);
       }
       catch (Exception e)
       {
diff --git a/opendj-server-legacy/src/main/java/org/opends/server/util/LDIFReader.java b/opendj-server-legacy/src/main/java/org/opends/server/util/LDIFReader.java
index b50f28a..b4f5af2 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/util/LDIFReader.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/util/LDIFReader.java
@@ -41,7 +41,9 @@
 import org.forgerock.opendj.ldap.AttributeDescription;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteStringBuilder;
+import org.forgerock.opendj.ldap.DN;
 import org.forgerock.opendj.ldap.ModificationType;
+import org.forgerock.opendj.ldap.RDN;
 import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.opends.server.api.plugin.PluginResult;
 import org.opends.server.core.DirectoryServer;
@@ -52,12 +54,9 @@
 import org.opends.server.types.Attribute;
 import org.opends.server.types.AttributeBuilder;
 import org.opends.server.types.Attributes;
-import org.forgerock.opendj.ldap.DN;
-import org.opends.server.types.DirectoryException;
 import org.opends.server.types.Entry;
 import org.opends.server.types.LDIFImportConfig;
 import org.opends.server.types.ObjectClass;
-import org.forgerock.opendj.ldap.RDN;
 import org.opends.server.types.RawModification;
 
 /**
@@ -664,28 +663,10 @@
     {
       return DN.valueOf(dnString);
     }
-    catch (DirectoryException de)
-    {
-      if (logger.isTraceEnabled())
-      {
-        logger.trace("DN decode failed for: ", dnString);
-      }
-
-      LocalizableMessage message = ERR_LDIF_INVALID_DN.get(
-          lastEntryLineNumber, line, de.getMessageObject());
-
-      logToRejectWriter(lines, message);
-      throw new LDIFException(message, lastEntryLineNumber, true, de);
-    }
     catch (Exception e)
     {
-      if (logger.isTraceEnabled())
-      {
-        logger.trace("DN decode failed for: ", dnString);
-      }
-      LocalizableMessage message = ERR_LDIF_INVALID_DN.get(
-          lastEntryLineNumber, line, e);
-
+      logger.trace("DN decode failed for: ", dnString, e);
+      LocalizableMessage message = ERR_LDIF_INVALID_DN.get(lastEntryLineNumber, line, getExceptionMessage(e));
       logToRejectWriter(lines, message);
       throw new LDIFException(message, lastEntryLineNumber, true, e);
     }
@@ -1209,17 +1190,11 @@
     try
     {
       newRDN = RDN.valueOf(rdnStr);
-    } catch (DirectoryException de)
-    {
-      logger.traceException(de);
-      LocalizableMessage message = ERR_LDIF_INVALID_DN.get(
-          lineNumber, line, de.getMessageObject());
-      throw new LDIFException(message, lineNumber, true);
-    } catch (Exception e)
+    }
+    catch (Exception e)
     {
       logger.traceException(e);
-      LocalizableMessage message =
-          ERR_LDIF_INVALID_DN.get(lineNumber, line, e.getMessage());
+      LocalizableMessage message = ERR_LDIF_INVALID_DN.get(lineNumber, line, getExceptionMessage(e));
       throw new LDIFException(message, lineNumber, true);
     }
 
@@ -1261,17 +1236,11 @@
       try
       {
         newSuperiorDN = DN.valueOf(dnStr);
-      } catch (DirectoryException de)
-      {
-        logger.traceException(de);
-        LocalizableMessage message = ERR_LDIF_INVALID_DN.get(
-            lineNumber, line, de.getMessageObject());
-        throw new LDIFException(message, lineNumber, true);
-      } catch (Exception e)
+      }
+      catch (Exception e)
       {
         logger.traceException(e);
-        LocalizableMessage message = ERR_LDIF_INVALID_DN.get(
-            lineNumber, line, e.getMessage());
+        LocalizableMessage message = ERR_LDIF_INVALID_DN.get(lineNumber, line, getExceptionMessage(e));
         throw new LDIFException(message, lineNumber, true);
       }
     }
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/admin/client/ldap/MockLDAPConnection.java b/opendj-server-legacy/src/test/java/org/opends/server/admin/client/ldap/MockLDAPConnection.java
index 3ff6e1c..53ceb6c 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/admin/client/ldap/MockLDAPConnection.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/admin/client/ldap/MockLDAPConnection.java
@@ -16,8 +16,6 @@
  */
 package org.opends.server.admin.client.ldap;
 
-
-
 import java.util.Collection;
 import java.util.HashMap;
 import java.util.LinkedList;
@@ -34,15 +32,13 @@
 import javax.naming.ldap.LdapName;
 
 import org.forgerock.opendj.ldap.ByteString;
-import org.opends.server.TestCaseUtils;
 import org.forgerock.opendj.ldap.DN;
-import org.opends.server.types.DirectoryException;
-import org.opends.server.types.Entry;
 import org.forgerock.opendj.ldap.RDN;
+import org.opends.server.TestCaseUtils;
+import org.opends.server.types.Entry;
 import org.testng.Assert;
 
 
-
 /**
  * A mock LDAP connection which fakes up search results based on some
  * LDIF content. Implementations should override the modify operations
@@ -324,14 +320,7 @@
    *         not exist.
    */
   private MockEntry getEntry(LdapName dn) {
-    DN name;
-    try {
-      name = DN.valueOf(dn.toString());
-    } catch (DirectoryException e) {
-      throw new RuntimeException(e);
-    }
-
-    return entries.get(name);
+    return entries.get(DN.valueOf(dn.toString()));
   }
 
 
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/extensions/LDAPPassThroughAuthenticationPolicyTestCase.java b/opendj-server-legacy/src/test/java/org/opends/server/extensions/LDAPPassThroughAuthenticationPolicyTestCase.java
index 8731c9b..21c3c97 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/extensions/LDAPPassThroughAuthenticationPolicyTestCase.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/extensions/LDAPPassThroughAuthenticationPolicyTestCase.java
@@ -19,8 +19,21 @@
 import java.net.InetAddress;
 import java.net.ServerSocket;
 import java.net.Socket;
-import java.util.*;
-import java.util.concurrent.*;
+import java.util.Collection;
+import java.util.LinkedList;
+import java.util.List;
+import java.util.Queue;
+import java.util.SortedSet;
+import java.util.TreeSet;
+import java.util.concurrent.Callable;
+import java.util.concurrent.CountDownLatch;
+import java.util.concurrent.Delayed;
+import java.util.concurrent.ExecutionException;
+import java.util.concurrent.Future;
+import java.util.concurrent.ScheduledExecutorService;
+import java.util.concurrent.ScheduledFuture;
+import java.util.concurrent.TimeUnit;
+import java.util.concurrent.TimeoutException;
 
 import org.forgerock.i18n.LocalizableMessage;
 import org.forgerock.opendj.io.ASN1;
@@ -31,6 +44,7 @@
 import org.forgerock.opendj.ldap.DereferenceAliasesPolicy;
 import org.forgerock.opendj.ldap.ResultCode;
 import org.forgerock.opendj.ldap.SearchScope;
+import org.forgerock.opendj.ldap.schema.AttributeType;
 import org.opends.server.TestCaseUtils;
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.admin.std.meta.LDAPPassThroughAuthenticationPolicyCfgDefn.MappingPolicy;
@@ -43,13 +57,24 @@
 import org.opends.server.extensions.LDAPPassThroughAuthenticationPolicyFactory.ConnectionFactory;
 import org.opends.server.extensions.LDAPPassThroughAuthenticationPolicyFactory.ConnectionPool;
 import org.opends.server.extensions.LDAPPassThroughAuthenticationPolicyFactory.LDAPConnectionFactory;
-import org.opends.server.protocols.ldap.*;
+import org.opends.server.protocols.ldap.BindRequestProtocolOp;
+import org.opends.server.protocols.ldap.BindResponseProtocolOp;
+import org.opends.server.protocols.ldap.ExtendedResponseProtocolOp;
+import org.opends.server.protocols.ldap.LDAPMessage;
+import org.opends.server.protocols.ldap.ProtocolOp;
+import org.opends.server.protocols.ldap.SearchRequestProtocolOp;
+import org.opends.server.protocols.ldap.SearchResultDoneProtocolOp;
+import org.opends.server.protocols.ldap.SearchResultEntryProtocolOp;
+import org.opends.server.protocols.ldap.UnbindRequestProtocolOp;
 import org.opends.server.schema.GeneralizedTimeSyntax;
 import org.opends.server.schema.UserPasswordSyntax;
 import org.opends.server.tools.LDAPReader;
 import org.opends.server.tools.LDAPWriter;
-import org.forgerock.opendj.ldap.schema.AttributeType;
-import org.opends.server.types.*;
+import org.opends.server.types.DirectoryException;
+import org.opends.server.types.Entry;
+import org.opends.server.types.LDAPException;
+import org.opends.server.types.RawFilter;
+import org.opends.server.types.SearchFilter;
 import org.opends.server.util.StaticUtils;
 import org.opends.server.util.TimeThread;
 import org.testng.annotations.BeforeClass;
@@ -58,7 +83,6 @@
 
 import static org.opends.server.extensions.LDAPPassThroughAuthenticationPolicyFactory.*;
 import static org.opends.server.protocols.ldap.LDAPConstants.*;
-import static org.opends.server.util.StaticUtils.*;
 import static org.testng.Assert.*;
 
 /**
@@ -567,14 +591,7 @@
 
     MockPolicyCfg withBaseDN(final String baseDN)
     {
-      try
-      {
-        baseDNs.add(DN.valueOf(baseDN));
-      }
-      catch (final DirectoryException e)
-      {
-        throw new RuntimeException(e);
-      }
+      baseDNs.add(DN.valueOf(baseDN));
       return this;
     }
 
@@ -711,20 +728,10 @@
       return "Salted SHA-1";
     }
 
-
-
-    /** {@inheritDoc} */
     @Override
     public DN getCachedPasswordStorageSchemeDN()
     {
-      try
-      {
-        return DN.valueOf("cn=Salted SHA-1,cn=Password Storage Schemes,cn=config");
-      }
-      catch (DirectoryException e)
-      {
-        throw new RuntimeException(e);
-      }
+      return DN.valueOf("cn=Salted SHA-1,cn=Password Storage Schemes,cn=config");
     }
 
 
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/loggers/AbstractTextAccessLogPublisherTest.java b/opendj-server-legacy/src/test/java/org/opends/server/loggers/AbstractTextAccessLogPublisherTest.java
index 2e261d0..e2fe46f 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/loggers/AbstractTextAccessLogPublisherTest.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/loggers/AbstractTextAccessLogPublisherTest.java
@@ -22,6 +22,7 @@
 import java.util.TreeSet;
 
 import org.forgerock.opendj.ldap.AddressMask;
+import org.forgerock.opendj.ldap.DN;
 import org.forgerock.opendj.ldap.ResultCode;
 import org.opends.server.DirectoryServerTestCase;
 import org.opends.server.TestCaseUtils;
@@ -33,8 +34,6 @@
 import org.opends.server.loggers.AbstractTextAccessLogPublisher.CriteriaFilter;
 import org.opends.server.loggers.AbstractTextAccessLogPublisher.RootFilter;
 import org.opends.server.types.AuthenticationInfo;
-import org.forgerock.opendj.ldap.DN;
-import org.opends.server.types.DirectoryException;
 import org.opends.server.types.Operation;
 import org.opends.server.types.OperationType;
 import org.testng.annotations.AfterClass;
@@ -314,14 +313,7 @@
 
   private DN dn(final String dn)
   {
-    try
-    {
-      return DN.valueOf(dn);
-    }
-    catch (final DirectoryException e)
-    {
-      throw new RuntimeException(e);
-    }
+    return DN.valueOf(dn);
   }
 
 
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/DomainFakeCfg.java b/opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/DomainFakeCfg.java
index 4bcdc8a..46be2e8 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/DomainFakeCfg.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/DomainFakeCfg.java
@@ -21,13 +21,12 @@
 import java.util.TreeSet;
 
 import org.forgerock.opendj.config.server.ConfigException;
+import org.forgerock.opendj.ldap.DN;
 import org.opends.server.admin.server.ConfigurationChangeListener;
 import org.opends.server.admin.std.meta.ReplicationDomainCfgDefn.AssuredType;
 import org.opends.server.admin.std.meta.ReplicationDomainCfgDefn.IsolationPolicy;
 import org.opends.server.admin.std.server.ExternalChangelogDomainCfg;
 import org.opends.server.admin.std.server.ReplicationDomainCfg;
-import org.forgerock.opendj.ldap.DN;
-import org.opends.server.types.DirectoryException;
 
 /**
  * This class implement a configuration object for the MultimasterDomain
@@ -191,22 +190,13 @@
   {
   }
 
-  /** {@inheritDoc} */
   @Override
   public DN dn()
   {
-    try
-    {
-      return DN.valueOf("cn=domain, cn=domains,cn=Multimaster Synchronization,cn=Synchronization Providers,cn=config");
-    } catch (DirectoryException e)
-    {
-      return null;
-    }
+    return DN.valueOf("cn=domain, cn=domains,cn=Multimaster Synchronization,cn=Synchronization Providers,cn=config");
   }
 
-  /**
-   * Set the heartbeat interval.
-   */
+  /** Set the heartbeat interval. */
   public void setHeartbeatInterval(long interval)
   {
     heartbeatInterval = interval;
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/DummyReplicationDomain.java b/opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/DummyReplicationDomain.java
index 6a1a716..b2fdd1a 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/DummyReplicationDomain.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/replication/plugin/DummyReplicationDomain.java
@@ -20,30 +20,18 @@
 import java.util.Set;
 import java.util.TreeSet;
 
+import org.forgerock.opendj.ldap.DN;
 import org.opends.server.replication.common.ServerState;
 import org.opends.server.replication.common.ServerStatus;
 import org.opends.server.replication.common.StatusMachineEvent;
 import org.opends.server.replication.protocol.UpdateMsg;
 import org.opends.server.replication.service.ReplicationDomain;
-import org.forgerock.opendj.ldap.DN;
 import org.opends.server.types.DirectoryException;
 
 @SuppressWarnings("javadoc")
 public class DummyReplicationDomain extends ReplicationDomain
 {
-
-  private static DN baseDN;
-  static
-  {
-    try
-    {
-      baseDN = DN.valueOf("cn=DummyReplicationDomain");
-    }
-    catch (DirectoryException e)
-    {
-      throw new RuntimeException(e);
-    }
-  }
+  private static DN baseDN = DN.valueOf("cn=DummyReplicationDomain");
 
   public DummyReplicationDomain(long generationId)
   {
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/types/LockManagerTest.java b/opendj-server-legacy/src/test/java/org/opends/server/types/LockManagerTest.java
index 48e9cf0..97eecf3 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/types/LockManagerTest.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/types/LockManagerTest.java
@@ -15,7 +15,7 @@
  */
 package org.opends.server.types;
 
-import static org.assertj.core.api.Assertions.assertThat;
+import static org.assertj.core.api.Assertions.*;
 
 import java.util.LinkedList;
 import java.util.Random;
@@ -282,21 +282,14 @@
           final Random rng = new Random();
           for (int j = 0; j < 1000000; j++)
           {
-            try
-            {
-              /*
-               * Lock a DN whose parent is different each time in order to prevent the thread local
-               * cache being used for retrieving the parent DN lock.
-               */
-              final int uid = rng.nextInt();
-              final int deviceId = rng.nextInt();
-              final DN dn = DN.valueOf("uid=" + deviceId + ",uid=" + uid + ",dc=example,dc=com");
-              lockManager.tryWriteLockEntry(dn).unlock();
-            }
-            catch (DirectoryException e)
-            {
-              throw new RuntimeException(e);
-            }
+            /*
+             * Lock a DN whose parent is different each time in order to prevent the thread local
+             * cache being used for retrieving the parent DN lock.
+             */
+            final int uid = rng.nextInt();
+            final int deviceId = rng.nextInt();
+            final DN dn = DN.valueOf("uid=" + deviceId + ",uid=" + uid + ",dc=example,dc=com");
+            lockManager.tryWriteLockEntry(dn).unlock();
           }
         }
       });
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/types/TestDN.java b/opendj-server-legacy/src/test/java/org/opends/server/types/TestDN.java
index 06b67f0..0ed30a9 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/types/TestDN.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/types/TestDN.java
@@ -23,6 +23,7 @@
 
 import java.util.ArrayList;
 
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.ByteStringBuilder;
 import org.forgerock.opendj.ldap.DN;
@@ -315,7 +316,7 @@
    * @throws Exception
    *           If the test failed unexpectedly.
    */
-  @Test(dataProvider = "illegalDNs", expectedExceptions = DirectoryException.class)
+  @Test(dataProvider = "illegalDNs", expectedExceptions = LocalizedIllegalArgumentException.class)
   public void testIllegalStringDNs(String dn) throws Exception {
     DN.valueOf(dn);
   }
@@ -331,7 +332,7 @@
    * @throws Exception
    *           If the test failed unexpectedly.
    */
-  @Test(dataProvider = "illegalDNs", expectedExceptions = DirectoryException.class)
+  @Test(dataProvider = "illegalDNs", expectedExceptions = LocalizedIllegalArgumentException.class)
   public void testIllegalOctetStringDNs(String dn) throws Exception {
     ByteString octetString = ByteString.valueOfUtf8(dn);
     DN.valueOf(octetString);
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/types/TestEntry.java b/opendj-server-legacy/src/test/java/org/opends/server/types/TestEntry.java
index 9c3d54a..38a8be8 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/types/TestEntry.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/types/TestEntry.java
@@ -71,12 +71,7 @@
    */
   private Entry createTestEntry(AttributeType type, String[] values) {
     // Construct entry DN.
-    DN entryDN;
-    try {
-      entryDN = DN.valueOf("dc=example, dc=com");
-    } catch (DirectoryException e) {
-      throw new RuntimeException(e);
-    }
+    DN entryDN = DN.valueOf("dc=example, dc=com");
 
     // Get default object classes.
     ObjectClass top = DirectoryServer.getObjectClass("top");
diff --git a/opendj-server-legacy/src/test/java/org/opends/server/types/TestRDN.java b/opendj-server-legacy/src/test/java/org/opends/server/types/TestRDN.java
index 0e045d2..b0ebc0f 100644
--- a/opendj-server-legacy/src/test/java/org/opends/server/types/TestRDN.java
+++ b/opendj-server-legacy/src/test/java/org/opends/server/types/TestRDN.java
@@ -23,6 +23,7 @@
 import java.util.Arrays;
 import java.util.Iterator;
 
+import org.forgerock.i18n.LocalizedIllegalArgumentException;
 import org.forgerock.opendj.ldap.AVA;
 import org.forgerock.opendj.ldap.ByteString;
 import org.forgerock.opendj.ldap.RDN;
@@ -270,7 +271,7 @@
    * @throws Exception
    *           If the test failed unexpectedly.
    */
-  @Test(dataProvider = "illegalRDNs", expectedExceptions = DirectoryException.class)
+  @Test(dataProvider = "illegalRDNs", expectedExceptions = LocalizedIllegalArgumentException.class)
   public void testDecodeString(String rawRDN) throws Exception {
     RDN.valueOf(rawRDN);
 

--
Gitblit v1.10.0