From e31e221ede36f7e31aa222c21da972ea6fd1b12a Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Wed, 14 Oct 2009 11:24:26 +0000
Subject: [PATCH] Fix for issue 4283 (No way to add operational attribute to an entry)
---
opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/util/LDAPEntryReader.java | 45 ++++++---------------------------------------
1 files changed, 6 insertions(+), 39 deletions(-)
diff --git a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/util/LDAPEntryReader.java b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/util/LDAPEntryReader.java
index 18df400..6e8ffc8 100644
--- a/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/util/LDAPEntryReader.java
+++ b/opendj-sdk/opends/src/guitools/org/opends/guitools/controlpanel/util/LDAPEntryReader.java
@@ -22,13 +22,12 @@
* CDDL HEADER END
*
*
- * Copyright 2008 Sun Microsystems, Inc.
+ * Copyright 2008-2009 Sun Microsystems, Inc.
*/
package org.opends.guitools.controlpanel.util;
import java.util.HashSet;
-import java.util.Iterator;
import java.util.Set;
import javax.naming.NamingEnumeration;
@@ -40,8 +39,6 @@
import org.opends.guitools.controlpanel.event.EntryReadErrorEvent;
import org.opends.guitools.controlpanel.event.EntryReadEvent;
import org.opends.guitools.controlpanel.event.EntryReadListener;
-import org.opends.server.types.AttributeType;
-import org.opends.server.types.Schema;
/**
* A class that reads an entry on the background. This is used in the LDAP
@@ -53,7 +50,6 @@
{
private String dn;
private InitialLdapContext ctx;
- private Schema schema;
private Set<EntryReadListener> listeners = new HashSet<EntryReadListener>();
private boolean isOver;
@@ -61,13 +57,11 @@
* Constructor of the entry reader.
* @param dn the DN of the entry.
* @param ctx the connection to the server.
- * @param schema the schema of the server.
*/
- public LDAPEntryReader(String dn, InitialLdapContext ctx, Schema schema)
+ public LDAPEntryReader(String dn, InitialLdapContext ctx)
{
this.dn = dn;
this.ctx = ctx;
- this.schema = schema;
}
/**
@@ -80,25 +74,16 @@
{
SearchControls controls = new SearchControls();
controls.setCountLimit(1);
- Set<String> operational = getAllOperationalAttributes();
- String[] attrs = new String[operational.size()+1];
- Iterator<String> it = operational.iterator();
- int i = 0;
- while (it.hasNext())
- {
- attrs[i] = it.next();
- i++;
- }
- attrs[attrs.length - 1] = "*";
+ String[] attrs = {"*", "+"};
controls.setReturningAttributes(attrs);
controls.setSearchScope(SearchControls.OBJECT_SCOPE);
final String filter = "(|(objectclass=*)(objectclass=ldapsubentry))";
- NamingEnumeration en = ctx.search(Utilities.getJNDIName(dn), filter,
- controls);
+ NamingEnumeration<SearchResult> en =
+ ctx.search(Utilities.getJNDIName(dn), filter, controls);
- SearchResult sr = (SearchResult)en.next();
+ SearchResult sr = en.next();
return new CustomSearchResult(sr, dn);
}
@@ -185,22 +170,4 @@
{
listeners.remove(listener);
}
-
- private Set<String> getAllOperationalAttributes()
- {
- HashSet<String> attrs = new HashSet<String>();
- // Do a best effort if schema could not be retrieved when creating
- // this object.
- if (schema != null)
- {
- for (AttributeType attr : schema.getAttributeTypes().values())
- {
- if (attr.isOperational())
- {
- attrs.add(attr.getNameOrOID());
- }
- }
- }
- return attrs;
- }
}
--
Gitblit v1.10.0