From defab91e498d4516f715e0523da20004459211c9 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Tue, 26 Jan 2010 00:52:21 +0000
Subject: [PATCH] Fix for issue 4515 (control-panel entry browser does not deal well with sub-suffixes)
---
opends/src/guitools/org/opends/guitools/controlpanel/ui/AbstractBrowseEntriesPanel.java | 40 ++++++++++++++++++++++++++++++++++++++++
1 files changed, 40 insertions(+), 0 deletions(-)
diff --git a/opends/src/guitools/org/opends/guitools/controlpanel/ui/AbstractBrowseEntriesPanel.java b/opends/src/guitools/org/opends/guitools/controlpanel/ui/AbstractBrowseEntriesPanel.java
index 082b23a..cca4b07 100644
--- a/opends/src/guitools/org/opends/guitools/controlpanel/ui/AbstractBrowseEntriesPanel.java
+++ b/opends/src/guitools/org/opends/guitools/controlpanel/ui/AbstractBrowseEntriesPanel.java
@@ -1307,6 +1307,7 @@
InitialLdapContext ctx = getInfo().getDirContext();
InitialLdapContext ctx1 = controller.getConfigurationConnection();
boolean setConnection = ctx != ctx1;
+ updateNumSubordinateHacker(desc);
if (setConnection)
{
if (getInfo().getUserDataDirContext() == null)
@@ -1780,6 +1781,45 @@
}
/**
+ * Updates the NumsubordinateHacker of the browser controller with the
+ * provided server descriptor.
+ * @param server the server descriptor.
+ */
+ private void updateNumSubordinateHacker(ServerDescriptor server)
+ {
+ String serverHost = server.getHostname();
+ int serverPort = server.getAdminConnector().getPort();
+
+ ArrayList<DN> allSuffixes = new ArrayList<DN>();
+ for (BackendDescriptor backend : server.getBackends())
+ {
+ for (BaseDNDescriptor baseDN : backend.getBaseDns())
+ {
+ allSuffixes.add(baseDN.getDn());
+ }
+ }
+ ArrayList<DN> rootSuffixes = new ArrayList<DN>();
+ for (DN dn : allSuffixes)
+ {
+ boolean isRootSuffix = true;
+ for (DN dn1 : allSuffixes)
+ {
+ if (dn1.isAncestorOf(dn) && !dn1.equals(dn))
+ {
+ isRootSuffix = false;
+ break;
+ }
+ }
+ if (isRootSuffix)
+ {
+ rootSuffixes.add(dn);
+ }
+ }
+ controller.getNumSubordinateHacker().update(allSuffixes, rootSuffixes,
+ serverHost, serverPort);
+ }
+
+ /**
* This is a class that simply checks the number of entries that the browser
* contains and updates a counter with the new number of entries.
* It is basically a thread that sleeps and checks whether some
--
Gitblit v1.10.0