public void removeMembers(String[] members) throws ServiceException {
void removeMembers(String[] members) throws ServiceException {
    public void removeMembers(String[] members) throws ServiceException {    	Set<String> existing = getMultiAttrSet(Provisioning.A_zimbraMailForwardingAddress);    	Set<String> mods = new HashSet<String>();    	HashSet<String> failed = new HashSet<String>();    	    	for (int i = 0; i < members.length; i++) {         	members[i] = members[i].toLowerCase();        	if (members[i].length() == 0) {        		throw ServiceException.INVALID_REQUEST("invalid member email address: " + members[i], null);        	}        	// We do not do any further validation of the remove address for			// syntax - removes should be liberal so any bad entries added by			// some other means can be removed        	if (existing.contains(members[i])) {            	mods.add(members[i]);        	} else {        		failed.add(members[i]);        	}        }    	if (!failed.isEmpty()) {    		StringBuilder sb = new StringBuilder();    		Iterator<String> iter = failed.iterator();    		while (true) {    			sb.append(iter.next());    			if (!iter.hasNext())    				break;    			sb.append(",");    		}    		throw AccountServiceException.NO_SUCH_MEMBER(getName(), sb.toString());    	}    	    	if (mods.isEmpty()) {    		throw ServiceException.INVALID_REQUEST("empty remove set", null);        }                Map<String,String[]> modmap = new HashMap<String,String[]>();        modmap.put("-" + Provisioning.A_zimbraMailForwardingAddress, (String[])mods.toArray(new String[0]));        modifyAttrs(modmap);    }