From 833853c74c1e66efa980d4c47fc02399f0f45f55 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Sat, 11 Aug 2007 16:34:37 +0000
Subject: [PATCH] Fix issues 1996 and 1998.

---
 opends/src/server/org/opends/server/tools/dsconfig/SubCommandHandler.java |    8 ++++++++
 opends/src/server/org/opends/server/admin/ManagedObjectPath.java          |   14 ++++++++++++--
 2 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/opends/src/server/org/opends/server/admin/ManagedObjectPath.java b/opends/src/server/org/opends/server/admin/ManagedObjectPath.java
index d81a34c..d37816c 100644
--- a/opends/src/server/org/opends/server/admin/ManagedObjectPath.java
+++ b/opends/src/server/org/opends/server/admin/ManagedObjectPath.java
@@ -719,11 +719,18 @@
    *          The relative name of the child managed object.
    * @return Returns a new child managed object path beneath the
    *         provided parent path.
+   * @throws IllegalArgumentException
+   *           If the provided name is empty or blank.
    */
   public <M extends ConfigurationClient, N extends Configuration>
       ManagedObjectPath<M, N> child(
       InstantiableRelationDefinition<? super M, ? super N> r,
-      AbstractManagedObjectDefinition<M, N> d, String name) {
+      AbstractManagedObjectDefinition<M, N> d, String name)
+      throws IllegalArgumentException {
+    if (name.trim().length() == 0) {
+      throw new IllegalArgumentException(
+          "Empty or blank managed object names are not allowed");
+    }
     LinkedList<Element<?, ?>> celements = new LinkedList<Element<?, ?>>(
         elements);
     celements.add(new InstantiableElement<M, N>(r, d, name));
@@ -748,10 +755,13 @@
    *          The relative name of the child managed object.
    * @return Returns a new child managed object path beneath the
    *         provided parent path.
+   * @throws IllegalArgumentException
+   *           If the provided name is empty or blank.
    */
   public <M extends ConfigurationClient, N extends Configuration>
       ManagedObjectPath<M, N> child(
-      InstantiableRelationDefinition<M, N> r, String name) {
+      InstantiableRelationDefinition<M, N> r, String name)
+      throws IllegalArgumentException {
     return child(r, r.getChildDefinition(), name);
   }
 
diff --git a/opends/src/server/org/opends/server/tools/dsconfig/SubCommandHandler.java b/opends/src/server/org/opends/server/tools/dsconfig/SubCommandHandler.java
index 2cfbb26..da6b09c 100644
--- a/opends/src/server/org/opends/server/tools/dsconfig/SubCommandHandler.java
+++ b/opends/src/server/org/opends/server/tools/dsconfig/SubCommandHandler.java
@@ -60,6 +60,7 @@
 import org.opends.server.admin.client.AuthorizationException;
 import org.opends.server.admin.client.CommunicationException;
 import org.opends.server.admin.client.ConcurrentModificationException;
+import org.opends.server.admin.client.IllegalManagedObjectNameException;
 import org.opends.server.admin.client.ManagedObject;
 import org.opends.server.admin.client.ManagedObjectDecodingException;
 import org.opends.server.admin.client.ManagementContext;
@@ -140,6 +141,13 @@
               gotException = true;
               return;
             }
+          } else if (childName.trim().length() == 0) {
+            IllegalManagedObjectNameException e =
+              new IllegalManagedObjectNameException(childName);
+            ae = ArgumentExceptionFactory
+                .adaptIllegalManagedObjectNameException(e, d);
+            gotException = true;
+            return;
           }
 
           ManagedObject<?> child = managedObject.getChild(r, childName);

--
Gitblit v1.10.0