From 34a2c70f75a705620dd88462787da73e001d0dc7 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Fri, 04 Apr 2008 11:46:06 +0000
Subject: [PATCH] Fix for issue 3120 (Bad behavior of the status CLI and status panel if 2 LDAP connection handlers)

---
 opends/src/guitools/org/opends/guitools/statuspanel/ConfigFromFile.java |   35 +++++++++++++++++++++++++++++++++++
 1 files changed, 35 insertions(+), 0 deletions(-)

diff --git a/opends/src/guitools/org/opends/guitools/statuspanel/ConfigFromFile.java b/opends/src/guitools/org/opends/guitools/statuspanel/ConfigFromFile.java
index f8816fc..7f640d9 100644
--- a/opends/src/guitools/org/opends/guitools/statuspanel/ConfigFromFile.java
+++ b/opends/src/guitools/org/opends/guitools/statuspanel/ConfigFromFile.java
@@ -28,6 +28,7 @@
 package org.opends.guitools.statuspanel;
 
 import java.io.IOException;
+import java.util.Collection;
 import java.util.HashSet;
 import java.util.LinkedHashSet;
 import java.util.List;
@@ -36,6 +37,10 @@
 import java.util.logging.Level;
 import java.util.logging.Logger;
 
+import org.opends.server.admin.DefaultBehaviorProvider;
+import org.opends.server.admin.DefinedDefaultBehaviorProvider;
+import org.opends.server.admin.IPAddressPropertyDefinition;
+import org.opends.server.admin.std.meta.LDAPConnectionHandlerCfgDefn;
 import org.opends.server.core.DirectoryServer;
 import org.opends.admin.ads.ADSContext;
 import org.opends.admin.ads.util.ConnectionUtils;
@@ -415,6 +420,31 @@
   }
 
   /**
+   * Returns the default LDAP address as defined in the configuration.
+   * @return the default LDAP address as defined in the configuration.
+   */
+  static String getDefaultLdapAddress()
+  {
+    String address = null;
+    //  Get default value
+    LDAPConnectionHandlerCfgDefn connHandler =
+      LDAPConnectionHandlerCfgDefn.getInstance();
+    IPAddressPropertyDefinition prop =
+      connHandler.getListenAddressPropertyDefinition();
+    DefaultBehaviorProvider p = prop.getDefaultBehaviorProvider();
+    if (p instanceof DefinedDefaultBehaviorProvider)
+    {
+      Collection<?> defaultValues =
+        ((DefinedDefaultBehaviorProvider)p).getDefaultValues();
+      if (!defaultValues.isEmpty())
+      {
+        address = defaultValues.iterator().next().toString();
+      }
+    }
+    return address;
+  }
+
+  /**
    * An convenience method to know if the provided ID corresponds to a
    * configuration backend or not.
    * @param id the backend ID to analyze
@@ -483,6 +513,11 @@
     ListenerDescriptor.State state;
     if (entry.hasObjectClass(ldapConnectionHandlerOc))
     {
+      if (address == null)
+      {
+        address = getDefaultLdapAddress();
+      }
+
       addressPort = address+":"+port;
       if (isSecure)
       {

--
Gitblit v1.10.0