From a9dd51631135b201b46f32c862ea72006d7a3a65 Mon Sep 17 00:00:00 2001
From: jarnou <jarnou@localhost>
Date: Tue, 17 Jul 2007 09:16:06 +0000
Subject: [PATCH] This fix is the refactoring of the unbind operation (issue 1990).

---
 opendj-sdk/opends/src/server/org/opends/server/loggers/TextAuditLogPublisher.java                        |    4 
 opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/JmxClientConnection.java                    |    6 
 opendj-sdk/opends/src/server/org/opends/server/loggers/TextAccessLogPublisher.java                       |    4 
 opendj-sdk/opends/src/server/org/opends/server/api/AccessLogPublisher.java                               |    3 
 opendj-sdk/opends/src/server/org/opends/server/core/PluginConfigManager.java                             |    4 
 opendj-sdk/opends/src/server/org/opends/server/loggers/AccessLogger.java                                 |    2 
 opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/core/UnbindOperationTestCase.java |   18 
 opendj-sdk/opends/src/server/org/opends/server/core/UnbindOperation.java                                 |  238 -----------------------
 opendj-sdk/opends/src/server/org/opends/server/core/UnbindOperationBasis.java                            |  275 +++++++++++++++++++++++++++
 opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java                  |    6 
 10 files changed, 304 insertions(+), 256 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/api/AccessLogPublisher.java b/opendj-sdk/opends/src/server/org/opends/server/api/AccessLogPublisher.java
index 6bed1c3..9007267 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/api/AccessLogPublisher.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/api/AccessLogPublisher.java
@@ -424,7 +424,8 @@
    *                          information to use to log the unbind
    *                          request.
    */
-  public abstract void logUnbind(UnbindOperation unbindOperation);
+  public abstract void logUnbind(UnbindOperationBasis
+      unbindOperation);
 
   /**
    * Gets the DN of the configuration entry for this access log
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/PluginConfigManager.java b/opendj-sdk/opends/src/server/org/opends/server/core/PluginConfigManager.java
index fda51ae..6022046 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/PluginConfigManager.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/PluginConfigManager.java
@@ -2470,7 +2470,7 @@
    * @return  The result of processing the pre-parse unbind plugins.
    */
   public PreParsePluginResult invokePreParseUnbindPlugins(
-                                   UnbindOperation unbindOperation)
+                                   UnbindOperationBasis unbindOperation)
   {
     PreParsePluginResult result = null;
 
@@ -3938,7 +3938,7 @@
    * @return  The result of processing the post-operation unbind plugins.
    */
   public PostOperationPluginResult invokePostOperationUnbindPlugins(
-                                        UnbindOperation unbindOperation)
+                                        UnbindOperationBasis unbindOperation)
   {
     PostOperationPluginResult result = null;
 
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/UnbindOperation.java b/opendj-sdk/opends/src/server/org/opends/server/core/UnbindOperation.java
index 44363ac..14c6858 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/core/UnbindOperation.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/UnbindOperation.java
@@ -26,247 +26,17 @@
  */
 package org.opends.server.core;
 
-
-
-import java.util.ArrayList;
-import java.util.List;
-
-import org.opends.server.api.ClientConnection;
-import org.opends.server.loggers.debug.DebugLogger;
-import org.opends.server.loggers.debug.DebugTracer;
-import org.opends.server.types.AbstractOperation;
-import org.opends.server.types.CancelRequest;
-import org.opends.server.types.CancelResult;
-import org.opends.server.types.Control;
-import org.opends.server.types.DisconnectReason;
-import org.opends.server.types.OperationType;
-import org.opends.server.types.operation.PostOperationUnbindOperation;
-import org.opends.server.types.operation.PreParseUnbindOperation;
-
-import static org.opends.server.loggers.AccessLogger.*;
-import static org.opends.server.messages.CoreMessages.*;
-import static org.opends.server.messages.MessageHandler.*;
+import org.opends.server.types.Operation;
 
 
 
 /**
- * This class defines an operation that may be used to close the connection
+ * This interface defines an operation that may be used to close the connection
  * between the client and the Directory Server.
  */
-public class UnbindOperation
-       extends AbstractOperation
-       implements PreParseUnbindOperation, PostOperationUnbindOperation
+public interface UnbindOperation
+       extends Operation
 {
 
-  /**
-   * The tracer object for the debug logger.
-   */
-  private static final DebugTracer TRACER = DebugLogger.getTracer();
-
-  /**
-   * Creates a new unbind operation with the provided information.
-   *
-   * @param  clientConnection  The client connection with which this operation
-   *                           is associated.
-   * @param  operationID       The operation ID for this operation.
-   * @param  messageID         The message ID of the request with which this
-   *                           operation is associated.
-   * @param  requestControls   The set of controls included in the request.
-   */
-  public UnbindOperation(ClientConnection clientConnection, long operationID,
-                         int messageID, ArrayList<Control> requestControls)
-  {
-    super(clientConnection, operationID, messageID, requestControls);
-
-  }
-
-
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override()
-  public final OperationType getOperationType()
-  {
-    // Note that no debugging will be done in this method because it is a likely
-    // candidate for being called by the logging subsystem.
-
-    return OperationType.UNBIND;
-  }
-
-
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override()
-  public final void disconnectClient(DisconnectReason disconnectReason,
-                                     boolean sendNotification, String message,
-                                     int messageID)
-  {
-    // Since unbind operations can't be cancelled, we don't need to do anything
-    // but forward the request on to the client connection.
-    clientConnection.disconnect(disconnectReason, sendNotification, message,
-                                messageID);
-  }
-
-
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override()
-  public final String[][] getRequestLogElements()
-  {
-    // Note that no debugging will be done in this method because it is a likely
-    // candidate for being called by the logging subsystem.
-
-    // There are no special elements that should be logged for an unbind
-    // request.
-    return new String[0][];
-  }
-
-
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override()
-  public final String[][] getResponseLogElements()
-  {
-    // Note that no debugging will be done in this method because it is a likely
-    // candidate for being called by the logging subsystem.
-
-    // There is no unbind response, nor are there any special elements that
-    // should be logged when an unbind occurs.
-    return new String[0][];
-  }
-
-
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override()
-  public final List<Control> getResponseControls()
-  {
-    // An unbind operation can never have a response, so just return an empty
-    // list.
-    return NO_RESPONSE_CONTROLS;
-  }
-
-
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override()
-  public final void addResponseControl(Control control)
-  {
-    // An unbind operation can never have a response, so just ignore this.
-  }
-
-
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override()
-  public final void removeResponseControl(Control control)
-  {
-    // An unbind operation can never have a response, so just ignore this.
-  }
-
-  /**
-   * Performs the work of actually processing this operation.  This
-   * should include all processing for the operation, including
-   * invoking plugins, logging messages, performing access control,
-   * managing synchronization, and any other work that might need to
-   * be done in the course of processing.
-   */
-  public final void run()
-  {
-    // Get the plugin config manager that will be used for invoking plugins.
-    PluginConfigManager pluginConfigManager =
-         DirectoryServer.getPluginConfigManager();
-    boolean skipPostOperation = false;
-
-    setProcessingStartTime();
-
-
-    // Invoke the pre-parse unbind plugins.  We don't care about the result
-    // since we're going to close the connection anyway.
-    pluginConfigManager.invokePreParseUnbindPlugins(this);
-
-
-    // Log the unbind request.
-    logUnbind(this);
-
-
-    // Check the set of controls included in the request.  If there are any,
-    // see if any special processing is needed.
-    // NYI
-
-
-    // Disconnect the client.
-    getClientConnection().disconnect(DisconnectReason.UNBIND, false, null, -1);
-
-
-    // Invoke the post-operation unbind plugins.
-    pluginConfigManager.invokePostOperationUnbindPlugins(this);
-
-    setProcessingStopTime();
-  }
-
-
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override()
-  public final CancelResult cancel(CancelRequest cancelRequest)
-  {
-    cancelRequest.addResponseMessage(getMessage(MSGID_CANNOT_CANCEL_UNBIND));
-    return CancelResult.CANNOT_CANCEL;
-  }
-
-
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override()
-  public final CancelRequest getCancelRequest()
-  {
-    return null;
-  }
-
-
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override()
-  public boolean setCancelRequest(CancelRequest cancelRequest)
-  {
-    // Unbind operations cannot be canceled.
-    return false;
-  }
-
-
-
-  /**
-   * {@inheritDoc}
-   */
-  @Override()
-  public final void toString(StringBuilder buffer)
-  {
-    buffer.append("UnbindOperation(connID=");
-    buffer.append(clientConnection.getConnectionID());
-    buffer.append(", opID=");
-    buffer.append(operationID);
-    buffer.append(")");
-  }
-
 }
 
diff --git a/opendj-sdk/opends/src/server/org/opends/server/core/UnbindOperationBasis.java b/opendj-sdk/opends/src/server/org/opends/server/core/UnbindOperationBasis.java
new file mode 100644
index 0000000..17856b6
--- /dev/null
+++ b/opendj-sdk/opends/src/server/org/opends/server/core/UnbindOperationBasis.java
@@ -0,0 +1,275 @@
+/*
+ * CDDL HEADER START
+ *
+ * The contents of this file are subject to the terms of the
+ * Common Development and Distribution License, Version 1.0 only
+ * (the "License").  You may not use this file except in compliance
+ * with the License.
+ *
+ * You can obtain a copy of the license at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE
+ * or https://OpenDS.dev.java.net/OpenDS.LICENSE.
+ * See the License for the specific language governing permissions
+ * and limitations under the License.
+ *
+ * When distributing Covered Code, include this CDDL HEADER in each
+ * file and include the License file at
+ * trunk/opends/resource/legal-notices/OpenDS.LICENSE.  If applicable,
+ * add the following below this CDDL HEADER, with the fields enclosed
+ * by brackets "[]" replaced with your own identifying information:
+ *      Portions Copyright [yyyy] [name of copyright owner]
+ *
+ * CDDL HEADER END
+ *
+ *
+ *      Portions Copyright 2006-2007 Sun Microsystems, Inc.
+ */
+package org.opends.server.core;
+
+
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.opends.server.api.ClientConnection;
+import org.opends.server.loggers.debug.DebugLogger;
+import org.opends.server.loggers.debug.DebugTracer;
+import org.opends.server.types.AbstractOperation;
+import org.opends.server.types.CancelRequest;
+import org.opends.server.types.CancelResult;
+import org.opends.server.types.Control;
+import org.opends.server.types.DisconnectReason;
+import org.opends.server.types.OperationType;
+import org.opends.server.types.operation.PostOperationUnbindOperation;
+import org.opends.server.types.operation.PreParseUnbindOperation;
+
+import static org.opends.server.loggers.AccessLogger.*;
+import static org.opends.server.messages.CoreMessages.*;
+import static org.opends.server.messages.MessageHandler.*;
+
+
+
+/**
+ * This class defines an operation that may be used to close the connection
+ * between the client and the Directory Server.
+ */
+public class UnbindOperationBasis
+       extends AbstractOperation
+       implements UnbindOperation,
+                  PreParseUnbindOperation,
+                  PostOperationUnbindOperation
+{
+
+  /**
+   * The tracer object for the debug logger.
+   */
+  private static final DebugTracer TRACER = DebugLogger.getTracer();
+
+  /**
+   * Creates a new unbind operation with the provided information.
+   *
+   * @param  clientConnection  The client connection with which this operation
+   *                           is associated.
+   * @param  operationID       The operation ID for this operation.
+   * @param  messageID         The message ID of the request with which this
+   *                           operation is associated.
+   * @param  requestControls   The set of controls included in the request.
+   */
+  public UnbindOperationBasis(ClientConnection clientConnection,
+                         long operationID,
+                         int messageID, ArrayList<Control> requestControls)
+  {
+    super(clientConnection, operationID, messageID, requestControls);
+
+  }
+
+
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override()
+  public final OperationType getOperationType()
+  {
+    // Note that no debugging will be done in this method because it is a likely
+    // candidate for being called by the logging subsystem.
+
+    return OperationType.UNBIND;
+  }
+
+
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override()
+  public final void disconnectClient(DisconnectReason disconnectReason,
+                                     boolean sendNotification, String message,
+                                     int messageID)
+  {
+    // Since unbind operations can't be cancelled, we don't need to do anything
+    // but forward the request on to the client connection.
+    clientConnection.disconnect(disconnectReason, sendNotification, message,
+                                messageID);
+  }
+
+
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override()
+  public final String[][] getRequestLogElements()
+  {
+    // Note that no debugging will be done in this method because it is a likely
+    // candidate for being called by the logging subsystem.
+
+    // There are no special elements that should be logged for an unbind
+    // request.
+    return new String[0][];
+  }
+
+
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override()
+  public final String[][] getResponseLogElements()
+  {
+    // Note that no debugging will be done in this method because it is a likely
+    // candidate for being called by the logging subsystem.
+
+    // There is no unbind response, nor are there any special elements that
+    // should be logged when an unbind occurs.
+    return new String[0][];
+  }
+
+
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override()
+  public final List<Control> getResponseControls()
+  {
+    // An unbind operation can never have a response, so just return an empty
+    // list.
+    return NO_RESPONSE_CONTROLS;
+  }
+
+
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override()
+  public final void addResponseControl(Control control)
+  {
+    // An unbind operation can never have a response, so just ignore this.
+  }
+
+
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override()
+  public final void removeResponseControl(Control control)
+  {
+    // An unbind operation can never have a response, so just ignore this.
+  }
+
+  /**
+   * Performs the work of actually processing this operation.  This
+   * should include all processing for the operation, including
+   * invoking plugins, logging messages, performing access control,
+   * managing synchronization, and any other work that might need to
+   * be done in the course of processing.
+   */
+  public final void run()
+  {
+    // Get the plugin config manager that will be used for invoking plugins.
+    PluginConfigManager pluginConfigManager =
+         DirectoryServer.getPluginConfigManager();
+    boolean skipPostOperation = false;
+
+    setProcessingStartTime();
+
+
+    // Invoke the pre-parse unbind plugins.  We don't care about the result
+    // since we're going to close the connection anyway.
+    pluginConfigManager.invokePreParseUnbindPlugins(this);
+
+
+    // Log the unbind request.
+    logUnbind(this);
+
+
+    // Check the set of controls included in the request.  If there are any,
+    // see if any special processing is needed.
+    // NYI
+
+
+    // Disconnect the client.
+    getClientConnection().disconnect(DisconnectReason.UNBIND, false, null, -1);
+
+
+    // Invoke the post-operation unbind plugins.
+    pluginConfigManager.invokePostOperationUnbindPlugins(this);
+
+    setProcessingStopTime();
+  }
+
+
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override()
+  public final CancelResult cancel(CancelRequest cancelRequest)
+  {
+    cancelRequest.addResponseMessage(getMessage(MSGID_CANNOT_CANCEL_UNBIND));
+    return CancelResult.CANNOT_CANCEL;
+  }
+
+
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override()
+  public final CancelRequest getCancelRequest()
+  {
+    return null;
+  }
+
+
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override()
+  public boolean setCancelRequest(CancelRequest cancelRequest)
+  {
+    // Unbind operations cannot be canceled.
+    return false;
+  }
+
+
+
+  /**
+   * {@inheritDoc}
+   */
+  @Override()
+  public final void toString(StringBuilder buffer)
+  {
+    buffer.append("UnbindOperation(connID=");
+    buffer.append(clientConnection.getConnectionID());
+    buffer.append(", opID=");
+    buffer.append(operationID);
+    buffer.append(")");
+  }
+
+}
+
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/AccessLogger.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/AccessLogger.java
index 33ddf03..395c23d 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/AccessLogger.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/AccessLogger.java
@@ -820,7 +820,7 @@
    * @param  unbindOperation  The unbind operation containing the information to
    *                          use to log the unbind request.
    */
-  public static void logUnbind(UnbindOperation unbindOperation)
+  public static void logUnbind(UnbindOperationBasis unbindOperation)
   {
     for (AccessLogPublisher publisher : accessPublishers)
     {
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/TextAccessLogPublisher.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/TextAccessLogPublisher.java
index 731c434..ea42ae1 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/TextAccessLogPublisher.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/TextAccessLogPublisher.java
@@ -46,7 +46,7 @@
 import org.opends.server.core.ModifyOperation;
 import org.opends.server.core.ModifyDNOperationBasis;
 import org.opends.server.core.SearchOperation;
-import org.opends.server.core.UnbindOperation;
+import org.opends.server.core.UnbindOperationBasis;
 import org.opends.server.types.*;
 import org.opends.server.util.TimeThread;
 
@@ -1679,7 +1679,7 @@
    * @param  unbindOperation  The unbind operation containing the info to
    *                          use to log the unbind request.
    */
-  public void logUnbind(UnbindOperation unbindOperation)
+  public void logUnbind(UnbindOperationBasis unbindOperation)
   {
     long connectionID = unbindOperation.getConnectionID();
     if (connectionID < 0)
diff --git a/opendj-sdk/opends/src/server/org/opends/server/loggers/TextAuditLogPublisher.java b/opendj-sdk/opends/src/server/org/opends/server/loggers/TextAuditLogPublisher.java
index 5388c5e..1eda00c 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/loggers/TextAuditLogPublisher.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/loggers/TextAuditLogPublisher.java
@@ -45,7 +45,7 @@
 import org.opends.server.core.ModifyOperation;
 import org.opends.server.core.ModifyDNOperationBasis;
 import org.opends.server.core.SearchOperation;
-import org.opends.server.core.UnbindOperation;
+import org.opends.server.core.UnbindOperationBasis;
 import org.opends.server.types.*;
 import org.opends.server.util.Base64;
 import org.opends.server.util.StaticUtils;
@@ -860,7 +860,7 @@
    * {@inheritDoc}
    */
   @Override()
-  public void logUnbind(UnbindOperation unbindOperation)
+  public void logUnbind(UnbindOperationBasis unbindOperation)
   {
   }
 
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/JmxClientConnection.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/JmxClientConnection.java
index a0647f2..23eaf49 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/JmxClientConnection.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/jmx/JmxClientConnection.java
@@ -1039,8 +1039,10 @@
     // unbind the underlying connection
     try
     {
-      UnbindOperation unbindOp = new UnbindOperation((ClientConnection) this,
-          this.nextOperationID(), this.nextMessageID(), null);
+      UnbindOperationBasis unbindOp = new UnbindOperationBasis(
+          (ClientConnection) this,
+          this.nextOperationID(),
+          this.nextMessageID(), null);
 
       unbindOp.run();
     }
diff --git a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java
index 5d1db9a..1330c29 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/protocols/ldap/LDAPClientConnection.java
@@ -66,7 +66,7 @@
 import org.opends.server.core.PluginConfigManager;
 import org.opends.server.core.SearchOperation;
 import org.opends.server.core.SearchOperationBasis;
-import org.opends.server.core.UnbindOperation;
+import org.opends.server.core.UnbindOperationBasis;
 import org.opends.server.extensions.NullConnectionSecurityProvider;
 import org.opends.server.extensions.TLSCapableConnection;
 import org.opends.server.extensions.TLSConnectionSecurityProvider;
@@ -2436,8 +2436,8 @@
   private boolean processUnbindRequest(LDAPMessage message,
                                        ArrayList<Control> controls)
   {
-    UnbindOperation unbindOp =
-         new UnbindOperation(this, nextOperationID.getAndIncrement(),
+    UnbindOperationBasis unbindOp =
+         new UnbindOperationBasis(this, nextOperationID.getAndIncrement(),
                               message.getMessageID(), controls);
 
     unbindOp.run();
diff --git a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/core/UnbindOperationTestCase.java b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/core/UnbindOperationTestCase.java
index c759340..29899c4 100644
--- a/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/core/UnbindOperationTestCase.java
+++ b/opendj-sdk/opends/tests/unit-tests-testng/src/server/org/opends/server/core/UnbindOperationTestCase.java
@@ -64,9 +64,9 @@
 
     return new Operation[]
     {
-      new UnbindOperation(conn, conn.nextOperationID(), conn.nextMessageID(),
+      new UnbindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
                           null),
-      new UnbindOperation(conn, conn.nextOperationID(), conn.nextMessageID(),
+      new UnbindOperationBasis(conn, conn.nextOperationID(), conn.nextMessageID(),
                           new ArrayList<Control>())
     };
   }
@@ -79,7 +79,7 @@
    *
    * @param  unbindOperation  The operation to be tested.
    */
-  private void examineCompletedOperation(UnbindOperation unbindOperation)
+  private void examineCompletedOperation(UnbindOperationBasis unbindOperation)
   {
     assertTrue(unbindOperation.getProcessingStartTime() > 0);
     assertTrue(unbindOperation.getProcessingStopTime() > 0);
@@ -102,8 +102,8 @@
     InternalClientConnection conn =
          InternalClientConnection.getRootConnection();
 
-    UnbindOperation unbindOperation =
-         new UnbindOperation(conn, conn.nextOperationID(),
+    UnbindOperationBasis unbindOperation =
+         new UnbindOperationBasis(conn, conn.nextOperationID(),
                              conn.nextMessageID(), new ArrayList<Control>());
     unbindOperation.run();
     examineCompletedOperation(unbindOperation);
@@ -127,8 +127,8 @@
     CancelRequest cancelRequest =
          new CancelRequest(false, "Test Unbind Cancel");
 
-    UnbindOperation unbindOperation =
-         new UnbindOperation(conn, conn.nextOperationID(),
+    UnbindOperationBasis unbindOperation =
+         new UnbindOperationBasis(conn, conn.nextOperationID(),
                              conn.nextMessageID(), new ArrayList<Control>());
     assertEquals(unbindOperation.cancel(cancelRequest),
                  CancelResult.CANNOT_CANCEL);
@@ -148,8 +148,8 @@
     CancelRequest cancelRequest =
          new CancelRequest(false, "Test Unbind Cancel");
 
-    UnbindOperation unbindOperation =
-         new UnbindOperation(conn, conn.nextOperationID(),
+    UnbindOperationBasis unbindOperation =
+         new UnbindOperationBasis(conn, conn.nextOperationID(),
                              conn.nextMessageID(), new ArrayList<Control>());
     assertNull(unbindOperation.getCancelRequest());
 

--
Gitblit v1.10.0