From e17281bc556b5373f23ce6f115b334f990b160bc Mon Sep 17 00:00:00 2001
From: matthew_swift <matthew_swift@localhost>
Date: Mon, 21 Jan 2008 12:17:56 +0000
Subject: [PATCH] Fix issue 2850.

---
 opendj-sdk/opends/src/server/org/opends/server/extensions/TraditionalWorkQueue.java |   10 ++++++++--
 1 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/extensions/TraditionalWorkQueue.java b/opendj-sdk/opends/src/server/org/opends/server/extensions/TraditionalWorkQueue.java
index bec5d7e..76cb7c1 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/extensions/TraditionalWorkQueue.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/extensions/TraditionalWorkQueue.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Portions Copyright 2006-2007 Sun Microsystems, Inc.
+ *      Portions Copyright 2006-2008 Sun Microsystems, Inc.
  */
 package org.opends.server.extensions;
 
@@ -46,6 +46,7 @@
 import org.opends.server.monitors.TraditionalWorkQueueMonitor;
 import org.opends.server.types.AbstractOperation;
 import org.opends.server.types.CancelRequest;
+import org.opends.server.types.CancelResult;
 import org.opends.server.types.ConfigChangeResult;
 import org.opends.server.types.DebugLogLevel;
 import org.opends.server.types.DirectoryException;
@@ -227,7 +228,12 @@
     {
       try
       {
-        o.cancel(cancelRequest);
+        // The operation has no chance of responding to the cancel
+        // request so avoid waiting for a cancel response.
+        if (o.getCancelResult() == null) {
+          o.setCancelResult(CancelResult.CANCELED);
+          o.cancel(cancelRequest);
+        }
       }
       catch (Exception e)
       {

--
Gitblit v1.10.0