From f24118fad27564bc163fd5c4a2955ca36c73489c Mon Sep 17 00:00:00 2001
From: neil_a_wilson <neil_a_wilson@localhost>
Date: Thu, 12 Oct 2006 15:08:00 +0000
Subject: [PATCH] Update the server code to eliminate the need for a 5-second delay when attempting to terminate a client connection from within an operation plugin. The issue arose when the attempt to terminate the connection tried to cancel the operation that initiated the disconnect, which made it necessary to wait for a 5-second timeout before continuing.
---
opends/tests/unit-tests-testng/src/server/org/opends/server/plugins/DisconnectClientPlugin.java | 134 +++++++++++++-------------------------------
1 files changed, 39 insertions(+), 95 deletions(-)
diff --git a/opends/tests/unit-tests-testng/src/server/org/opends/server/plugins/DisconnectClientPlugin.java b/opends/tests/unit-tests-testng/src/server/org/opends/server/plugins/DisconnectClientPlugin.java
index 46242ae..641de1e 100644
--- a/opends/tests/unit-tests-testng/src/server/org/opends/server/plugins/DisconnectClientPlugin.java
+++ b/opends/tests/unit-tests-testng/src/server/org/opends/server/plugins/DisconnectClientPlugin.java
@@ -158,8 +158,7 @@
public PreParsePluginResult
doPreParse(PreParseAbandonOperation abandonOperation)
{
- if (disconnectInternal(abandonOperation.getClientConnection(),
- abandonOperation.getRequestControls(), "PreParse"))
+ if (disconnectInternal(abandonOperation, "PreParse"))
{
return new PreParsePluginResult(true, false, false);
}
@@ -177,8 +176,7 @@
@Override()
public PreParsePluginResult doPreParse(PreParseAddOperation addOperation)
{
- if (disconnectInternal(addOperation.getClientConnection(),
- addOperation.getRequestControls(), "PreParse"))
+ if (disconnectInternal(addOperation, "PreParse"))
{
return new PreParsePluginResult(true, false, false);
}
@@ -196,8 +194,7 @@
@Override()
public PreParsePluginResult doPreParse(PreParseBindOperation bindOperation)
{
- if (disconnectInternal(bindOperation.getClientConnection(),
- bindOperation.getRequestControls(), "PreParse"))
+ if (disconnectInternal(bindOperation, "PreParse"))
{
return new PreParsePluginResult(true, false, false);
}
@@ -216,8 +213,7 @@
public PreParsePluginResult
doPreParse(PreParseCompareOperation compareOperation)
{
- if (disconnectInternal(compareOperation.getClientConnection(),
- compareOperation.getRequestControls(), "PreParse"))
+ if (disconnectInternal(compareOperation, "PreParse"))
{
return new PreParsePluginResult(true, false, false);
}
@@ -236,8 +232,7 @@
public PreParsePluginResult
doPreParse(PreParseDeleteOperation deleteOperation)
{
- if (disconnectInternal(deleteOperation.getClientConnection(),
- deleteOperation.getRequestControls(), "PreParse"))
+ if (disconnectInternal(deleteOperation, "PreParse"))
{
return new PreParsePluginResult(true, false, false);
}
@@ -256,8 +251,7 @@
public PreParsePluginResult
doPreParse(PreParseExtendedOperation extendedOperation)
{
- if (disconnectInternal(extendedOperation.getClientConnection(),
- extendedOperation.getRequestControls(), "PreParse"))
+ if (disconnectInternal(extendedOperation, "PreParse"))
{
return new PreParsePluginResult(true, false, false);
}
@@ -276,8 +270,7 @@
public PreParsePluginResult
doPreParse(PreParseModifyOperation modifyOperation)
{
- if (disconnectInternal(modifyOperation.getClientConnection(),
- modifyOperation.getRequestControls(), "PreParse"))
+ if (disconnectInternal(modifyOperation, "PreParse"))
{
return new PreParsePluginResult(true, false, false);
}
@@ -296,8 +289,7 @@
public PreParsePluginResult
doPreParse(PreParseModifyDNOperation modifyDNOperation)
{
- if (disconnectInternal(modifyDNOperation.getClientConnection(),
- modifyDNOperation.getRequestControls(), "PreParse"))
+ if (disconnectInternal(modifyDNOperation, "PreParse"))
{
return new PreParsePluginResult(true, false, false);
}
@@ -316,8 +308,7 @@
public PreParsePluginResult
doPreParse(PreParseSearchOperation searchOperation)
{
- if (disconnectInternal(searchOperation.getClientConnection(),
- searchOperation.getRequestControls(), "PreParse"))
+ if (disconnectInternal(searchOperation, "PreParse"))
{
return new PreParsePluginResult(true, false, false);
}
@@ -336,8 +327,7 @@
public PreParsePluginResult
doPreParse(PreParseUnbindOperation unbindOperation)
{
- if (disconnectInternal(unbindOperation.getClientConnection(),
- unbindOperation.getRequestControls(), "PreParse"))
+ if (disconnectInternal(unbindOperation, "PreParse"))
{
return new PreParsePluginResult(true, false, false);
}
@@ -356,8 +346,7 @@
public PreOperationPluginResult
doPreOperation(PreOperationAddOperation addOperation)
{
- if (disconnectInternal(addOperation.getClientConnection(),
- addOperation.getRequestControls(), "PreOperation"))
+ if (disconnectInternal(addOperation, "PreOperation"))
{
return new PreOperationPluginResult(true, false, false);
}
@@ -376,8 +365,7 @@
public PreOperationPluginResult
doPreOperation(PreOperationBindOperation bindOperation)
{
- if (disconnectInternal(bindOperation.getClientConnection(),
- bindOperation.getRequestControls(), "PreOperation"))
+ if (disconnectInternal(bindOperation, "PreOperation"))
{
return new PreOperationPluginResult(true, false, false);
}
@@ -396,9 +384,7 @@
public PreOperationPluginResult
doPreOperation(PreOperationCompareOperation compareOperation)
{
- if (disconnectInternal(compareOperation.getClientConnection(),
- compareOperation.getRequestControls(),
- "PreOperation"))
+ if (disconnectInternal(compareOperation, "PreOperation"))
{
return new PreOperationPluginResult(true, false, false);
}
@@ -417,9 +403,7 @@
public PreOperationPluginResult
doPreOperation(PreOperationDeleteOperation deleteOperation)
{
- if (disconnectInternal(deleteOperation.getClientConnection(),
- deleteOperation.getRequestControls(),
- "PreOperation"))
+ if (disconnectInternal(deleteOperation, "PreOperation"))
{
return new PreOperationPluginResult(true, false, false);
}
@@ -438,9 +422,7 @@
public PreOperationPluginResult
doPreOperation(PreOperationExtendedOperation extendedOperation)
{
- if (disconnectInternal(extendedOperation.getClientConnection(),
- extendedOperation.getRequestControls(),
- "PreOperation"))
+ if (disconnectInternal(extendedOperation, "PreOperation"))
{
return new PreOperationPluginResult(true, false, false);
}
@@ -459,9 +441,7 @@
public PreOperationPluginResult
doPreOperation(PreOperationModifyOperation modifyOperation)
{
- if (disconnectInternal(modifyOperation.getClientConnection(),
- modifyOperation.getRequestControls(),
- "PreOperation"))
+ if (disconnectInternal(modifyOperation, "PreOperation"))
{
return new PreOperationPluginResult(true, false, false);
}
@@ -480,9 +460,7 @@
public PreOperationPluginResult
doPreOperation(PreOperationModifyDNOperation modifyDNOperation)
{
- if (disconnectInternal(modifyDNOperation.getClientConnection(),
- modifyDNOperation.getRequestControls(),
- "PreOperation"))
+ if (disconnectInternal(modifyDNOperation, "PreOperation"))
{
return new PreOperationPluginResult(true, false, false);
}
@@ -501,9 +479,7 @@
public PreOperationPluginResult
doPreOperation(PreOperationSearchOperation searchOperation)
{
- if (disconnectInternal(searchOperation.getClientConnection(),
- searchOperation.getRequestControls(),
- "PreOperation"))
+ if (disconnectInternal(searchOperation, "PreOperation"))
{
return new PreOperationPluginResult(true, false, false);
}
@@ -522,9 +498,7 @@
public PostOperationPluginResult
doPostOperation(PostOperationAbandonOperation abandonOperation)
{
- if (disconnectInternal(abandonOperation.getClientConnection(),
- abandonOperation.getRequestControls(),
- "PreOperation"))
+ if (disconnectInternal(abandonOperation, "PreOperation"))
{
return new PostOperationPluginResult(true, false);
}
@@ -543,8 +517,7 @@
public PostOperationPluginResult
doPostOperation(PostOperationAddOperation addOperation)
{
- if (disconnectInternal(addOperation.getClientConnection(),
- addOperation.getRequestControls(), "PostOperation"))
+ if (disconnectInternal(addOperation, "PostOperation"))
{
return new PostOperationPluginResult(true, false);
}
@@ -563,8 +536,7 @@
public PostOperationPluginResult
doPostOperation(PostOperationBindOperation bindOperation)
{
- if (disconnectInternal(bindOperation.getClientConnection(),
- bindOperation.getRequestControls(), "PostOperation"))
+ if (disconnectInternal(bindOperation, "PostOperation"))
{
return new PostOperationPluginResult(true, false);
}
@@ -583,9 +555,7 @@
public PostOperationPluginResult
doPostOperation(PostOperationCompareOperation compareOperation)
{
- if (disconnectInternal(compareOperation.getClientConnection(),
- compareOperation.getRequestControls(),
- "PostOperation"))
+ if (disconnectInternal(compareOperation, "PostOperation"))
{
return new PostOperationPluginResult(true, false);
}
@@ -604,9 +574,7 @@
public PostOperationPluginResult
doPostOperation(PostOperationDeleteOperation deleteOperation)
{
- if (disconnectInternal(deleteOperation.getClientConnection(),
- deleteOperation.getRequestControls(),
- "PostOperation"))
+ if (disconnectInternal(deleteOperation, "PostOperation"))
{
return new PostOperationPluginResult(true, false);
}
@@ -625,9 +593,7 @@
public PostOperationPluginResult
doPostOperation(PostOperationExtendedOperation extendedOperation)
{
- if (disconnectInternal(extendedOperation.getClientConnection(),
- extendedOperation.getRequestControls(),
- "PostOperation"))
+ if (disconnectInternal(extendedOperation, "PostOperation"))
{
return new PostOperationPluginResult(true, false);
}
@@ -646,9 +612,7 @@
public PostOperationPluginResult
doPostOperation(PostOperationModifyOperation modifyOperation)
{
- if (disconnectInternal(modifyOperation.getClientConnection(),
- modifyOperation.getRequestControls(),
- "PostOperation"))
+ if (disconnectInternal(modifyOperation, "PostOperation"))
{
return new PostOperationPluginResult(true, false);
}
@@ -667,9 +631,7 @@
public PostOperationPluginResult
doPostOperation(PostOperationModifyDNOperation modifyDNOperation)
{
- if (disconnectInternal(modifyDNOperation.getClientConnection(),
- modifyDNOperation.getRequestControls(),
- "PostOperation"))
+ if (disconnectInternal(modifyDNOperation, "PostOperation"))
{
return new PostOperationPluginResult(true, false);
}
@@ -688,9 +650,7 @@
public PostOperationPluginResult
doPostOperation(PostOperationSearchOperation searchOperation)
{
- if (disconnectInternal(searchOperation.getClientConnection(),
- searchOperation.getRequestControls(),
- "PostOperation"))
+ if (disconnectInternal(searchOperation, "PostOperation"))
{
return new PostOperationPluginResult(true, false);
}
@@ -709,9 +669,7 @@
public PostOperationPluginResult
doPostOperation(PostOperationUnbindOperation unbindOperation)
{
- if (disconnectInternal(unbindOperation.getClientConnection(),
- unbindOperation.getRequestControls(),
- "PostOperation"))
+ if (disconnectInternal(unbindOperation, "PostOperation"))
{
return new PostOperationPluginResult(true, false);
}
@@ -730,8 +688,7 @@
public PostResponsePluginResult
doPostResponse(PostResponseAddOperation addOperation)
{
- if (disconnectInternal(addOperation.getClientConnection(),
- addOperation.getRequestControls(), "PostResponse"))
+ if (disconnectInternal(addOperation, "PostResponse"))
{
return new PostResponsePluginResult(true, false);
}
@@ -750,8 +707,7 @@
public PostResponsePluginResult
doPostResponse(PostResponseBindOperation bindOperation)
{
- if (disconnectInternal(bindOperation.getClientConnection(),
- bindOperation.getRequestControls(), "PostResponse"))
+ if (disconnectInternal(bindOperation, "PostResponse"))
{
return new PostResponsePluginResult(true, false);
}
@@ -770,9 +726,7 @@
public PostResponsePluginResult
doPostResponse(PostResponseCompareOperation compareOperation)
{
- if (disconnectInternal(compareOperation.getClientConnection(),
- compareOperation.getRequestControls(),
- "PostResponse"))
+ if (disconnectInternal(compareOperation, "PostResponse"))
{
return new PostResponsePluginResult(true, false);
}
@@ -791,9 +745,7 @@
public PostResponsePluginResult
doPostResponse(PostResponseDeleteOperation deleteOperation)
{
- if (disconnectInternal(deleteOperation.getClientConnection(),
- deleteOperation.getRequestControls(),
- "PostResponse"))
+ if (disconnectInternal(deleteOperation, "PostResponse"))
{
return new PostResponsePluginResult(true, false);
}
@@ -812,9 +764,7 @@
public PostResponsePluginResult
doPostResponse(PostResponseExtendedOperation extendedOperation)
{
- if (disconnectInternal(extendedOperation.getClientConnection(),
- extendedOperation.getRequestControls(),
- "PostResponse"))
+ if (disconnectInternal(extendedOperation, "PostResponse"))
{
return new PostResponsePluginResult(true, false);
}
@@ -833,9 +783,7 @@
public PostResponsePluginResult
doPostResponse(PostResponseModifyOperation modifyOperation)
{
- if (disconnectInternal(modifyOperation.getClientConnection(),
- modifyOperation.getRequestControls(),
- "PostResponse"))
+ if (disconnectInternal(modifyOperation, "PostResponse"))
{
return new PostResponsePluginResult(true, false);
}
@@ -854,9 +802,7 @@
public PostResponsePluginResult
doPostResponse(PostResponseModifyDNOperation modifyDNOperation)
{
- if (disconnectInternal(modifyDNOperation.getClientConnection(),
- modifyDNOperation.getRequestControls(),
- "PostResponse"))
+ if (disconnectInternal(modifyDNOperation, "PostResponse"))
{
return new PostResponsePluginResult(true, false);
}
@@ -875,9 +821,7 @@
public PostResponsePluginResult
doPostResponse(PostResponseSearchOperation searchOperation)
{
- if (disconnectInternal(searchOperation.getClientConnection(),
- searchOperation.getRequestControls(),
- "PostResponse"))
+ if (disconnectInternal(searchOperation, "PostResponse"))
{
return new PostResponsePluginResult(true, false);
}
@@ -899,10 +843,10 @@
* @return <CODE>true</CODE> if the client connection was terminated, or
* <CODE>false</CODE> if it was not.
*/
- private boolean disconnectInternal(ClientConnection clientConnection,
- List<Control> requestControls,
+ private boolean disconnectInternal(PluginOperation operation,
String section)
{
+ List<Control> requestControls = operation.getRequestControls();
if (requestControls != null)
{
for (Control c : requestControls)
@@ -911,7 +855,7 @@
{
if (c.getValue().stringValue().equalsIgnoreCase(section))
{
- clientConnection.disconnect(DisconnectReason.CLOSED_BY_PLUGIN, true,
+ operation.disconnectClient(DisconnectReason.CLOSED_BY_PLUGIN, true,
"Closed by disconnect client plugin (section " + section + ")",
-1);
--
Gitblit v1.10.0