throw ServiceException.INVALID_REQUEST(method+" invalid name", e);
throw ServiceException.INVALID_REQUEST(method+" invalid name: "+e.getMessage(), e); } catch (SchemaViolationException e) { throw ServiceException.INVALID_REQUEST(method+" invalid schema change: "+e.getMessage(), e);
    private void createSubcontext(DirContext ctxt, String dn, Attributes attrs, String method)    throws NameAlreadyBoundException, ServiceException {        Context newCtxt = null;        try {            newCtxt = ctxt.createSubcontext(dn, attrs);        } catch (NameAlreadyBoundException e) {                        throw e;        } catch (InvalidAttributeIdentifierException e) {            throw AccountServiceException.INVALID_ATTR_NAME(method+" invalid attr name", e);        } catch (InvalidAttributeValueException e) {            throw AccountServiceException.INVALID_ATTR_VALUE(method+" invalid attr value", e);                    } catch (InvalidAttributesException e) {            throw ServiceException.INVALID_REQUEST(method+" invalid set of attributes", e);        } catch (InvalidNameException e) {            throw ServiceException.INVALID_REQUEST(method+" invalid name", e);        } catch (NamingException e) {            throw ServiceException.FAILURE(method, e);        } finally {            LdapUtil.closeContext(newCtxt);        }    }