throw ServiceException.FAILURE("unable to lookup account via query: "+query, e);
throw ServiceException.FAILURE("unable to lookup account via query: "+query+" message: "+e.getMessage(), e);
    private LdapAccount getAccountByQuery(String base, String query, DirContext initCtxt) throws ServiceException {        DirContext ctxt = initCtxt;        try {            if (ctxt == null)                ctxt = LdapUtil.getDirContext();            NamingEnumeration ne = ctxt.search(base, query, sSubtreeSC);            if (ne.hasMore()) {                SearchResult sr = (SearchResult) ne.next();                if (ne.hasMore())                    throw AccountServiceException.MULTIPLE_ACCOUNTS_MATCHED("getAccountByQuery: "+query);                ne.close();                return makeLdapAccount(sr.getNameInNamespace(), sr.getAttributes(), this);            }        } catch (NameNotFoundException e) {            return null;        } catch (InvalidNameException e) {            return null;                    } catch (NamingException e) {            throw ServiceException.FAILURE("unable to lookup account via query: "+query, e);        } finally {            if (initCtxt == null)                LdapUtil.closeContext(ctxt);        }        return null;    }