|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Object | +--java.lang.Throwable | +--java.lang.Exception | +--netscape.ldap.LDAPException
Indicates that an error has occurred. An LDAPException
can result from physical problems (such as network errors) as well as
problems with LDAP operations (for example, if the LDAP add operation
fails because of duplicate entry).
Most errors that occur throw this type of exception. In order to determine
the cause of the error, you can call the getLDAPResultCode()
method to get the specific result code and compare this code against
the result codes defined as fields in this class. (For example, if
the result code matches the value of the field
LDAPException.TIME_LIMIT_EXCEEDED
, the time limit passed
before the search operation could be completed.)
This exception includes methods for getting an error message that
corresponds to the LDAP result code (for example, "Timelimit exceeded"
for LDAPException.TIME_LIMIT_EXCEEDED
). These error
messages are specified in the following files:
netscape/ldap/errors/ErrorCodes_locale_string.propswhere locale_string is the name of the locale that includes the language and country, but not the variant.
For example:
netscape/ldap/errors/ErrorCodes_en_US.propsThe LDAP Java classes get this locale name by calling the
java.util.Locale.toString
method for the specified
locale and ignoring the variant. If no locale is specified, the
LDAP Java classes use the java.util.Locale.getDefault
method to get the locale of the local host system.
In order to get error messages for different locales, you need to
provide files containing the error messages for those locales.
The files should be located in the netscape/ldap/errors
directory and should use the naming convention specified above.
The following is a list of LDAP result codes:
Result Code Defined Value ====== ============= 0 SUCCESS 1 OPERATION_ERROR 2 PROTOCOL_ERROR 3 TIME_LIMIT_EXCEEDED 4 SIZE_LIMIT_EXCEEDED 5 COMPARE_FALSE 6 COMPARE_TRUE 7 AUTH_METHOD_NOT_SUPPORTED 8 STRONG_AUTH_REQUIRED 9 LDAP_PARTIAL_RESULTS 10 REFERRAL (LDAP v3) 11 ADMIN_LIMIT_EXCEEDED (LDAP v3) 12 UNAVAILABLE_CRITICAL_EXTENSION (LDAP v3) 13 CONFIDENTIALITY_REQUIRED (LDAP v3) 14 SASL_BIND_IN_PROGRESS (LDAP v3) 16 NO_SUCH_ATTRIBUTE 17 UNDEFINED_ATTRIBUTE_TYPE 18 INAPPROPRIATE_MATCHING 19 CONSTRAINT_VIOLATION 20 ATTRIBUTE_OR_VALUE_EXISTS 21 INVALID_ATTRIBUTE_SYNTAX 32 NO_SUCH_OBJECT 33 ALIAS_PROBLEM 34 INVALID_DN_SYNTAX 35 IS_LEAF 36 ALIAS_DEREFERENCING_PROBLEM 48 INAPPROPRIATE_AUTHENTICATION 49 INVALID_CREDENTIALS 50 INSUFFICIENT_ACCESS_RIGHTS 51 BUSY 52 UNAVAILABLE 53 UNWILLING_TO_PERFORM 54 LOOP_DETECT 64 NAMING_VIOLATION 65 OBJECT_CLASS_VIOLATION 66 NOT_ALLOWED_ON_NONLEAF 67 NOT_ALLOWED_ON_RDN 68 ENTRY_ALREADY_EXISTS 69 OBJECT_CLASS_MODS_PROHIBITED 71 AFFECTS_MULTIPLE_DSAS (LDAP v3) 80 OTHER 81 SERVER_DOWN 85 LDAP_TIMEOUT 89 PARAM_ERROR 91 CONNECT_ERROR 92 LDAP_NOT_SUPPORTED 93 CONTROL_NOT_FOUND 94 NO_RESULTS_RETURNED 95 MORE_RESULTS_TO_RETURN 96 CLIENT_LOOP 97 REFERRAL_LIMIT_EXCEEDED
LDAPReferralException
, Serialized FormField Summary | |
static int |
ADMIN_LIMIT_EXCEEDED
(11) [LDAP v3] The adminstrative limit on the maximum number of entries to return was exceeded. |
static int |
AFFECTS_MULTIPLE_DSAS
(71) [LDAP v3] The client attempted to move an entry from one LDAP server to another by requesting a "modify DN" operation. |
static int |
ALIAS_DEREFERENCING_PROBLEM
(36) An error occurred when dereferencing an alias. |
static int |
ALIAS_PROBLEM
(33) An problem occurred with an alias. |
static int |
ATTRIBUTE_OR_VALUE_EXISTS
(20) The value that you are adding to an attribute already exists in the attribute. |
static int |
AUTH_METHOD_NOT_SUPPORTED
(7) The specified authentication method is not supported by the LDAP server that you are connecting to. |
static int |
BUSY
(51) The LDAP server is busy. |
static int |
CLIENT_LOOP
(96) Your LDAP client detected a loop in the referral. |
static int |
COMPARE_FALSE
(5) Value returned by an LDAP compare operation if the specified attribute and value is not found in the entry (no matching value found). |
static int |
COMPARE_TRUE
(6) Value returned by an LDAP compare operation if the specified attribute and value is found in the entry (matching value found). |
static int |
CONFIDENTIALITY_REQUIRED
(13) [LDAP v3] A secure connection is required for this operation. |
static int |
CONNECT_ERROR
(91) Your LDAP client failed to connect to the LDAP server. |
static int |
CONSTRAINT_VIOLATION
(19) An internal error occurred in the LDAP server. |
static int |
CONTROL_NOT_FOUND
(93) The requested control is not found. |
static int |
ENTRY_ALREADY_EXISTS
(68) The specified entry already exists. |
static int |
INAPPROPRIATE_AUTHENTICATION
(48) The authentication presented to the server is inappropriate. |
static int |
INAPPROPRIATE_MATCHING
(18) An inappropriate type of matching was used. |
static int |
INDEX_RANGE_ERROR
(61) An index range error occurred. |
static int |
INSUFFICIENT_ACCESS_RIGHTS
(50) The client is authenticated as a user who does not have the access privileges to perform this operation. |
static int |
INVALID_ATTRIBUTE_SYNTAX
(21) The request contains invalid syntax. |
static int |
INVALID_CREDENTIALS
(49) The credentials presented to the server for authentication are not valid. |
static int |
INVALID_DN_SYNTAX
(34) The specified distinguished name (DN) uses invalid syntax. |
static int |
IS_LEAF
(35) The specified entry is a "leaf" entry (it has no entries beneath it in the directory tree). |
static int |
LDAP_NOT_SUPPORTED
(92) The request is not supported by this version of the LDAP protocol. |
static int |
LDAP_PARTIAL_RESULTS
(9) The LDAP server is referring your client to another LDAP server. |
static int |
LDAP_TIMEOUT
(85) The operation could not be completed within the maximum time limit. |
static int |
LOOP_DETECT
(54) A loop has been detected. |
static int |
MORE_RESULTS_TO_RETURN
(95) More results are being returned from the server. |
static int |
NAMING_VIOLATION
(64) A naming violation has occurred. |
static int |
NO_RESULTS_RETURNED
(94) No results have been returned from the server. |
static int |
NO_SUCH_ATTRIBUTE
(16) The specified attribute could not be found. |
static int |
NO_SUCH_OBJECT
(32) The entry specified in the request does not exist. |
static int |
NOT_ALLOWED_ON_NONLEAF
(66) The requested operation can only be performed on an entry that has no entries beneath it in the directory tree (in other words, a "leaf" entry). |
static int |
NOT_ALLOWED_ON_RDN
(67) The specified operation cannot be performed on a relative distinguished name (RDN). |
static int |
OBJECT_CLASS_MODS_PROHIBITED
(69) You cannot modify the specified object class. |
static int |
OBJECT_CLASS_VIOLATION
(65) The requested operation will add or change data so that the data no longer complies with the schema. |
static int |
OPERATION_ERROR
(1) An internal error occurred in the LDAP server. |
static int |
OTHER
(80) General result code for other types of errors that may occur. |
static int |
PARAM_ERROR
(89) When calling a constructor or method from your client, one or more parameters were incorrectly specified. |
static int |
PROTOCOL_ERROR
(2) A LDAP server could not correctly interpret the request sent by your client because the request does not strictly comply with the LDAP protocol. |
static int |
REFERRAL
(10) [LDAP v3] The server does not hold the requested entry. |
static int |
REFERRAL_LIMIT_EXCEEDED
(97) The number of sequential referrals (for example, the client may be referred first from LDAP server A to LDAP server B, then from LDAP server B to LDAP server C, and so on) has exceeded the maximum number of referrals (the LDAPv2.REFERRALS_HOP_LIMIT option). |
static int |
SASL_BIND_IN_PROGRESS
(14) [LDAP v3] While authenticating your client by using a SASL (Simple Authentication Security Layer) mechanism, the server requires the client to send a new SASL bind request (specifying the same SASL mechanism) to continue the authentication process. |
static int |
SERVER_DOWN
(81) The LDAP server cannot be contacted. |
static int |
SIZE_LIMIT_EXCEEDED
(4) The search found more than the maximum number of results. |
static int |
SORT_CONTROL_MISSING
(60) The "server-side sorting" control was not included with the "virtual list view" control in the search request. |
static int |
STRONG_AUTH_REQUIRED
(8) A stronger authentication method (more than LDAP_AUTH_SIMPLE) is required by the LDAP server that you are connecting to. |
static int |
SUCCESS
(0) The operation completed successfully. |
static int |
TIME_LIMIT_EXCEEDED
(3) The search operation could not be completed within the maximum time limit. |
static int |
UNAVAILABLE
(52) The LDAP server is unavailable. |
static int |
UNAVAILABLE_CRITICAL_EXTENSION
(12) [LDAP v3] The server received an LDAP v3 control that is marked critical and either (1) is not recognized or supported by the server, or (2) is inappropriate for the operation requested. |
static int |
UNDEFINED_ATTRIBUTE_TYPE
(17) The specified attribute is not defined. |
static int |
UNWILLING_TO_PERFORM
(53) The LDAP server is unable to perform the specified operation. |
Constructor Summary | |
LDAPException()
Constructs a default exception with no specific error information. |
|
LDAPException(java.lang.String message)
Constructs a default exception with a specified string of additional information. |
|
LDAPException(java.lang.String message,
int resultCode)
Constructs a default exception with a result code and a specified string of additional information. |
|
LDAPException(java.lang.String message,
int resultCode,
java.lang.String serverErrorMessage)
Constructs a default exception with a result code, a specified string of additional information, and a string containing information passed back from the server. |
|
LDAPException(java.lang.String message,
int resultCode,
java.lang.String serverErrorMessage,
java.lang.String matchedDN)
Constructs a default exception with a result code, a specified string of additional information, a string containing information passed back from the server, and the DN of the closest matching entry, if the exception was thrown because an entry could not be found (for example, if cn=Babs Jensen,
ou=People, c=Airius.com could not be found but
ou=People, c=Airius.com is a valid directory entry,
the "matched DN" is ou=People, c=Airius.com . |
Method Summary | |
java.lang.String |
errorCodeToString()
Returns the error message describing the error code (for this exception). |
static java.lang.String |
errorCodeToString(int code)
Returns the error message describing the specified error code. |
static java.lang.String |
errorCodeToString(int code,
java.util.Locale locale)
Returns the error message describing the specified error code. |
java.lang.String |
errorCodeToString(java.util.Locale l)
Returns the error message describing the error code for this exception. |
java.lang.String |
getLDAPErrorMessage()
Returns the error message from the last error, if this message is available (that is, if this message was set). |
int |
getLDAPResultCode()
Returns the result code from the last error that occurred. |
java.lang.String |
getMatchedDN()
Returns the maximal subset of a DN which could be matched by the server, if the server returned one of the following errors: NO_SUCH_OBJECT
ALIAS_PROBLEM
INVALID_DN_SYNTAX
ALIAS_DEREFERENCING_PROBLEM
|
java.lang.String |
toString()
Gets the string representation of the exception, which includes the result code, the message sent back from the LDAP server, the portion of the DN that the server could find in the directory (if applicable), and the error message corresponding to this result code. |
Methods inherited from class java.lang.Throwable |
fillInStackTrace,
getLocalizedMessage,
getMessage,
printStackTrace,
printStackTrace,
printStackTrace |
Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
wait,
wait,
wait |
Field Detail |
public static final int SUCCESS
public static final int OPERATION_ERROR
public static final int PROTOCOL_ERROR
public static final int TIME_LIMIT_EXCEEDED
LDAPConnection.setOption
method or the LDAPSearchConstraints.setServerTimeLimit
method.LDAPConnection.setOption(int, java.lang.Object)
,
LDAPSearchConstraints.setServerTimeLimit(int)
public static final int SIZE_LIMIT_EXCEEDED
LDAPConnection.setOption
method or the
LDAPSearchConstraints.setSizeLimit
method.LDAPConnection.setOption(int, java.lang.Object)
,
LDAPSearchConstraints.setMaxResults(int)
public static final int COMPARE_FALSE
LDAPConnection.compare(java.lang.String, netscape.ldap.LDAPAttribute)
public static final int COMPARE_TRUE
LDAPConnection.compare(java.lang.String, netscape.ldap.LDAPAttribute)
public static final int AUTH_METHOD_NOT_SUPPORTED
LDAPConnection
class is implemented so that
LDAPConnection.authenticate
always
uses the LDAP_AUTH_SIMPLE method of authentication.
(LDAPConnection.authenticate
does not
allow you to select the method of authentication.)public static final int STRONG_AUTH_REQUIRED
LDAPConnection
class is implemented so that
LDAPConnection.authenticate
always
uses the LDAP_AUTH_SIMPLE method of authentication.
(LDAPConnection.authenticate
does not
allow you to select the method of authentication.)public static final int LDAP_PARTIAL_RESULTS
LDAPConnection
options or the LDAPConstraints
options
for automatic referral, your client will automatically
connect and authenticate to the other LDAP server.
(This LDAPException
will not be raised.)
(To set up automatic referrals in an LDAPConnection
object, set the LDAPConnection.REFERRALS
option
to true
and the LDAPConnection.REFERRALS_REBIND_PROC
option to the object containing the method for retrieving
authentication information (in other words, the distinguished
name and password to use when authenticating to other LDAP servers).
If instead you set LDAPConnection.REFERRALS
to false
(or if you set
LDAPConstraints.setReferrals
to false
,
an LDAPReferralException
is raised.
If an error occurs during the referral process, an
LDAPException
with this result code
(LDAP_PARTIAL_RESULTS
) is raised.
LDAPConnection.setOption(int, java.lang.Object)
,
LDAPConstraints.setReferrals(boolean)
,
LDAPConstraints.setRebindProc(netscape.ldap.LDAPRebind)
,
LDAPRebind
,
LDAPRebindAuth
,
LDAPReferralException
public static final int REFERRAL
When this occurs, a LDAPReferralException
is thrown. You can catch this exception and call the
getURLs
method to get the list of LDAP
URLs from the exception.
LDAPReferralException
public static final int ADMIN_LIMIT_EXCEEDED
public static final int UNAVAILABLE_CRITICAL_EXTENSION
LDAPControl
public static final int CONFIDENTIALITY_REQUIRED
public static final int SASL_BIND_IN_PROGRESS
public static final int NO_SUCH_ATTRIBUTE
public static final int UNDEFINED_ATTRIBUTE_TYPE
public static final int INAPPROPRIATE_MATCHING
public static final int CONSTRAINT_VIOLATION
public static final int ATTRIBUTE_OR_VALUE_EXISTS
public static final int INVALID_ATTRIBUTE_SYNTAX
public static final int NO_SUCH_OBJECT
public static final int ALIAS_PROBLEM
public static final int INVALID_DN_SYNTAX
public static final int IS_LEAF
public static final int ALIAS_DEREFERENCING_PROBLEM
public static final int INAPPROPRIATE_AUTHENTICATION
public static final int INVALID_CREDENTIALS
public static final int INSUFFICIENT_ACCESS_RIGHTS
public static final int BUSY
public static final int UNAVAILABLE
public static final int UNWILLING_TO_PERFORM
public static final int LOOP_DETECT
public static final int SORT_CONTROL_MISSING
public static final int INDEX_RANGE_ERROR
public static final int NAMING_VIOLATION
public static final int OBJECT_CLASS_VIOLATION
public static final int NOT_ALLOWED_ON_NONLEAF
For example, you cannot delete or rename an entry if the entry has subentries beneath it.
public static final int NOT_ALLOWED_ON_RDN
public static final int ENTRY_ALREADY_EXISTS
public static final int OBJECT_CLASS_MODS_PROHIBITED
public static final int AFFECTS_MULTIPLE_DSAS
LDAPConnection.rename(java.lang.String, java.lang.String, java.lang.String, boolean)
,
LDAPConnection.rename(java.lang.String, java.lang.String, java.lang.String, boolean, LDAPConstraints)
public static final int OTHER
public static final int SERVER_DOWN
public static final int LDAP_TIMEOUT
LDAPConstraints.setTimeLimit
method.LDAPConstraints.setTimeLimit(int)
public static final int PARAM_ERROR
public static final int CONNECT_ERROR
public static final int LDAP_NOT_SUPPORTED
public static final int CONTROL_NOT_FOUND
LDAPControl
public static final int NO_RESULTS_RETURNED
public static final int MORE_RESULTS_TO_RETURN
public static final int CLIENT_LOOP
public static final int REFERRAL_LIMIT_EXCEEDED
LDAPv2.REFERRALS_HOP_LIMIT
option).
LDAPv2.REFERRALS_HOP_LIMIT
,
LDAPConnection.getOption(int)
,
LDAPConnection.setOption(int, java.lang.Object)
Constructor Detail |
public LDAPException()
public LDAPException(java.lang.String message)
toString()
method.
This form is used for lower-level errors. It is recommended that you always use one of the constructors that takes a result code as a parameter. (If your exception is thrown, any code that catches the exception may need to extract the result code from the exception.)
message
- the additional error informationtoString()
public LDAPException(java.lang.String message, int resultCode)
toString()
method.
The result code that you set is accessible through the
getLDAPResultCode()
method.
message
- the additional error information to specifyresultCode
- the result code returned from the
operation that caused this exceptiontoString()
,
getLDAPResultCode()
public LDAPException(java.lang.String message, int resultCode, java.lang.String serverErrorMessage)
After you construct the LDAPException
object,
the result code and messages will be accessible through the
following ways:
toString()
method.
getLDAPResultCode()
method.
getLDAPErrorMessage
method.
Use this form of the constructor for higher-level LDAP operational errors.
message
- the additional error information to specifyresultCode
- the result code returned from the
operation that caused this exceptionserverErrorMessage
- error message specifying additional
information returned from the servertoString()
,
getLDAPResultCode()
,
getLDAPErrorMessage()
public LDAPException(java.lang.String message, int resultCode, java.lang.String serverErrorMessage, java.lang.String matchedDN)
cn=Babs Jensen,
ou=People, c=Airius.com
could not be found but
ou=People, c=Airius.com
is a valid directory entry,
the "matched DN" is ou=People, c=Airius.com
.
After you construct the LDAPException
object,
the result code and messages will be accessible through the
following ways:
toString()
method.
getLDAPResultCode()
method.
getLDAPErrorMessage
method.
getMatchedDN
method.
This form is used for higher-level LDAP operational errors.
message
- the additional error informationresultCode
- the result code returnedserverErrorMessage
- error message specifying additional information
returned from the servermatchedDN
- maximal subset of a specified DN which could be
matched by the servertoString()
,
getLDAPResultCode()
,
getLDAPErrorMessage()
,
getMatchedDN()
Method Detail |
public int getLDAPResultCode()
public java.lang.String getLDAPErrorMessage()
null
.
Note that this message is rarely set. (In order to set this message,
the code constructing this exception must have called the constructor
LDAPException(String, int, String)
. The last argument,
which is additional error information returned from the server,
is the string returned by getLDAPErrorMessage
.
In most cases, if you want information about
the error generated, you should call the toString()
method instead.
null
if no message was set).toString()
public java.lang.String getMatchedDN()
NO_SUCH_OBJECT
ALIAS_PROBLEM
INVALID_DN_SYNTAX
ALIAS_DEREFERENCING_PROBLEM
cn=Babs Jensen, o=People, c=Airius.com
could not be found by the DN o=People, c=Airius.com
could be found, the matched DN is
o=People, c=Airius.com
.
If the exception does not specify a matching DN,
this method returns null
.
null
if the error is not one of the above.public java.lang.String toString()
For example:
netscape.ldap.LDAPException: error result (32); server error message; matchedDN = ou=people,o=airius.com; No such objectIn this example,
error result
is the string of
additional information specified in the exception, 32
is
the result code, server error message
is the additional
information from the server specified in the exception, the
matched DN is ou=people,o=airius.com
, and the error message
corresponding to the result code 32
is No such
object
.
The error message corresponding to the error code can also be
retrieved by using the errorCodeToString
method.
Note that this method can generate error messages specific to
a current locale.
errorCodeToString(int)
public java.lang.String errorCodeToString()
java.util.Locale.getDefault
method and retrieve the error messages from the following file:
netscape/ldap/error/ErrorCodes_locale_name.propswhere locale_name is the language and country (concatenated and delimited by an underscore) of the default locale. For example:
netscape/ldap/error/ErrorCodes_en_US.props
public java.lang.String errorCodeToString(java.util.Locale l)
netscape/ldap/error/ErrorCodes_locale_name.propswhere locale_name is the language and country (concatenated and delimited by an underscore) of the default locale. For example:
netscape/ldap/error/ErrorCodes_en_US.props
l
- the java.util.Locale
object representing the
locale of the error message to retrievepublic static java.lang.String errorCodeToString(int code)
java.util.Locale.getDefault
method and retrieve the error messages from the following file:
netscape/ldap/error/ErrorCodes_locale_name.propswhere locale_name is the language and country (concatenated and delimited by an underscore) of the default locale. For example:
netscape/ldap/error/ErrorCodes_en_US.props
code
- the error code for which to get the
corresponding error messagepublic static java.lang.String errorCodeToString(int code, java.util.Locale locale)
netscape/ldap/error/ErrorCodes_locale_name.propswhere locale_name is the language and country (concatenated and delimited by an underscore) of the default locale. For example:
netscape/ldap/error/ErrorCodes_en_US.props
code
- the error code for which to get the
corresponding errorlocale
- the java.util.Locale
object representing the
locale of the error message that you want to retrieve
|
|||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |