mirror of https://github.com/OpenIdentityPlatform/OpenDJ.git

jvergara
20.21.2009 ab6b91549fb29d412bae6a8cb819ea9ac1acfa20
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.
1 files modified
23 ■■■■■ changed files
opendj-sdk/opends/src/ads/org/opends/admin/ads/ADSContext.java 23 ●●●●● patch | view | raw | blame | history
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)