dsrc = prov.get(account, DataSourceBy.id, eDsrc.getAttribute(MailService.A_ID));
throw ServiceException.INVALID_REQUEST("must specify either 'id' or 'name'", null);
    public Element handle(Element request, Map<String, Object> context)    throws ServiceException, SoapFaultException {        ZimbraSoapContext zsc = getZimbraSoapContext(context);        Provisioning prov = Provisioning.getInstance();        Account account = getRequestedAccount(zsc);        Mailbox mbox = getRequestedMailbox(zsc);        for (Element eDsrc : request.listElements()) {            DataSource dsrc = null;            String name = eDsrc.getAttribute(MailService.A_NAME, null);            if (name != null)                dsrc = prov.get(account, DataSourceBy.name, name);            else                dsrc = prov.get(account, DataSourceBy.id, eDsrc.getAttribute(MailService.A_ID));            // note that we're not checking the element name against the actual data source's type            if (dsrc == null)                continue;            String dataSourceId = dsrc.getId();            DataSource.Type dstype = dsrc.getType();            prov.deleteDataSource(account, dataSourceId);            if (dstype == DataSource.Type.pop3)                DbPop3Message.deleteUids(mbox, dataSourceId);        }                Element response = zsc.createElement(MailService.DELETE_DATA_SOURCE_RESPONSE);        return response;    }