From cd57b969289f568da79e41fffe451aa0ed837722 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Wed, 28 Jan 2009 23:43:17 +0000
Subject: [PATCH] Fix issue 3446 and improve fix for issue 3726:
---
opends/src/server/org/opends/server/extensions/MemberVirtualAttributeProvider.java | 27 ++++++++++-----------------
1 files changed, 10 insertions(+), 17 deletions(-)
diff --git a/opends/src/server/org/opends/server/extensions/MemberVirtualAttributeProvider.java b/opends/src/server/org/opends/server/extensions/MemberVirtualAttributeProvider.java
index 4310cb5..d9f57ac 100644
--- a/opends/src/server/org/opends/server/extensions/MemberVirtualAttributeProvider.java
+++ b/opends/src/server/org/opends/server/extensions/MemberVirtualAttributeProvider.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Copyright 2008 Sun Microsystems, Inc.
+ * Copyright 2008-2009 Sun Microsystems, Inc.
*/
package org.opends.server.extensions;
import org.opends.messages.Message;
@@ -30,8 +30,10 @@
import java.util.Collection;
-import java.util.LinkedHashSet;
+import java.util.Collections;
+import java.util.HashSet;
import java.util.List;
+import java.util.Set;
import org.opends.server.admin.server.ConfigurationChangeListener;
import org.opends.server.admin.std.server.MemberVirtualAttributeCfg;
@@ -40,7 +42,6 @@
import org.opends.server.config.ConfigException;
import org.opends.server.core.DirectoryServer;
import org.opends.server.core.SearchOperation;
-import org.opends.server.types.AttributeType;
import org.opends.server.types.AttributeValue;
import org.opends.server.types.ByteString;
import org.opends.server.types.ConditionResult;
@@ -56,7 +57,6 @@
import static org.opends.server.loggers.debug.DebugLogger.*;
import org.opends.server.loggers.debug.DebugTracer;
-import static org.opends.server.util.ServerConstants.*;
@@ -74,10 +74,6 @@
*/
private static final DebugTracer TRACER = getTracer();
- // The attribute type used to indicate which target group should be used to
- // obtain the member list.
- private AttributeType targetGroupType;
-
// The current configuration for this member virtual attribute.
private MemberVirtualAttributeCfg currentConfig;
@@ -106,9 +102,6 @@
{
configuration.addMemberChangeListener(this);
currentConfig = configuration;
-
- targetGroupType =
- DirectoryServer.getAttributeType(ATTR_TARGET_GROUP_DN, true);
}
@@ -128,21 +121,21 @@
* {@inheritDoc}
*/
@Override()
- public LinkedHashSet<AttributeValue> getValues(Entry entry,
- VirtualAttributeRule rule)
+ public Set<AttributeValue> getValues(Entry entry,
+ VirtualAttributeRule rule)
{
if (! currentConfig.isAllowRetrievingMembership())
{
- return new LinkedHashSet<AttributeValue>(0);
+ return Collections.emptySet();
}
Group g = DirectoryServer.getGroupManager().getGroupInstance(entry.getDN());
if (g == null)
{
- return new LinkedHashSet<AttributeValue>(0);
+ return Collections.emptySet();
}
- LinkedHashSet<AttributeValue> values = new LinkedHashSet<AttributeValue>();
+ HashSet<AttributeValue> values = new HashSet<AttributeValue>();
try
{
MemberList memberList = g.getMembers();
@@ -174,7 +167,7 @@
}
}
- return values;
+ return Collections.unmodifiableSet(values);
}
--
Gitblit v1.10.0