From bc09e934b9ef38957f563f7b34da85e8b2872860 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 04 Nov 2014 15:39:08 +0000
Subject: [PATCH] LocalBackend*Operation.java: Replaced use of BooleanHolder with AtomicBoolean (there is no penalty since there is no concurrency involved).

---
 opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java   |    9 ++--
 /dev/null                                                                                                       |   56 ----------------------------
 opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendSearchOperation.java   |    9 ++--
 opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java   |    9 ++--
 opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendCompareOperation.java  |    9 ++--
 opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java |    9 ++--
 opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java      |    9 ++--
 7 files changed, 30 insertions(+), 80 deletions(-)

diff --git a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/BooleanHolder.java b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/BooleanHolder.java
deleted file mode 100644
index eaf9cda..0000000
--- a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/BooleanHolder.java
+++ /dev/null
@@ -1,56 +0,0 @@
-/*
- * 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 legal-notices/CDDLv1_0.txt
- * or http://forgerock.org/license/CDDLv1.0.html.
- * 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 legal-notices/CDDLv1_0.txt.
- * 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
- *
- *
- *      Copyright 2013 ForgeRock AS
- */
-package org.opends.server.workflowelement.localbackend;
-
-/**
- * This class holds a boolean value. Allow to use in/out boolean parameters,
- * which contain data to pass into the method like a regular parameter, but can
- * also be used to return data from the method.
- */
-class BooleanHolder
-{
-
-  /** The boolean value held in this class. */
-  boolean value;
-
-  /**
-   * Default ctor.
-   *
-   * @param defaultValue
-   *          the default value for this object
-   */
-  public BooleanHolder(boolean defaultValue)
-  {
-    this.value = defaultValue;
-  }
-
-  /** {@inheritDoc} */
-  @Override
-  public String toString()
-  {
-    return Boolean.toString(this.value);
-  }
-}
diff --git a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java
index 639a926..a8b80c5 100644
--- a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java
+++ b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendAddOperation.java
@@ -30,6 +30,7 @@
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
+import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.locks.Lock;
 
 import org.forgerock.i18n.LocalizableMessage;
@@ -172,7 +173,7 @@
 
     try
     {
-      BooleanHolder executePostOpPlugins = new BooleanHolder(false);
+      AtomicBoolean executePostOpPlugins = new AtomicBoolean(false);
       processAdd(clientConnection, executePostOpPlugins);
 
       PluginConfigManager pluginConfigManager =
@@ -186,7 +187,7 @@
           pluginConfigManager.invokePostSynchronizationAddPlugins(this);
         }
       }
-      else if (executePostOpPlugins.value)
+      else if (executePostOpPlugins.get())
       {
         // FIXME -- Should this also be done while holding the locks?
         PluginResult.PostOperation postOpResult =
@@ -225,7 +226,7 @@
   }
 
   private void processAdd(ClientConnection clientConnection,
-      BooleanHolder executePostOpPlugins) throws CanceledOperationException
+      AtomicBoolean executePostOpPlugins) throws CanceledOperationException
   {
     // Process the entry DN and set of attributes to convert them from their
     // raw forms as provided by the client to the forms required for the rest
@@ -452,7 +453,7 @@
       // Invoke the pre-operation add plugins.
       if (!isSynchronizationOperation())
       {
-        executePostOpPlugins.value = true;
+        executePostOpPlugins.set(true);
         PluginResult.PreOperation preOpResult =
             DirectoryServer.getPluginConfigManager()
                 .invokePreOperationAddPlugins(this);
diff --git a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendCompareOperation.java b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendCompareOperation.java
index 311b145..813514d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendCompareOperation.java
+++ b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendCompareOperation.java
@@ -28,6 +28,7 @@
 
 import java.util.List;
 import java.util.Set;
+import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.locks.Lock;
 
 import org.forgerock.i18n.LocalizableMessage;
@@ -132,14 +133,14 @@
 
     try
     {
-      BooleanHolder executePostOpPlugins = new BooleanHolder(false);
+      AtomicBoolean executePostOpPlugins = new AtomicBoolean(false);
       processCompare(executePostOpPlugins);
 
       // Check for a request to cancel this operation.
       checkIfCanceled(false);
 
       // Invoke the post-operation compare plugins.
-      if (executePostOpPlugins.value)
+      if (executePostOpPlugins.get())
       {
         PluginResult.PostOperation postOpResult =
             DirectoryServer.getPluginConfigManager()
@@ -159,7 +160,7 @@
     }
   }
 
-  private void processCompare(BooleanHolder executePostOpPlugins)
+  private void processCompare(AtomicBoolean executePostOpPlugins)
       throws CanceledOperationException
   {
     // Process the entry DN to convert it from the raw form to the form
@@ -257,7 +258,7 @@
 
 
       // Invoke the pre-operation compare plugins.
-      executePostOpPlugins.value = true;
+      executePostOpPlugins.set(true);
       PluginResult.PreOperation preOpResult =
           DirectoryServer.getPluginConfigManager()
               .invokePreOperationComparePlugins(this);
diff --git a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java
index a77181c..96ba7b2 100644
--- a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java
+++ b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendDeleteOperation.java
@@ -27,6 +27,7 @@
 package org.opends.server.workflowelement.localbackend;
 
 import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.locks.Lock;
 
 import org.forgerock.i18n.LocalizableMessage;
@@ -145,7 +146,7 @@
 
     try
     {
-      BooleanHolder executePostOpPlugins = new BooleanHolder(false);
+      AtomicBoolean executePostOpPlugins = new AtomicBoolean(false);
       processDelete(executePostOpPlugins);
 
       // Invoke the post-operation or post-synchronization delete plugins.
@@ -158,7 +159,7 @@
           pluginConfigManager.invokePostSynchronizationDeletePlugins(this);
         }
       }
-      else if (executePostOpPlugins.value)
+      else if (executePostOpPlugins.get())
       {
         PluginResult.PostOperation postOpResult =
             pluginConfigManager.invokePostOperationDeletePlugins(this);
@@ -195,7 +196,7 @@
     }
   }
 
-  private void processDelete(BooleanHolder executePostOpPlugins)
+  private void processDelete(AtomicBoolean executePostOpPlugins)
       throws CanceledOperationException
   {
     // Process the entry DN to convert it from its raw form as provided by the
@@ -272,7 +273,7 @@
       // invoke the pre-delete plugins.
       if (!isSynchronizationOperation())
       {
-        executePostOpPlugins.value = true;
+        executePostOpPlugins.set(true);
         PluginResult.PreOperation preOpResult =
             DirectoryServer.getPluginConfigManager()
                 .invokePreOperationDeletePlugins(this);
diff --git a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java
index ede3a9c..4a27b6b 100644
--- a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java
+++ b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyDNOperation.java
@@ -29,6 +29,7 @@
 import java.util.LinkedList;
 import java.util.List;
 import java.util.ListIterator;
+import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.locks.Lock;
 
 import org.forgerock.i18n.LocalizableMessage;
@@ -184,7 +185,7 @@
 
     try
     {
-      BooleanHolder executePostOpPlugins = new BooleanHolder(false);
+      AtomicBoolean executePostOpPlugins = new AtomicBoolean(false);
       processModifyDN(executePostOpPlugins);
 
       // Invoke the post-operation or post-synchronization modify DN plugins.
@@ -197,7 +198,7 @@
           pluginConfigManager.invokePostSynchronizationModifyDNPlugins(this);
         }
       }
-      else if (executePostOpPlugins.value)
+      else if (executePostOpPlugins.get())
       {
         PluginResult.PostOperation postOpResult =
             pluginConfigManager.invokePostOperationModifyDNPlugins(this);
@@ -234,7 +235,7 @@
     }
   }
 
-  private void processModifyDN(BooleanHolder executePostOpPlugins)
+  private void processModifyDN(AtomicBoolean executePostOpPlugins)
       throws CanceledOperationException
   {
     // Process the entry DN, newRDN, and newSuperior elements from their raw
@@ -423,7 +424,7 @@
         // to identify which changes were made after they're done.
         int modCount = modifications.size();
 
-        executePostOpPlugins.value = true;
+        executePostOpPlugins.set(true);
         PluginResult.PreOperation preOpResult =
             DirectoryServer.getPluginConfigManager()
                 .invokePreOperationModifyDNPlugins(this);
diff --git a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
index d32f87f..e8bdd16 100644
--- a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
+++ b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendModifyOperation.java
@@ -30,6 +30,7 @@
 import java.util.LinkedList;
 import java.util.List;
 import java.util.ListIterator;
+import java.util.concurrent.atomic.AtomicBoolean;
 import java.util.concurrent.locks.Lock;
 
 import org.forgerock.i18n.LocalizableMessage;
@@ -304,7 +305,7 @@
 
     try
     {
-      BooleanHolder executePostOpPlugins = new BooleanHolder(false);
+      AtomicBoolean executePostOpPlugins = new AtomicBoolean(false);
       processModify(executePostOpPlugins);
 
       // If the password policy request control was included, then make sure we
@@ -325,7 +326,7 @@
           pluginConfigManager.invokePostSynchronizationModifyPlugins(this);
         }
       }
-      else if (executePostOpPlugins.value)
+      else if (executePostOpPlugins.get())
       {
         // FIXME -- Should this also be done while holding the locks?
         PluginResult.PostOperation postOpResult =
@@ -365,7 +366,7 @@
   }
 
 
-  private void processModify(BooleanHolder executePostOpPlugins)
+  private void processModify(AtomicBoolean executePostOpPlugins)
       throws CanceledOperationException
   {
     entryDN = getEntryDN();
@@ -537,7 +538,7 @@
       // Invoke the pre-operation modify plugins.
       if (!isSynchronizationOperation())
       {
-        executePostOpPlugins.value = true;
+        executePostOpPlugins.set(true);
         PluginResult.PreOperation preOpResult =
             DirectoryServer.getPluginConfigManager()
                 .invokePreOperationModifyPlugins(this);
diff --git a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendSearchOperation.java b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendSearchOperation.java
index a62b57d..8f1299e 100644
--- a/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendSearchOperation.java
+++ b/opendj3-server-dev/src/server/org/opends/server/workflowelement/localbackend/LocalBackendSearchOperation.java
@@ -27,6 +27,7 @@
 package org.opends.server.workflowelement.localbackend;
 
 import java.util.List;
+import java.util.concurrent.atomic.AtomicBoolean;
 
 import org.forgerock.i18n.slf4j.LocalizedLogger;
 import org.opends.server.api.Backend;
@@ -104,14 +105,14 @@
 
     try
     {
-      BooleanHolder executePostOpPlugins = new BooleanHolder(false);
+      AtomicBoolean executePostOpPlugins = new AtomicBoolean(false);
       processSearch(executePostOpPlugins);
 
       // Check for a request to cancel this operation.
       checkIfCanceled(false);
 
       // Invoke the post-operation search plugins.
-      if (executePostOpPlugins.value)
+      if (executePostOpPlugins.get())
       {
         PluginResult.PostOperation postOpResult =
             DirectoryServer.getPluginConfigManager()
@@ -131,7 +132,7 @@
     }
   }
 
-  private void processSearch(BooleanHolder executePostOpPlugins) throws CanceledOperationException
+  private void processSearch(AtomicBoolean executePostOpPlugins) throws CanceledOperationException
   {
     // Process the search base and filter to convert them from their raw forms
     // as provided by the client to the forms required for the rest of the
@@ -187,7 +188,7 @@
 
 
     // Invoke the pre-operation search plugins.
-    executePostOpPlugins.value = true;
+    executePostOpPlugins.set(true);
     PluginResult.PreOperation preOpResult =
         DirectoryServer.getPluginConfigManager()
             .invokePreOperationSearchPlugins(this);

--
Gitblit v1.10.0