From 79ca963cb59687d7144f8a8529a23d49104b4883 Mon Sep 17 00:00:00 2001
From: mmarie <mmarie@localhost>
Date: Fri, 21 Dec 2007 14:14:46 +0000
Subject: [PATCH] [2773] add operation into a non existing naming context returns wrong error code  - Fix return code for add operation on a non existing backend (32 instead of -1 currently)

---
 opendj-sdk/opends/src/server/org/opends/server/core/AddOperationBasis.java |   22 +++++++++++++---------
 opendj-sdk/opends/src/messages/messages/core.properties                    |    3 +++
 2 files changed, 16 insertions(+), 9 deletions(-)

diff --git a/opendj-sdk/opends/src/messages/messages/core.properties b/opendj-sdk/opends/src/messages/messages/core.properties
index b9563c4..117c96c 100644
--- a/opendj-sdk/opends/src/messages/messages/core.properties
+++ b/opendj-sdk/opends/src/messages/messages/core.properties
@@ -1761,3 +1761,6 @@
 MILD_ERR_CRYPTOMGR_DECRYPT_UNKNOWN_PROLOGUE_VERSION_696=CryptoManager failed to \
  decrypt the supplied data because the version "%d" in the data prologue is \
  unknown
+MILD_ERR_ADD_ENTRY_UNKNOWN_SUFFIX_697=The provided entry %s cannot be added \
+ because is not defined as one of the suffixes within the Directory Server
+
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/AddOperationBasis.java b/opendj-sdk/opends/src/server/org/opends/server/core/AddOperationBasis.java
index 37747cf..eb32602 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/AddOperationBasis.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/AddOperationBasis.java
@@ -1043,22 +1043,26 @@
       if (DirectoryServer.isNamingContext(entryDN))
       {
         // This is fine.  This entry is one of the configured suffixes.
+        return;
       }
-      else if (entryDN.isNullDN())
+      if (entryDN.isNullDN())
       {
         // This is not fine.  The root DSE cannot be added.
         setResultCode(ResultCode.UNWILLING_TO_PERFORM);
         appendErrorMessage(ERR_ADD_CANNOT_ADD_ROOT_DSE.get());
+        return;
       }
-      else
-      {
-        // The entry doesn't have a parent but isn't a suffix.  This is not
-        // allowed.
-        setResultCode(ResultCode.NO_SUCH_OBJECT);
-        appendErrorMessage(ERR_ADD_ENTRY_NOT_SUFFIX.get(
-                String.valueOf(entryDN)));
-      }
+      // The entry doesn't have a parent but isn't a suffix.  This is not
+      // allowed.
+      setResultCode(ResultCode.NO_SUCH_OBJECT);
+      appendErrorMessage(ERR_ADD_ENTRY_NOT_SUFFIX.get(
+        String.valueOf(entryDN)));
+      return;
     }
+    // The suffix does not exist
+    setResultCode(ResultCode.NO_SUCH_OBJECT);
+    appendErrorMessage(ERR_ADD_ENTRY_UNKNOWN_SUFFIX.get(
+      String.valueOf(entryDN)));
   }
 
 

--
Gitblit v1.10.0