From 9bce07b9bff3d251fe7284f7096a6e828279a6c2 Mon Sep 17 00:00:00 2001
From: lutoff <lutoff@localhost>
Date: Thu, 17 Jan 2008 08:54:44 +0000
Subject: [PATCH] fix for issue #2836 (dsconfig: after failed 1st attempt, 2nd attempt to connect to server exits)

---
 opends/src/server/org/opends/server/tools/dsconfig/ManagementContextFactory.java         |    7 ++++++-
 opends/src/server/org/opends/server/tools/dsconfig/LDAPManagementContextFactory.java     |   13 ++++++++++++-
 opends/src/server/org/opends/server/tools/dsconfig/InternalManagementContextFactory.java |   12 ++++++++++--
 opends/src/server/org/opends/server/tools/dsconfig/DSConfig.java                         |    4 ++--
 4 files changed, 30 insertions(+), 6 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 b069817..66c4b47 100644
--- a/opends/src/server/org/opends/server/tools/dsconfig/DSConfig.java
+++ b/opends/src/server/org/opends/server/tools/dsconfig/DSConfig.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Portions Copyright 2007 Sun Microsystems, Inc.
+ *      Portions Copyright 2007-2008 Sun Microsystems, Inc.
  */
 package org.opends.server.tools.dsconfig;
 
@@ -742,7 +742,7 @@
 
       try {
         // Close the Management context ==> an LDAP UNBIND is sent
-        factory.getManagementContext(this).close();
+        factory.close();
       } catch (Exception e) {
       // Nothing to report in this case
       }
diff --git a/opends/src/server/org/opends/server/tools/dsconfig/InternalManagementContextFactory.java b/opends/src/server/org/opends/server/tools/dsconfig/InternalManagementContextFactory.java
index 64b9a82..f2598d0 100644
--- a/opends/src/server/org/opends/server/tools/dsconfig/InternalManagementContextFactory.java
+++ b/opends/src/server/org/opends/server/tools/dsconfig/InternalManagementContextFactory.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Portions Copyright 2007 Sun Microsystems, Inc.
+ *      Portions Copyright 2007-2008 Sun Microsystems, Inc.
  */
 package org.opends.server.tools.dsconfig;
 
@@ -59,7 +59,15 @@
     this.context = context;
   }
 
-
+  /**
+   * {@inheritDoc}
+   */
+  public void close()
+  {
+    // No implementation required.
+    // We let the user of this InternalManagementContextFactory close
+    // his/her context.
+  }
 
   /**
    * {@inheritDoc}
diff --git a/opends/src/server/org/opends/server/tools/dsconfig/LDAPManagementContextFactory.java b/opends/src/server/org/opends/server/tools/dsconfig/LDAPManagementContextFactory.java
index 52b7250..26a7b74 100644
--- a/opends/src/server/org/opends/server/tools/dsconfig/LDAPManagementContextFactory.java
+++ b/opends/src/server/org/opends/server/tools/dsconfig/LDAPManagementContextFactory.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Portions Copyright 2007 Sun Microsystems, Inc.
+ *      Portions Copyright 2007-2008 Sun Microsystems, Inc.
  */
 package org.opends.server.tools.dsconfig;
 
@@ -94,6 +94,17 @@
   }
 
   /**
+   * {@inheritDoc}
+   */
+  public void close()
+  {
+    if (context != null)
+    {
+      context.close();
+    }
+  }
+
+  /**
    * Gets the management context which sub-commands should use in
    * order to manage the directory server. Implementations can use the
    * application instance for retrieving passwords interactively.
diff --git a/opends/src/server/org/opends/server/tools/dsconfig/ManagementContextFactory.java b/opends/src/server/org/opends/server/tools/dsconfig/ManagementContextFactory.java
index c1c2669..eb6febe 100644
--- a/opends/src/server/org/opends/server/tools/dsconfig/ManagementContextFactory.java
+++ b/opends/src/server/org/opends/server/tools/dsconfig/ManagementContextFactory.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Portions Copyright 2007 Sun Microsystems, Inc.
+ *      Portions Copyright 2007-2008 Sun Microsystems, Inc.
  */
 package org.opends.server.tools.dsconfig;
 
@@ -64,6 +64,11 @@
       throws ArgumentException, ClientException;
 
 
+  /**
+   * Closes this management context.
+   */
+  void close();
+
 
   /**
    * Initializes this management context factory using the provided

--
Gitblit v1.10.0