From 499a9cf70ba31cc7a7589a75fc28ac64cc7ef04d Mon Sep 17 00:00:00 2001
From: pgamba <pgamba@localhost>
Date: Tue, 30 Jan 2007 14:45:24 +0000
Subject: [PATCH] Fix for the deadlock appeared in the last daily build. The root cause is a concurrent access to the db resource of the changelog server when the shutdown() method is called.

---
 opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/ChangelogCache.java |   10 +++++++---
 1 files changed, 7 insertions(+), 3 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/ChangelogCache.java b/opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/ChangelogCache.java
index 5ebc5df..bb29fc6 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/ChangelogCache.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/synchronization/changelog/ChangelogCache.java
@@ -22,7 +22,7 @@
  * CDDL HEADER END
  *
  *
- *      Portions Copyright 2006 Sun Microsystems, Inc.
+ *      Portions Copyright 2006-2007 Sun Microsystems, Inc.
  */
 package org.opends.server.synchronization.changelog;
 
@@ -535,9 +535,13 @@
     }
 
     // Shutdown the dbHandlers
-    for (DbHandler dbHandler : sourceDbHandlers.values())
+    synchronized (sourceDbHandlers)
     {
-      dbHandler.shutdown();
+      for (DbHandler dbHandler : sourceDbHandlers.values())
+      {
+        dbHandler.shutdown();
+      }
+      sourceDbHandlers.clear();
     }
   }
 

--
Gitblit v1.10.0