From 2bdda99416ddf25d1122d376cfd474ce31451b8a Mon Sep 17 00:00:00 2001
From: Violette Roche-Montane <violette.roche-montane@forgerock.com>
Date: Tue, 23 Jul 2013 06:51:49 +0000
Subject: [PATCH] CR-2024 OPENDJ-1078 OpenDJ doesn't release server.lock after upgrade

---
 opends/src/server/org/opends/server/tools/upgrade/Upgrade.java |   21 +++++++++++----------
 1 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/opends/src/server/org/opends/server/tools/upgrade/Upgrade.java b/opends/src/server/org/opends/server/tools/upgrade/Upgrade.java
index 830f4a5..c3faba3 100644
--- a/opends/src/server/org/opends/server/tools/upgrade/Upgrade.java
+++ b/opends/src/server/org/opends/server/tools/upgrade/Upgrade.java
@@ -532,20 +532,21 @@
   {
     final String lockFile = LockFileManager.getServerLockFileName();
 
-    final Message message = ERR_UPGRADE_REQUIRES_SERVER_OFFLINE.get();
+    final StringBuilder failureReason = new StringBuilder();
     try
     {
-      final StringBuilder failureReason = new StringBuilder();
-      if (!LockFileManager.acquireExclusiveLock(lockFile, failureReason))
-      {
-        throw new ClientException(EXIT_CODE_ERROR, message);
-      }
-    }
-    catch (Exception e)
-    {
       // Assume that if we cannot acquire the lock file the server is
       // running.
-      throw new ClientException(EXIT_CODE_ERROR, message);
+      if (!LockFileManager.acquireExclusiveLock(lockFile, failureReason))
+      {
+        LOG.log(Level.SEVERE, failureReason.toString());
+        throw new ClientException(EXIT_CODE_ERROR,
+            ERR_UPGRADE_REQUIRES_SERVER_OFFLINE.get());
+      }
+    }
+    finally
+    {
+      LockFileManager.releaseLock(lockFile, failureReason);
     }
   }
 

--
Gitblit v1.10.0