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/tools/LDAPModify.java |   33 ++++++++++++++++++++-------------
 1 files changed, 20 insertions(+), 13 deletions(-)

diff --git a/opends/src/server/org/opends/server/tools/LDAPModify.java b/opends/src/server/org/opends/server/tools/LDAPModify.java
index 61da732..308a31e 100644
--- a/opends/src/server/org/opends/server/tools/LDAPModify.java
+++ b/opends/src/server/org/opends/server/tools/LDAPModify.java
@@ -59,6 +59,7 @@
 import org.opends.server.protocols.ldap.SearchResultEntryProtocolOp;
 import org.opends.server.protocols.ldap.ProtocolOp;
 import org.opends.server.types.Attribute;
+import org.opends.server.types.DN;
 import org.opends.server.types.LDIFImportConfig;
 import org.opends.server.types.NullOutputStream;
 import org.opends.server.types.DebugLogLevel;
@@ -345,9 +346,9 @@
             debugCaught(DebugLogLevel.ERROR, ae);
           }
           msgID = MSGID_OPERATION_FAILED;
-          String message = getMessage(msgID, operationType, asn1OctetStr,
-                                      ae.getMessage());
+          String message = getMessage(msgID, operationType);
           err.println(wrapText(message, MAX_LINE_WIDTH));
+          err.println(wrapText(ae.getMessage(), MAX_LINE_WIDTH));
           if (!modifyOptions.continueOnError())
           {
             throw new IOException(ae.getMessage());
@@ -357,6 +358,7 @@
 
         int resultCode = 0;
         String errorMessage = null;
+        DN matchedDN = null;
         List<String> referralURLs = null;
         switch(entry.getChangeOperationType())
         {
@@ -365,6 +367,7 @@
               responseMessage.getAddResponseProtocolOp();
             resultCode = addOp.getResultCode();
             errorMessage = addOp.getErrorMessage();
+            matchedDN = addOp.getMatchedDN();
             referralURLs = addOp.getReferralURLs();
             break;
           case DELETE:
@@ -372,6 +375,7 @@
               responseMessage.getDeleteResponseProtocolOp();
             resultCode = delOp.getResultCode();
             errorMessage = delOp.getErrorMessage();
+            matchedDN = delOp.getMatchedDN();
             referralURLs = delOp.getReferralURLs();
             break;
           case MODIFY:
@@ -379,6 +383,7 @@
               responseMessage.getModifyResponseProtocolOp();
             resultCode = modOp.getResultCode();
             errorMessage = modOp.getErrorMessage();
+            matchedDN = modOp.getMatchedDN();
             referralURLs = modOp.getReferralURLs();
             break;
           case MODIFY_DN:
@@ -386,6 +391,7 @@
               responseMessage.getModifyDNResponseProtocolOp();
             resultCode = modDNOp.getResultCode();
             errorMessage = modDNOp.getErrorMessage();
+            matchedDN = modDNOp.getMatchedDN();
             referralURLs = modDNOp.getReferralURLs();
             break;
           default:
@@ -394,20 +400,17 @@
 
         if(resultCode != SUCCESS && resultCode != REFERRAL)
         {
-          if(errorMessage == null)
-          {
-            errorMessage = "Result code:" + resultCode;
-          }
           msgID = MSGID_OPERATION_FAILED;
-          String msg = getMessage(msgID, operationType, asn1OctetStr,
-                                  errorMessage);
+          String msg = getMessage(msgID, operationType);
 
           if(!modifyOptions.continueOnError())
           {
-            throw new LDAPException(resultCode, msgID, msg);
+            throw new LDAPException(resultCode, errorMessage, msgID, msg,
+                                    matchedDN, null);
           } else
           {
-            err.println(msg);
+            LDAPToolUtils.printErrorMessage(err, msg, resultCode, errorMessage,
+                                            matchedDN);
           }
         } else
         {
@@ -1099,7 +1102,8 @@
       {
         debugCaught(DebugLogLevel.ERROR, le);
       }
-      err.println(wrapText(le.getMessage(), MAX_LINE_WIDTH));
+      LDAPToolUtils.printErrorMessage(err, le.getMessage(), le.getResultCode(),
+                                      le.getErrorMessage(), le.getMatchedDN());
       int code = le.getResultCode();
       return code;
     } catch(LDAPConnectionException lce)
@@ -1108,8 +1112,11 @@
       {
         debugCaught(DebugLogLevel.ERROR, lce);
       }
-      err.println(wrapText(lce.getMessage(), MAX_LINE_WIDTH));
-      int code = lce.getErrorCode();
+      LDAPToolUtils.printErrorMessage(err, lce.getMessage(),
+                                      lce.getResultCode(),
+                                      lce.getErrorMessage(),
+                                      lce.getMatchedDN());
+      int code = lce.getResultCode();
       return code;
     } catch(Exception e)
     {

--
Gitblit v1.10.0