From 2cf4412179a4ca8610d7fbb2108040377290bf82 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Fri, 06 Jun 2014 13:12:34 +0000
Subject: [PATCH] OPENDJ-1453 (CR-3697) Change time heart beat change numbers should be synced with updates

---
 opends/src/server/org/opends/server/extensions/TraditionalWorkerThread.java |   16 +++++++---------
 1 files changed, 7 insertions(+), 9 deletions(-)

diff --git a/opends/src/server/org/opends/server/extensions/TraditionalWorkerThread.java b/opends/src/server/org/opends/server/extensions/TraditionalWorkerThread.java
index d255608..e3c2869 100644
--- a/opends/src/server/org/opends/server/extensions/TraditionalWorkerThread.java
+++ b/opends/src/server/org/opends/server/extensions/TraditionalWorkerThread.java
@@ -22,11 +22,10 @@
  *
  *
  *      Copyright 2006-2010 Sun Microsystems, Inc.
- *      Portions copyright 2011-2013 ForgeRock AS
+ *      Portions copyright 2011-2014 ForgeRock AS
  */
 package org.opends.server.extensions;
 
-
 import java.util.Map;
 
 import org.opends.messages.Message;
@@ -38,12 +37,11 @@
 import org.opends.server.types.DisconnectReason;
 import org.opends.server.types.Operation;
 
+import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.loggers.ErrorLogger.*;
 import static org.opends.server.loggers.debug.DebugLogger.*;
-import static org.opends.messages.CoreMessages.*;
 import static org.opends.server.util.StaticUtils.*;
 
-
 /**
  * This class defines a data structure for storing and interacting with a
  * Directory Server worker thread.
@@ -63,7 +61,7 @@
   private volatile boolean shutdownRequested;
 
   /**
-   * Indicates whether this thread was stopped because the server threadnumber
+   * Indicates whether this thread was stopped because the server thread number
    * was reduced.
    */
   private boolean stoppedByReducedThreadNumber;
@@ -72,13 +70,13 @@
   private boolean waitingForWork;
 
   /** The operation that this worker thread is currently processing. */
-  private Operation operation;
+  private volatile Operation operation;
 
   /** The handle to the actual thread for this worker thread. */
   private Thread workerThread;
 
   /** The work queue that this worker thread will service. */
-  private TraditionalWorkQueue workQueue;
+  private final TraditionalWorkQueue workQueue;
 
 
 
@@ -129,7 +127,7 @@
    */
   public boolean isActive()
   {
-    return (isAlive() && (operation != null));
+    return isAlive() && operation != null;
   }
 
 
@@ -148,7 +146,7 @@
       try
       {
         waitingForWork = true;
-        operation = null;
+        operation = null; // this line is necessary because next line can block
         operation = workQueue.nextOperation(this);
         waitingForWork = false;
 

--
Gitblit v1.10.0