From f2160f4bd1c8ac67e5a86a6710d431e8932877f9 Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Fri, 28 May 2010 11:47:51 +0000
Subject: [PATCH] Synchronize SDK on java.net with internal repository.
---
sdk/src/org/opends/sdk/ErrorResultException.java | 111 +++++++++++++++++++++++++++++++++++--------------------
1 files changed, 71 insertions(+), 40 deletions(-)
diff --git a/sdk/src/org/opends/sdk/ErrorResultException.java b/sdk/src/org/opends/sdk/ErrorResultException.java
index 89af186..f64756f 100644
--- a/sdk/src/org/opends/sdk/ErrorResultException.java
+++ b/sdk/src/org/opends/sdk/ErrorResultException.java
@@ -22,7 +22,7 @@
* CDDL HEADER END
*
*
- * Copyright 2009 Sun Microsystems, Inc.
+ * Copyright 2009-2010 Sun Microsystems, Inc.
*/
package org.opends.sdk;
@@ -36,20 +36,15 @@
/**
- * Thrown when the result code returned in a Result indicates that the
- * Request was unsuccessful.
+ * Thrown when the result code returned in a Result indicates that the Request
+ * was unsuccessful.
*/
@SuppressWarnings("serial")
public class ErrorResultException extends ExecutionException
{
- private final Result result;
-
-
-
/**
- * Wraps the provided result in an appropriate error result exception.
- * The type of error result exception used depends on the underlying
- * result code.
+ * Wraps the provided result in an appropriate error result exception. The
+ * type of error result exception used depends on the underlying result code.
*
* @param result
* The result whose result code indicates a failure.
@@ -59,7 +54,7 @@
* @throws NullPointerException
* If {@code result} was {@code null}.
*/
- public static ErrorResultException wrap(Result result)
+ public static ErrorResultException wrap(final Result result)
throws IllegalArgumentException, NullPointerException
{
if (!result.getResultCode().isExceptional())
@@ -68,50 +63,86 @@
"Attempted to wrap a successful result: " + result);
}
- // TODO: choose type of exception based on result code (e.g.
- // referral).
- if (result.getResultCode() == ResultCode.CLIENT_SIDE_SERVER_DOWN
- || result.getResultCode() == ResultCode.CLIENT_SIDE_CONNECT_ERROR
- || result.getResultCode() == ResultCode.CLIENT_SIDE_DECODING_ERROR
- || result.getResultCode() == ResultCode.CLIENT_SIDE_ENCODING_ERROR)
+ ResultCode rc = result.getResultCode();
+ if (rc == ResultCode.ASSERTION_FAILED)
+ {
+ return new AssertionFailureException(result);
+ }
+ else if (rc == ResultCode.AUTH_METHOD_NOT_SUPPORTED
+ || rc == ResultCode.CLIENT_SIDE_AUTH_UNKNOWN
+ || rc == ResultCode.INAPPROPRIATE_AUTHENTICATION
+ || rc == ResultCode.INVALID_CREDENTIALS)
+ {
+ return new AuthenticationException(result);
+ }
+ else if (rc == ResultCode.AUTHORIZATION_DENIED
+ || rc == ResultCode.CONFIDENTIALITY_REQUIRED
+ || rc == ResultCode.INSUFFICIENT_ACCESS_RIGHTS
+ || rc == ResultCode.STRONG_AUTH_REQUIRED)
+ {
+ return new AuthorizationException(result);
+ }
+ else if (rc == ResultCode.CLIENT_SIDE_USER_CANCELLED
+ || rc == ResultCode.CANCELLED)
+ {
+ return new CancelledResultException(result);
+ }
+ else if (rc == ResultCode.CLIENT_SIDE_SERVER_DOWN
+ || rc == ResultCode.CLIENT_SIDE_CONNECT_ERROR
+ || rc == ResultCode.CLIENT_SIDE_DECODING_ERROR
+ || rc == ResultCode.CLIENT_SIDE_ENCODING_ERROR)
{
return new ConnectionException(result);
}
-
- if (result.getResultCode() == ResultCode.CLIENT_SIDE_TIMEOUT)
+ else if (rc == ResultCode.ATTRIBUTE_OR_VALUE_EXISTS
+ || rc == ResultCode.CONSTRAINT_VIOLATION
+ || rc == ResultCode.ENTRY_ALREADY_EXISTS
+ || rc == ResultCode.INVALID_ATTRIBUTE_SYNTAX
+ || rc == ResultCode.INVALID_DN_SYNTAX
+ || rc == ResultCode.NAMING_VIOLATION
+ || rc == ResultCode.NOT_ALLOWED_ON_NONLEAF
+ || rc == ResultCode.NOT_ALLOWED_ON_RDN
+ || rc == ResultCode.OBJECTCLASS_MODS_PROHIBITED
+ || rc == ResultCode.OBJECTCLASS_VIOLATION
+ || rc == ResultCode.UNDEFINED_ATTRIBUTE_TYPE)
+ {
+ return new ConstraintViolationException(result);
+ }
+ else if (rc == ResultCode.REFERRAL)
+ {
+ return new ReferralException(result);
+ }
+ else if (rc == ResultCode.NO_SUCH_OBJECT
+ || rc == ResultCode.CLIENT_SIDE_NO_RESULTS_RETURNED)
+ {
+ return new EntryNotFoundException(result);
+ }
+ else if (rc == ResultCode.CLIENT_SIDE_UNEXPECTED_RESULTS_RETURNED)
+ {
+ return new MultipleEntriesFoundException(result);
+ }
+ else if (rc == ResultCode.CLIENT_SIDE_TIMEOUT
+ || rc == ResultCode.TIME_LIMIT_EXCEEDED)
{
return new TimeoutResultException(result);
}
- if (result.getResultCode() == ResultCode.CLIENT_SIDE_USER_CANCELLED
- || result.getResultCode() == ResultCode.CANCELLED)
- {
- return new CancelledResultException(result);
- }
-
- if (result.getResultCode() == ResultCode.NO_SUCH_OBJECT
- || result.getResultCode() == ResultCode.CLIENT_SIDE_NO_RESULTS_RETURNED)
- {
- return new EntryNotFoundException(result);
- }
-
- if (result.getResultCode() == ResultCode.CLIENT_SIDE_UNEXPECTED_RESULTS_RETURNED)
- {
- return new MultipleEntriesFoundException(result);
- }
-
return new ErrorResultException(result);
}
+ private final Result result;
+
+
+
/**
* Creates a new error result exception using the provided result.
*
* @param result
* The error result.
*/
- ErrorResultException(Result result)
+ ErrorResultException(final Result result)
{
super(result.getResultCode() + ": " + result.getDiagnosticMessage());
this.result = result;
@@ -120,9 +151,9 @@
/**
- * Returns the error result which caused this exception to be thrown.
- * The type of result returned corresponds to the expected result type
- * of the original request.
+ * Returns the error result which caused this exception to be thrown. The type
+ * of result returned corresponds to the expected result type of the original
+ * request.
*
* @return The error result which caused this exception to be thrown.
*/
--
Gitblit v1.10.0