com.sas.edir
Class EnterpriseDirectoryException

java.lang.Object
  |
  +--java.lang.Throwable
        |
        +--java.lang.Exception
              |
              +--java.lang.RuntimeException
                    |
                    +--com.sas.edir.EnterpriseDirectoryException
All Implemented Interfaces:
java.io.Serializable

public class EnterpriseDirectoryException
extends java.lang.RuntimeException

An Exception generated by a failure in the EnterpriseDirectory.

Version:
1.0
Author:
SAS
See Also:
Serialized Form

Field Summary
protected  int _status
           
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 INVALID_FILTER
          (87) A search filter was specified improperly.
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 UNKNOWN_RESULT
          (99) An unknown error number.
static int UNWILLING_TO_PERFORM
          (53) The LDAP server is unable to perform the specified operation.
 
Constructor Summary
EnterpriseDirectoryException()
          Create a new EnterpriseDirectoryException with no message.
EnterpriseDirectoryException(int status)
          Create a new EnterpriseDirectoryException with a message
EnterpriseDirectoryException(java.lang.String message)
          Create a new EnterpriseDirectoryException with a message
EnterpriseDirectoryException(java.lang.Throwable rootException)
          Create a new EnterpriseDirectoryException from another Throwable
 
Method Summary
 java.lang.String getRootMessage()
          Return the string from the root Exception, if any.
 java.lang.String getStatusText()
          Return the message that goes with the status code
 void setRootMessage(java.lang.String rootMessage)
          set the message from the root exception.
 
Methods inherited from class java.lang.Throwable
fillInStackTrace, getLocalizedMessage, getMessage, printStackTrace, printStackTrace, printStackTrace, toString
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

_status

protected int _status

SUCCESS

public static final int SUCCESS
(0) The operation completed successfully.

OPERATION_ERROR

public static final int OPERATION_ERROR
(1) An internal error occurred in the LDAP server.

PROTOCOL_ERROR

public static final 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. (For example, the data was not correctly BER-encoded, or a specified value -- such as the search scope or modification type -- does not comply with the LDAP protocol. If you invent your own search scope, for instance, this result code might be returned.


TIME_LIMIT_EXCEEDED

public static final int TIME_LIMIT_EXCEEDED
(3) The search operation could not be completed within the maximum time limit. You can specify the maximum time limit by calling the LDAPConnection.setOption method or the LDAPSearchConstraints.setServerTimeLimit method.


SIZE_LIMIT_EXCEEDED

public static final int SIZE_LIMIT_EXCEEDED
(4) The search found more than the maximum number of results. You can specify the maximum number of results by calling the LDAPConnection.setOption method or the LDAPSearchConstraints.setSizeLimit method.


COMPARE_FALSE

public static final 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).

COMPARE_TRUE

public static final 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).

AUTH_METHOD_NOT_SUPPORTED

public static final int AUTH_METHOD_NOT_SUPPORTED
(7) The specified authentication method is not supported by the LDAP server that you are connecting to. The 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.)


STRONG_AUTH_REQUIRED

public static final 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. The 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.)


LDAP_PARTIAL_RESULTS

public static final int LDAP_PARTIAL_RESULTS
(9) The LDAP server is referring your client to another LDAP server. If you set up the 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.


REFERRAL

public static final int REFERRAL
(10) [LDAP v3] The server does not hold the requested entry. The referral field of the server's response contains a reference to another server (or set of servers), which your client can access through LDAP or other protocols. Typically, these references are LDAP URLs that identify the server that may contain the requested entry.

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.


ADMIN_LIMIT_EXCEEDED

public static final int ADMIN_LIMIT_EXCEEDED
(11) [LDAP v3] The adminstrative limit on the maximum number of entries to return was exceeded. In the Netscape Directory Server 3.0, this corresponds to the "look through limit" for the server. This is the maximum number of entries that the server will check through when determining which entries match the search filter and scope.


UNAVAILABLE_CRITICAL_EXTENSION

public static final 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. The Netscape Directory Server 3.0 also returns this result code if the client specifies a matching rule that is not supported by the server.


CONFIDENTIALITY_REQUIRED

public static final int CONFIDENTIALITY_REQUIRED
(13) [LDAP v3] A secure connection is required for this operation.

SASL_BIND_IN_PROGRESS

public static final 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.

NO_SUCH_ATTRIBUTE

public static final int NO_SUCH_ATTRIBUTE
(16) The specified attribute could not be found.

UNDEFINED_ATTRIBUTE_TYPE

public static final int UNDEFINED_ATTRIBUTE_TYPE
(17) The specified attribute is not defined.

INAPPROPRIATE_MATCHING

public static final int INAPPROPRIATE_MATCHING
(18) An inappropriate type of matching was used.

CONSTRAINT_VIOLATION

public static final int CONSTRAINT_VIOLATION
(19) An internal error occurred in the LDAP server.

ATTRIBUTE_OR_VALUE_EXISTS

public static final int ATTRIBUTE_OR_VALUE_EXISTS
(20) The value that you are adding to an attribute already exists in the attribute.

INVALID_ATTRIBUTE_SYNTAX

public static final int INVALID_ATTRIBUTE_SYNTAX
(21) The request contains invalid syntax.

NO_SUCH_OBJECT

public static final int NO_SUCH_OBJECT
(32) The entry specified in the request does not exist.

ALIAS_PROBLEM

public static final int ALIAS_PROBLEM
(33) An problem occurred with an alias.

INVALID_DN_SYNTAX

public static final int INVALID_DN_SYNTAX
(34) The specified distinguished name (DN) uses invalid syntax.

IS_LEAF

public static final int IS_LEAF
(35) The specified entry is a "leaf" entry (it has no entries beneath it in the directory tree).

ALIAS_DEREFERENCING_PROBLEM

public static final int ALIAS_DEREFERENCING_PROBLEM
(36) An error occurred when dereferencing an alias.

INAPPROPRIATE_AUTHENTICATION

public static final int INAPPROPRIATE_AUTHENTICATION
(48) The authentication presented to the server is inappropriate. This result code might occur, for example, if your client presents a password and the corresponding entry has no userpassword attribute.

INVALID_CREDENTIALS

public static final int INVALID_CREDENTIALS
(49) The credentials presented to the server for authentication are not valid. (For example, the password sent to the server does not match the user's password in the directory.)

INSUFFICIENT_ACCESS_RIGHTS

public static final int INSUFFICIENT_ACCESS_RIGHTS
(50) The client is authenticated as a user who does not have the access privileges to perform this operation.

BUSY

public static final int BUSY
(51) The LDAP server is busy.

UNAVAILABLE

public static final int UNAVAILABLE
(52) The LDAP server is unavailable.

UNWILLING_TO_PERFORM

public static final int UNWILLING_TO_PERFORM
(53) The LDAP server is unable to perform the specified operation.

LOOP_DETECT

public static final int LOOP_DETECT
(54) A loop has been detected.

SORT_CONTROL_MISSING

public static final int SORT_CONTROL_MISSING
(60) The "server-side sorting" control was not included with the "virtual list view" control in the search request.

INDEX_RANGE_ERROR

public static final int INDEX_RANGE_ERROR
(61) An index range error occurred.

NAMING_VIOLATION

public static final int NAMING_VIOLATION
(64) A naming violation has occurred.

OBJECT_CLASS_VIOLATION

public static final int OBJECT_CLASS_VIOLATION
(65) The requested operation will add or change data so that the data no longer complies with the schema.

NOT_ALLOWED_ON_NONLEAF

public static final 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).

For example, you cannot delete or rename an entry if the entry has subentries beneath it.


NOT_ALLOWED_ON_RDN

public static final int NOT_ALLOWED_ON_RDN
(67) The specified operation cannot be performed on a relative distinguished name (RDN).

ENTRY_ALREADY_EXISTS

public static final int ENTRY_ALREADY_EXISTS
(68) The specified entry already exists. You might receive this error if, for example, you attempt to add an entry that already exists or if you attempt to change the name of an entry to the name of an entry that already exists.

OBJECT_CLASS_MODS_PROHIBITED

public static final int OBJECT_CLASS_MODS_PROHIBITED
(69) You cannot modify the specified object class.

AFFECTS_MULTIPLE_DSAS

public static final 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. In general, clients should not be able to arbitrarily move entries and subtrees between servers.


OTHER

public static final int OTHER
(80) General result code for other types of errors that may occur.

SERVER_DOWN

public static final int SERVER_DOWN
(81) The LDAP server cannot be contacted.

LDAP_TIMEOUT

public static final int LDAP_TIMEOUT
(85) The operation could not be completed within the maximum time limit. You can specify the maximum time limit by calling the LDAPConstraints.setTimeLimit method.


INVALID_FILTER

public static final int INVALID_FILTER
(87) A search filter was specified improperly.

PARAM_ERROR

public static final int PARAM_ERROR
(89) When calling a constructor or method from your client, one or more parameters were incorrectly specified.

CONNECT_ERROR

public static final int CONNECT_ERROR
(91) Your LDAP client failed to connect to the LDAP server.

LDAP_NOT_SUPPORTED

public static final int LDAP_NOT_SUPPORTED
(92) The request is not supported by this version of the LDAP protocol.

CONTROL_NOT_FOUND

public static final int CONTROL_NOT_FOUND
(93) The requested control is not found.


NO_RESULTS_RETURNED

public static final int NO_RESULTS_RETURNED
(94) No results have been returned from the server.

MORE_RESULTS_TO_RETURN

public static final int MORE_RESULTS_TO_RETURN
(95) More results are being returned from the server.

CLIENT_LOOP

public static final int CLIENT_LOOP
(96) Your LDAP client detected a loop in the referral.

REFERRAL_LIMIT_EXCEEDED

public static final 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).


UNKNOWN_RESULT

public static final int UNKNOWN_RESULT
(99) An unknown error number. The exception was initialized using a root exception which did not have a valid LDAP result code.
Constructor Detail

EnterpriseDirectoryException

public EnterpriseDirectoryException()
Create a new EnterpriseDirectoryException with no message.

EnterpriseDirectoryException

public EnterpriseDirectoryException(java.lang.String message)
Create a new EnterpriseDirectoryException with a message

Parameters:
message - The message to add to the exception.

EnterpriseDirectoryException

public EnterpriseDirectoryException(int status)
Create a new EnterpriseDirectoryException with a message

Parameters:
message - The message to add to the exception.

EnterpriseDirectoryException

public EnterpriseDirectoryException(java.lang.Throwable rootException)
Create a new EnterpriseDirectoryException from another Throwable

Parameters:
rootException - The exception this one is derived from
Method Detail

getStatusText

public java.lang.String getStatusText()
Return the message that goes with the status code

Returns:
The status message.

setRootMessage

public final void setRootMessage(java.lang.String rootMessage)
set the message from the root exception.

Parameters:
rootMessage - Any message from the root Exception

getRootMessage

public final java.lang.String getRootMessage()
Return the string from the root Exception, if any.