From 66faa7347addc7e471fae7110da349485008adf2 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Tue, 24 Mar 2009 12:58:17 +0000
Subject: [PATCH] Fix for issue 3826 (Exception in control panel LDAP browser)
---
opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/AbstractBrowseEntriesPanel.java | 28 +++++++++++++++++++---------
1 files changed, 19 insertions(+), 9 deletions(-)
diff --git a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/AbstractBrowseEntriesPanel.java b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/AbstractBrowseEntriesPanel.java
index f8e39c4..baf3b9d 100644
--- a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/AbstractBrowseEntriesPanel.java
+++ b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/ui/AbstractBrowseEntriesPanel.java
@@ -664,6 +664,7 @@
setPrimaryValid(lFilter);
String s = getBaseDN();
boolean displayAll = false;
+ DN theDN = null;
if (s != null)
{
displayAll = s.equals(ALL_BASE_DNS);
@@ -671,7 +672,7 @@
{
try
{
- DN.decode(s);
+ theDN = DN.decode(s);
}
catch (Throwable t)
{
@@ -712,6 +713,10 @@
{
for (BaseDNDescriptor baseDN : backend.getBaseDns())
{
+ if ((theDN != null) && baseDN.getDn().equals(theDN))
+ {
+ isBaseDN = true;
+ }
String dn = Utilities.unescapeUtf8(baseDN.getDn().toString());
if (displayAll)
{
@@ -720,7 +725,6 @@
else if (s.equals(dn))
{
controller.addSuffix(dn, null);
- isBaseDN = true;
}
}
}
@@ -1331,16 +1335,22 @@
}
if (baseDN.getEntries() > 0)
{
- if (!controller.hasSuffix(dn))
+ try
{
- if (displayAll)
+ if (!controller.hasSuffix(dn))
{
- controller.addSuffix(dn, null);
+ if (displayAll || isBaseDN)
+ {
+ controller.addSuffix(dn, null);
+ }
}
- else if (s.equals(dn))
- {
- controller.addSuffix(dn, null);
- }
+ }
+ catch (IllegalArgumentException iae)
+ {
+ // The suffix node exists but is not a suffix node.
+ // Simply log a message.
+ LOG.log(Level.WARNING, "Suffix: "+dn+
+ " added as a non suffix node. Exception: "+iae, iae);
}
}
}
--
Gitblit v1.10.0