From 9f0eb1a26745e51dc39184882d542583ba4ab7e5 Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Wed, 14 Mar 2007 20:32:37 +0000
Subject: [PATCH] Update the LDAP client tools so that they provide error messages in a more readable format.  They can now generate up to four lines of output in the following order:

---
 opends/src/server/org/opends/server/protocols/ldap/LDAPException.java |  121 +++++++++++++++++++++++++++++++++++++---
 1 files changed, 112 insertions(+), 9 deletions(-)

diff --git a/opends/src/server/org/opends/server/protocols/ldap/LDAPException.java b/opends/src/server/org/opends/server/protocols/ldap/LDAPException.java
index 83fef46..2adf8a2 100644
--- a/opends/src/server/org/opends/server/protocols/ldap/LDAPException.java
+++ b/opends/src/server/org/opends/server/protocols/ldap/LDAPException.java
@@ -28,6 +28,7 @@
 
 
 
+import org.opends.server.types.DN;
 
 
 
@@ -38,9 +39,6 @@
 public class LDAPException
        extends Exception
 {
-
-
-
   /**
    * The serial version identifier required to satisfy the compiler because this
    * class extends <CODE>java.lang.Exception</CODE>, which implements the
@@ -52,12 +50,17 @@
 
 
 
-  // The message ID for the message associated with this initialization
-  // exception.
-  private int messageID;
+  // The matched DN associated with this LDAP exception.
+  private final DN matchedDN;
+
+  // The message ID for the message associated with this LDAP exception.
+  private final int messageID;
 
   // The LDAP result code associated with this exception.
-  private int resultCode;
+  private final int resultCode;
+
+  // The server-provided error message for this LDAP exception.
+  private final String errorMessage;
 
 
 
@@ -72,9 +75,33 @@
   {
     super(message);
 
-
     this.resultCode = resultCode;
     this.messageID  = messageID;
+
+    errorMessage = null;
+    matchedDN    = null;
+  }
+
+
+
+  /**
+   * Creates a new LDAP exception with the provided message.
+   *
+   * @param  resultCode    The LDAP result code associated with this exception.
+   * @param  errorMessage  The server-provided error message.
+   * @param  messageID     The unique identifier for the associated message.
+   * @param  message       The message that explains the problem that occurred.
+   */
+  public LDAPException(int resultCode, String errorMessage, int messageID,
+                       String message)
+  {
+    super(message);
+
+    this.resultCode   = resultCode;
+    this.errorMessage = errorMessage;
+    this.messageID    = messageID;
+
+    matchedDN    = null;
   }
 
 
@@ -93,9 +120,59 @@
   {
     super(message, cause);
 
-
     this.resultCode = resultCode;
     this.messageID  = messageID;
+
+    errorMessage = null;
+    matchedDN    = null;
+  }
+
+
+
+  /**
+   * Creates a new LDAP exception with the provided message and root cause.
+   *
+   * @param  resultCode    The LDAP result code associated with this exception.
+   * @param  errorMessage  The server-provided error message.
+   * @param  messageID     The unique identifier for the associated message.
+   * @param  message       The message that explains the problem that occurred.
+   * @param  cause         The exception that was caught to trigger this
+   *                       exception.
+   */
+  public LDAPException(int resultCode, String errorMessage, int messageID,
+                       String message, Throwable cause)
+  {
+    super(message, cause);
+
+    this.resultCode   = resultCode;
+    this.errorMessage = errorMessage;
+    this.messageID    = messageID;
+
+    matchedDN    = null;
+  }
+
+
+
+  /**
+   * Creates a new LDAP exception with the provided message and root cause.
+   *
+   * @param  resultCode    The LDAP result code associated with this exception.
+   * @param  errorMessage  The server-provided error message.
+   * @param  messageID     The unique identifier for the associated message.
+   * @param  message       The message that explains the problem that occurred.
+   * @param  matchedDN     The matched DN returned by the server.
+   * @param  cause         The exception that was caught to trigger this
+   *                       exception.
+   */
+  public LDAPException(int resultCode, String errorMessage, int messageID,
+                       String message, DN matchedDN, Throwable cause)
+  {
+    super(message, cause);
+
+    this.resultCode   = resultCode;
+    this.errorMessage = errorMessage;
+    this.messageID    = messageID;
+    this.matchedDN    = matchedDN;
   }
 
 
@@ -113,6 +190,19 @@
 
 
   /**
+   * Retrieves the server-provided error message for this exception.
+   *
+   * @return  The server-provided error message for this exception, or
+   *          {@code null} if none was given.
+   */
+  public String getErrorMessage()
+  {
+    return errorMessage;
+  }
+
+
+
+  /**
    * Retrieves the unique identifier for the associated message.
    *
    * @return  The unique identifier for the associated message.
@@ -121,5 +211,18 @@
   {
     return messageID;
   }
+
+
+
+  /**
+   * Retrieves the matched DN for this exception.
+   *
+   * @return  The matched DN for this exception, or {@code null} if there is
+   *          none.
+   */
+  public DN getMatchedDN()
+  {
+    return matchedDN;
+  }
 }
 

--
Gitblit v1.10.0