docs: private void updateGroupMember(String oldDN, String newDN) throws WIMException {
          if (!iLdapConfigMgr.updateGroupMembership()) {
              return;
          }
          String filter = iLdapConfigMgr.getGroupMemberFilter(oldDN);
          String[] mbrAttrs = iLdapConfigMgr.getMemberAttributes();
          Map<String, ModificationItem[]> mbrAttrMap = new HashMap<String, ModificationItem[]>(mbrAttrs.length);
          for (int i = 0; i < mbrAttrs.length; i++) {
              String mbrAttr = mbrAttrs[i];
              ModificationItem removeAttr = new ModificationItem(DirContext.REMOVE_ATTRIBUTE, new BasicAttribute(mbrAttr, oldDN));
              ModificationItem[] modifAttrs = null;
              if (newDN != null) {
                  ModificationItem addAttr = new ModificationItem(DirContext.ADD_ATTRIBUTE, new BasicAttribute(mbrAttr, newDN));
                  modifAttrs = new ModificationItem[2];
                  modifAttrs[0] = addAttr;
                  modifAttrs[1] = removeAttr;
              } else {
                  modifAttrs = new ModificationItem[1];
                  modifAttrs[0] = removeAttr;
              }
              mbrAttrMap.put(mbrAttr.toLowerCase(), modifAttrs);
          }
          String[] searchBases = iLdapConfigMgr.getGroupSearchBases();
          for (int i = 0; i < searchBases.length; i++) {
              String searchBase = searchBases[i];
              NamingEnumeration<SearchResult> nenu = iLdapConn.search(searchBase, filter, SearchControls.SUBTREE_SCOPE,
                                                                      LDAP_ATTR_OBJECTCLASS_ARRAY);
              while (nenu.hasMoreElements()) {
                  SearchResult thisEntry = nenu.nextElement();
                  if (thisEntry == null) {
                      continue;
                  }
                  String entryName = thisEntry.getName();
                  if (entryName == null || entryName.trim().length() == 0) {
                      continue;
                  }
                  String DN = LdapHelper.prepareDN(entryName, searchBase);
                  Attributes attrs = thisEntry.getAttributes();
                  String[] thisMbrAttrs = iLdapConfigMgr.getMemberAttribute(attrs.get(LDAP_ATTR_OBJECTCLASS));
                  if (thisMbrAttrs != null) {
                      for (int j = 0; j < thisMbrAttrs.length; j++) {
                          ModificationItem[] attrsTobeModify = mbrAttrMap.get(thisMbrAttrs[j].toLowerCase());
                          if (attrsTobeModify != null) {
                              try {
                                  iLdapConn.modifyAttributes(DN, attrsTobeModify);
                              } catch (Exception e) {
                                  if (tc.isDebugEnabled()) {
                                      Tr.debug(tc, "Updating group " + DN + " for " + oldDN + " failed due to: " + e.toString());
                                  }
                              }
                          }
                      }
                  }
              }
          }
      }