From c950fe2ad987d5669df1927ba79d4c4080fc55e9 Mon Sep 17 00:00:00 2001
From: jcambon <jcambon@localhost>
Date: Thu, 22 Nov 2007 14:12:42 +0000
Subject: [PATCH] 

---
 opends/src/server/org/opends/server/tools/dsconfig/DSConfig.java |   36 +++++++++++++++++++++++-------------
 1 files changed, 23 insertions(+), 13 deletions(-)

diff --git a/opends/src/server/org/opends/server/tools/dsconfig/DSConfig.java b/opends/src/server/org/opends/server/tools/dsconfig/DSConfig.java
index 60caf23..b069817 100644
--- a/opends/src/server/org/opends/server/tools/dsconfig/DSConfig.java
+++ b/opends/src/server/org/opends/server/tools/dsconfig/DSConfig.java
@@ -719,26 +719,36 @@
       return 1;
     }
 
+    int retCode = 0;
     if (parser.getSubCommand() == null) {
       hasSubCommand = false;
 
       if (isInteractive()) {
-        // Top-level interactive mode.
-        return runInteractiveMode();
+          // Top-level interactive mode.
+          retCode = runInteractiveMode();
+        } else {
+          Message message = ERR_ERROR_PARSING_ARGS
+              .get(ERR_DSCFG_ERROR_MISSING_SUBCOMMAND.get());
+          displayMessageAndUsageReference(message);
+          retCode = 1;
+        }
       } else {
-        Message message = ERR_ERROR_PARSING_ARGS
-            .get(ERR_DSCFG_ERROR_MISSING_SUBCOMMAND.get());
-        displayMessageAndUsageReference(message);
-        return 1;
-      }
-    } else {
-      hasSubCommand = true;
+        hasSubCommand = true;
 
-      // Retrieve the sub-command implementation and run it.
-      SubCommandHandler handler = handlers.get(parser.getSubCommand());
-      return runSubCommand(handler);
+        // Retrieve the sub-command implementation and run it.
+        SubCommandHandler handler = handlers.get(parser.getSubCommand());
+        retCode = runSubCommand(handler);
+      }
+
+      try {
+        // Close the Management context ==> an LDAP UNBIND is sent
+        factory.getManagementContext(this).close();
+      } catch (Exception e) {
+      // Nothing to report in this case
+      }
+
+      return retCode;
     }
-  }
 
 
 

--
Gitblit v1.10.0