From e651d8a4ba69ea4764d780ccf66068bd6f9c9c46 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Tue, 04 Nov 2008 17:47:26 +0000
Subject: [PATCH] Fix for issue 3554 (Control Panel : Error displayed after deleting several entries).
---
opends/src/guitools/org/opends/guitools/controlpanel/datamodel/ControlPanelInfo.java | 37 +++++++++++++++++++++++++++++++++++++
1 files changed, 37 insertions(+), 0 deletions(-)
diff --git a/opends/src/guitools/org/opends/guitools/controlpanel/datamodel/ControlPanelInfo.java b/opends/src/guitools/org/opends/guitools/controlpanel/datamodel/ControlPanelInfo.java
index b395fe4..850b93b 100644
--- a/opends/src/guitools/org/opends/guitools/controlpanel/datamodel/ControlPanelInfo.java
+++ b/opends/src/guitools/org/opends/guitools/controlpanel/datamodel/ControlPanelInfo.java
@@ -89,6 +89,8 @@
private String startTLSURL;
private String ldapsURL;
private String adminConnectorURL;
+ private String lastWorkingBindDN;
+ private String lastWorkingBindPwd;
private static boolean mustDeregisterConfig;
@@ -288,6 +290,11 @@
public void setDirContext(InitialLdapContext ctx)
{
this.ctx = ctx;
+ if (ctx != null)
+ {
+ lastWorkingBindDN = ConnectionUtils.getBindDN(ctx);
+ lastWorkingBindPwd = ConnectionUtils.getBindPassword(ctx);
+ }
}
/**
@@ -498,6 +505,29 @@
desc.getInstallPath().getAbsolutePath())))
{
desc.setStatus(ServerDescriptor.ServerStatus.STARTED);
+
+ if ((ctx == null) && (lastWorkingBindDN != null))
+ {
+ // Try with previous credentials.
+ try
+ {
+ ctx = Utilities.getAdminDirContext(this, lastWorkingBindDN,
+ lastWorkingBindPwd);
+ }
+ catch (ConfigReadException cre)
+ {
+// Ignore: we will ask the user for credentials.
+ }
+ catch (NamingException ne)
+ {
+ // Ignore: we will ask the user for credentials.
+ }
+ if (ctx != null)
+ {
+ this.ctx = ctx;
+ }
+ }
+
if (ctx == null)
{
reader = createNewConfigFromFileReader();
@@ -521,6 +551,13 @@
}
catch (NamingException ne)
{
+ try
+ {
+ Thread.sleep(400);
+ }
+ catch (Throwable t)
+ {
+ }
}
}
if (!connectionWorks)
--
Gitblit v1.10.0