From 003e3993c5ca89b1a8cbb4dc844aa1f882203475 Mon Sep 17 00:00:00 2001
From: ludovicp <ludovicp@localhost>
Date: Mon, 31 May 2010 08:49:35 +0000
Subject: [PATCH] Update BDB JE to version 4.0.103 Handle properly notice of disconnection in ldapmodify CLI.
---
opendj-sdk/opends/src/server/org/opends/server/tools/LDAPModify.java | 103 ++++++++++++++++++++++++++++++++++-----------------
1 files changed, 68 insertions(+), 35 deletions(-)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPModify.java b/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPModify.java
index 11aa3fb..d566cb6 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPModify.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/tools/LDAPModify.java
@@ -76,6 +76,8 @@
import org.opends.server.controls.*;
import org.opends.server.plugins.ChangeNumberControlPlugin;
+import org.opends.server.protocols.ldap.ExtendedResponseProtocolOp;
+import org.opends.server.protocols.ldap.LDAPConstants;
@@ -359,42 +361,73 @@
Message errorMessage = null;
DN matchedDN = null;
List<String> referralURLs = null;
- switch(entry.getChangeOperationType())
+ try
{
- case ADD:
- AddResponseProtocolOp addOp =
- responseMessage.getAddResponseProtocolOp();
- resultCode = addOp.getResultCode();
- errorMessage = addOp.getErrorMessage();
- matchedDN = addOp.getMatchedDN();
- referralURLs = addOp.getReferralURLs();
- break;
- case DELETE:
- DeleteResponseProtocolOp delOp =
- responseMessage.getDeleteResponseProtocolOp();
- resultCode = delOp.getResultCode();
- errorMessage = delOp.getErrorMessage();
- matchedDN = delOp.getMatchedDN();
- referralURLs = delOp.getReferralURLs();
- break;
- case MODIFY:
- ModifyResponseProtocolOp modOp =
- responseMessage.getModifyResponseProtocolOp();
- resultCode = modOp.getResultCode();
- errorMessage = modOp.getErrorMessage();
- matchedDN = modOp.getMatchedDN();
- referralURLs = modOp.getReferralURLs();
- break;
- case MODIFY_DN:
- ModifyDNResponseProtocolOp modDNOp =
- responseMessage.getModifyDNResponseProtocolOp();
- resultCode = modDNOp.getResultCode();
- errorMessage = modDNOp.getErrorMessage();
- matchedDN = modDNOp.getMatchedDN();
- referralURLs = modDNOp.getReferralURLs();
- break;
- default:
- break;
+ switch(entry.getChangeOperationType())
+ {
+ case ADD:
+ AddResponseProtocolOp addOp =
+ responseMessage.getAddResponseProtocolOp();
+ resultCode = addOp.getResultCode();
+ errorMessage = addOp.getErrorMessage();
+ matchedDN = addOp.getMatchedDN();
+ referralURLs = addOp.getReferralURLs();
+ break;
+ case DELETE:
+ DeleteResponseProtocolOp delOp =
+ responseMessage.getDeleteResponseProtocolOp();
+ resultCode = delOp.getResultCode();
+ errorMessage = delOp.getErrorMessage();
+ matchedDN = delOp.getMatchedDN();
+ referralURLs = delOp.getReferralURLs();
+ break;
+ case MODIFY:
+ ModifyResponseProtocolOp modOp =
+ responseMessage.getModifyResponseProtocolOp();
+ resultCode = modOp.getResultCode();
+ errorMessage = modOp.getErrorMessage();
+ matchedDN = modOp.getMatchedDN();
+ referralURLs = modOp.getReferralURLs();
+ break;
+ case MODIFY_DN:
+ ModifyDNResponseProtocolOp modDNOp =
+ responseMessage.getModifyDNResponseProtocolOp();
+ resultCode = modDNOp.getResultCode();
+ errorMessage = modDNOp.getErrorMessage();
+ matchedDN = modDNOp.getMatchedDN();
+ referralURLs = modDNOp.getReferralURLs();
+ break;
+ default:
+ break;
+ }
+ }
+ catch (ClassCastException ce)
+ {
+ // It is possible that this is extended response.
+ if (responseMessage.getProtocolOpType() ==
+ LDAPConstants.OP_TYPE_EXTENDED_RESPONSE)
+ {
+ ExtendedResponseProtocolOp extRes =
+ responseMessage.getExtendedResponseProtocolOp();
+ resultCode = extRes.getResultCode();
+ errorMessage = extRes.getErrorMessage();
+ matchedDN = extRes.getMatchedDN();
+ referralURLs = extRes.getReferralURLs();
+ }
+ else
+ {
+ // This shouldnt happen but if it does debug
+ // log it, set the error code to OTHER and
+ // fall thru.
+ if (debugEnabled())
+ {
+ TRACER.debugCaught(DebugLogLevel.ERROR, ce);
+ }
+ resultCode = ResultCode.OTHER.getIntValue();
+ errorMessage = null;
+ matchedDN = null;
+ referralURLs = null;
+ }
}
if(resultCode != SUCCESS && resultCode != REFERRAL)
--
Gitblit v1.10.0