From 8532a5133e996e61765be126f8b4d25984745fd1 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Mon, 03 Sep 2007 13:33:50 +0000
Subject: [PATCH] Partial fix for issue 1451: admin framework constraint and dependency support.

---
 opends/src/server/org/opends/server/admin/client/ldap/LDAPManagedObject.java |   40 +++++++++++++++++++---------------------
 1 files changed, 19 insertions(+), 21 deletions(-)

diff --git a/opends/src/server/org/opends/server/admin/client/ldap/LDAPManagedObject.java b/opends/src/server/org/opends/server/admin/client/ldap/LDAPManagedObject.java
index e74232a..2a80dbc 100644
--- a/opends/src/server/org/opends/server/admin/client/ldap/LDAPManagedObject.java
+++ b/opends/src/server/org/opends/server/admin/client/ldap/LDAPManagedObject.java
@@ -40,6 +40,7 @@
 import javax.naming.ldap.LdapName;
 import javax.naming.ldap.Rdn;
 
+import org.opends.messages.Message;
 import org.opends.server.admin.Configuration;
 import org.opends.server.admin.ConfigurationClient;
 import org.opends.server.admin.InstantiableRelationDefinition;
@@ -59,8 +60,6 @@
 import org.opends.server.admin.client.spi.Driver;
 import org.opends.server.admin.client.spi.Property;
 import org.opends.server.admin.client.spi.PropertySet;
-import org.opends.server.admin.std.client.RootCfgClient;
-import org.opends.server.admin.std.meta.RootCfgDefn;
 
 
 
@@ -74,22 +73,6 @@
 final class LDAPManagedObject<T extends ConfigurationClient> extends
     AbstractManagedObject<T> {
 
-  /**
-   * Constructs a root LDAP managed object associated with the
-   * provided LDAP driver.
-   *
-   * @param driver
-   *          The LDAP management driver.
-   * @return Returns a root LDAP managed object associated with the
-   *         provided LDAP driver.
-   */
-  static ManagedObject<RootCfgClient> getRootManagedObject(
-      LDAPDriver driver) {
-    return new LDAPManagedObject<RootCfgClient>(driver, RootCfgDefn
-        .getInstance(), ManagedObjectPath.emptyPath(), new PropertySet(), true,
-        null);
-  }
-
   // The LDAP management driver associated with this managed object.
   private final LDAPDriver driver;
 
@@ -176,7 +159,12 @@
           driver.getLDAPConnection().createEntry(dn, attributes);
         } catch (OperationNotSupportedException e) {
           // Unwilling to perform.
-          throw new OperationRejectedException(e);
+          if (e.getMessage() != null) {
+            throw new OperationRejectedException();
+          } else {
+            Message m = Message.raw("%s", e.getMessage());
+            throw new OperationRejectedException(m);
+          }
         } catch (NamingException e) {
           driver.adaptNamingException(e);
         }
@@ -220,7 +208,12 @@
       throw new ManagedObjectAlreadyExistsException();
     } catch (OperationNotSupportedException e) {
       // Unwilling to perform.
-      throw new OperationRejectedException(e);
+      if (e.getMessage() != null) {
+        throw new OperationRejectedException();
+      } else {
+        Message m = Message.raw("%s", e.getMessage());
+        throw new OperationRejectedException(m);
+      }
     } catch (NamingException e) {
       driver.adaptNamingException(e);
     }
@@ -269,7 +262,12 @@
         throw new AuthorizationException(e);
       } catch (OperationNotSupportedException e) {
         // Unwilling to perform.
-        throw new OperationRejectedException(e);
+        if (e.getMessage() != null) {
+          throw new OperationRejectedException();
+        } else {
+          Message m = Message.raw("%s", e.getMessage());
+          throw new OperationRejectedException(m);
+        }
       } catch (NamingException e) {
         // Just treat it as a communication problem.
         throw new CommunicationException(e);

--
Gitblit v1.10.0