From 7d73c6090e2e4efa33449aaafeed050b9319196f Mon Sep 17 00:00:00 2001
From: jcambon <jcambon@localhost>
Date: Thu, 05 Mar 2009 11:09:19 +0000
Subject: [PATCH] Fix for issue #3852 : dsconfig : in interactive mode, should not exit if parent component does not exist

---
 opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/SetPropSubCommandHandler.java |   20 ++++++++++++++++++--
 1 files changed, 18 insertions(+), 2 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/SetPropSubCommandHandler.java b/opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/SetPropSubCommandHandler.java
index 29a77c7..737c4b2 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/SetPropSubCommandHandler.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/dsconfig/SetPropSubCommandHandler.java
@@ -722,8 +722,24 @@
       Message msg = ERR_DSCFG_ERROR_MODIFY_CME.get(ufn);
       throw new ClientException(LDAPResultCode.CONSTRAINT_VIOLATION, msg);
     } catch (ManagedObjectNotFoundException e) {
-      throw ArgumentExceptionFactory.unknownValueForChildComponent(
-        "\"" + names.get(names.size()-1) + "\"");
+      String objName = names.get(names.size() - 1);
+      ArgumentException except = null;
+      Message msg;
+      // if object name is 'null', get a user-friendly string to represent this
+      if (objName == null) {
+        msg = ERR_DSCFG_ERROR_FINDER_NO_CHILDREN_NULL.get();
+        except = new ArgumentException(msg);
+      } else {
+       except = ArgumentExceptionFactory.unknownValueForChildComponent(
+        "\"" + objName + "\"");
+      }
+      if (app.isInteractive()) {
+        app.println();
+        app.printVerboseMessage(except.getMessageObject());
+        return MenuResult.cancel();
+      } else {
+        throw except;
+      }
     }
 
     if (result.isQuit()) {

--
Gitblit v1.10.0