/*
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER.
*
* Copyright (c) 2005 Sun Microsystems Inc. All Rights Reserved
*
* The contents of this file are subject to the terms
* of the Common Development and Distribution License
* (the License). You may not use this file except in
* compliance with the License.
*
* You can obtain a copy of the License at
* See the License for the specific language governing
* permission and limitations under the License.
*
* When distributing Covered Code, include this CDDL
* Header Notice in each file and include the License file
* at opensso/legal/CDDLv1.0.txt.
* If applicable, add the following below the CDDL Header,
* with the fields enclosed by brackets [] replaced by
* your own identifying information:
* "Portions Copyrighted [year] [name of copyright owner]"
*
* $Id: IdRepoException.java,v 1.8 2009/11/19 18:18:47 bhavnab Exp $
*
* Portions Copyrighted 2011-2015 ForgeRock AS.
*/
/**
* The exception class whose instance is thrown if there is any error during the
* operation of objects of the <code>com.sun.identity.sms</code> package. This
* class maps the exception that occurred at a lower level to a high level
* error. Using the exception status code <code>getExceptionCode()</code> the
* errors are categorized as a <code>ABORT</code>, <code>RETRY</code>,
* <code>CONFIG_PROBLEM</code> or <code>LDAP_OP_FAILED</code> (typically a
* bug).
*
* @supported.all.api
*/
// Static variable
.getInstance();
private final static Pattern PATTERN = Pattern.compile("(.*)(?=: (.*?)uid=)|(.*)(?=(.*?)uid=)|(.*)");
// Instance variables
public IdRepoException() {
}
/**
* @param msg
* The message provided by the object which is throwing the
* exception
*/
}
}
/**
* This constructor is used to pass the localized error message At this
* level, the locale of the caller is not known and it is not possible to
* throw localized error message at this level. Instead this constructor
* provides Resource Bundle name ,error code and LDAP error code ( in case
* of LDAP related exception for correctly locating the
* error message. The default <code>getMessage()</code> will always return
* English messages only. This is in consistent with current JRE.
*
* @param rbName
* Resource bundle Name to be used for getting localized error
* message.
* @param errorCode
* Key to resource bundle. You can use <code>ResourceBundle rb =
* ResourceBunde.getBundle(rbName,locale);
* String localizedStr = rb.getString(errorCode)</code>.
* @param ldapErrCode
* ldap error code
* @param args
* arguments to message. If it is not present pass the as null.
* @deprecated
* Passing in an ldapErrorCode as a String is not recommended, use the
* OO ctor instead.
*/
{
this.bundleName = rbName;
this.ldapErrCode = ldapErrCode;
}
/**
* This constructor is used to pass the localized error message At this
* level, the locale of the caller is not known and it is not possible to
* throw localized error message at this level. Instead this constructor
* provides Resource Bundle name ,error code and LDAP Result Code ( in case
* of LDAP related exception for correctly locating the
* error message. The default <code>getMessage()</code> will always return
* English messages only. This is in consistent with current JRE.
*
* @param rbName
* Resource bundle Name to be used for getting localized error
* message.
* @param errorCode
* Key to resource bundle. You can use <code>ResourceBundle rb =
* ResourceBunde.getBundle(rbName,locale);
* String localizedStr = rb.getString(errorCode)</code>.
* @param ldapResultCode
* ldap result code
* @param args
* arguments to message. If it is not present pass the as null.
*/
this.bundleName = rbName;
}
/**
* This constructor is used to pass the localized error message At this
* level, the locale of the caller is not known and it is not possible to
* throw localized error message at this level. Instead this constructor
* provides Resource Bundle name and error code for correctly locating the
* error message. The default <code>getMessage()</code> will always return
* English messages only. This is in consistent with current JRE.
*
* @param rbName
* Resource bundle Name to be used for getting localized error
* message.
* @param errorCode
* Key to resource bundle. You can use <code>ResourceBundle rb =
* ResourceBunde.getBundle(rbName,locale);
* String localizedStr = rb.getString(errorCode)</code>.
* @param args
* arguments to message. If it is not present pass the as null.
*/
this.bundleName = rbName;
}
/**
* Returns a localized error message
*
* @param locale
* Uses the locale object to create the appropriate localized
* error message
* @return localized error message.
* @see #IdRepoException(String, String, Object[])
*/
} else {
}
}
return result;
}
/**
* Returns <code>ResourceBundle</code> Name associated with this error
* message.
*
* @return <code>ResourceBundle</code> name associated with this error
* message.
* @see #IdRepoException(String, String, Object[])
*/
return bundleName;
}
/**
* Returns an int representation of <code>ldapErrCode</code>.
* This is to be used with ResultCode.valueOf() which will return a valid
* ResultCode object regardless of the return of this method.
*
* A null or invalid <code>ldapErrorCode</code> will return <code>-1</code>.
*
* @return an int representation of this exception's LDAP error code.
*/
public int getLdapErrorIntCode() {
try {
} catch (NumberFormatException nfe) {
return -1;
}
}
/**
* Returns error code associated with this error message.
*
* @return Error code associated with this error message.
* @see #IdRepoException(String, String, Object[])
*/
return errorCode;
}
/**
* Returns the LDAP error code associated with this error message.
*
* @return Error code associated with this error message and null if
* not caused by <code>LDAPException</code>.
* @see #IdRepoException(String, String, Object[])
*
* @deprecated
* Use #getLdapErrorIntCode() instead. The ldap error code is always an int
*/
return ldapErrCode;
}
/**
* Replace the LDAP error code associated with this error message.
*
* @see #IdRepoException(String, String, Object[])
*/
}
/**
* Returns arguments for formatting this error message.
*
* @return arguments for formatting this error message. You need to use
* <code>MessageFormat</code> class to format the message It can
* be null.
* @see #IdRepoException(String, String, Object[])
*/
return args;
}
}
}
/**
* Returns the error message of this exception.
*
* @return String representing the error message
*/
return message;
}
/**
* If this error is an instance of a LDAP Constraint Violated Error (LDAP code 313)
* attempts to return useful information about the error that occured without
* leaking additional information about the system to the calling user.
*
* If this error is not an instance of LDAP Constraint Violated Error, the message
* of the error is returned.
*
* @return a user-facing representation of this exception.
*/
return getMessage();
}
}
}
return "Cannot update attributes due to server's attribute constraints being violated.";
}
}