From 3445f16b500d5b98462f80e04429376bc2412a84 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Tue, 24 Mar 2009 12:52:41 +0000
Subject: [PATCH] Fix for issue 3896 (Control Panel does not allow to create a sub-suffix) Check the backend where the suffix must be created before displaying an error when analyzing the provided bind DN.

---
 opends/src/guitools/org/opends/guitools/controlpanel/ui/NewBaseDNPanel.java |   29 ++++++++++++++++++-----------
 1 files changed, 18 insertions(+), 11 deletions(-)

diff --git a/opends/src/guitools/org/opends/guitools/controlpanel/ui/NewBaseDNPanel.java b/opends/src/guitools/org/opends/guitools/controlpanel/ui/NewBaseDNPanel.java
index 796f1df..ad6158d 100644
--- a/opends/src/guitools/org/opends/guitools/controlpanel/ui/NewBaseDNPanel.java
+++ b/opends/src/guitools/org/opends/guitools/controlpanel/ui/NewBaseDNPanel.java
@@ -475,6 +475,7 @@
     Set<BackendDescriptor> backendObjects = desc.getBackends();
 
     Object o = backends.getSelectedItem();
+    String backendName = String.valueOf(o);
     if (o == null)
     {
       errors.add(ERR_CTRL_PANEL_NO_BACKENDS_SELECTED.get());
@@ -482,7 +483,7 @@
     }
     else if (o.equals(NEW_BACKEND))
     {
-      String backendName = newBackend.getText().trim();
+      backendName = newBackend.getText().trim();
       if (backendName.length() == 0)
       {
         errors.add(ERR_NEW_BACKEND_NAME_REQUIRED.get());
@@ -529,19 +530,25 @@
             }
             else if (baseDN.getDn().isAncestorOf(theDN))
             {
-              errors.add(ERR_BASE_DN_ANCESTOR_EXISTS.get(
-                  baseDN.getDn().toString()));
-              setPrimaryInvalid(lDirectoryBaseDN);
-              baseDNAlreadyDefined = true;
-              break;
+              if (backendName.equalsIgnoreCase(backend.getBackendID()))
+              {
+                errors.add(ERR_BASE_DN_ANCESTOR_EXISTS.get(
+                    baseDN.getDn().toString()));
+                setPrimaryInvalid(lDirectoryBaseDN);
+                baseDNAlreadyDefined = true;
+                break;
+              }
             }
             else if (theDN.isAncestorOf(baseDN.getDn()))
             {
-              errors.add(ERR_BASE_DN_DN_IS_ANCESTOR_OF.get(
-                  baseDN.getDn().toString()));
-              setPrimaryInvalid(lDirectoryBaseDN);
-              baseDNAlreadyDefined = true;
-              break;
+              if (backendName.equalsIgnoreCase(backend.getBackendID()))
+              {
+                errors.add(ERR_BASE_DN_DN_IS_ANCESTOR_OF.get(
+                    baseDN.getDn().toString()));
+                setPrimaryInvalid(lDirectoryBaseDN);
+                baseDNAlreadyDefined = true;
+                break;
+              }
             }
           }
           if (baseDNAlreadyDefined)

--
Gitblit v1.10.0