From ab6b91549fb29d412bae6a8cb819ea9ac1acfa20 Mon Sep 17 00:00:00 2001
From: jvergara <jvergara@localhost>
Date: Sat, 20 Jun 2009 01:21:13 +0000
Subject: [PATCH] Fix for issue 4064 (references to old replication server exist after dsreplication disable) Remove the references to the different server groups in the server that is being unregistered.
---
opendj-sdk/opends/src/ads/org/opends/admin/ads/ADSContext.java | 23 +++++++++++++++++++++++
1 files changed, 23 insertions(+), 0 deletions(-)
diff --git a/opendj-sdk/opends/src/ads/org/opends/admin/ads/ADSContext.java b/opendj-sdk/opends/src/ads/org/opends/admin/ads/ADSContext.java
index 09a7d1f..8dcddd2 100644
--- a/opendj-sdk/opends/src/ads/org/opends/admin/ads/ADSContext.java
+++ b/opendj-sdk/opends/src/ads/org/opends/admin/ads/ADSContext.java
@@ -557,6 +557,29 @@
{
unregisterInstanceKeyCertificate(serverProperties, dn);
}
+
+ // Unregister the server from the server groups.
+ String member = "cn="
+ + Rdn.escapeValue(serverProperties.get(ServerProperty.ID));
+ Set<Map<ServerGroupProperty, Object>> serverGroups =
+ readServerGroupRegistry();
+ for (Map<ServerGroupProperty, Object> serverGroup : serverGroups)
+ {
+ Set<?> memberList =
+ (Set<?>)serverGroup.get(ServerGroupProperty.MEMBERS);
+ if (memberList != null)
+ {
+ if (memberList.remove(member))
+ {
+ HashMap<ServerGroupProperty, Object> serverGroupProperties =
+ new HashMap<ServerGroupProperty, Object>();
+ serverGroupProperties.put(ServerGroupProperty.MEMBERS, memberList);
+ String groupName = (String)serverGroup.get(ServerGroupProperty.UID);
+ updateServerGroup(groupName, serverGroupProperties);
+ }
+ }
+ }
+
dirContext.destroySubcontext(dn);
}
catch (NameNotFoundException x)
--
Gitblit v1.10.0