From 12300e9ede17e7c8b1e35436b88565b285c3fb70 Mon Sep 17 00:00:00 2001
From: Jean-Noel Rouvignac <jean-noel.rouvignac@forgerock.com>
Date: Tue, 03 Feb 2015 14:17:00 +0000
Subject: [PATCH] OPENDJ-1762 (CR-5923) verify-index on non existing index fails with NullPointerException when the server is stopped

---
 opendj3-server-dev/src/server/org/opends/server/backends/persistit/PersistItStorage.java |   12 ++++++++++--
 opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VerifyJob.java        |    4 ++++
 opendj3-server-dev/src/server/org/opends/server/backends/pluggable/BackendImpl.java      |    2 +-
 3 files changed, 15 insertions(+), 3 deletions(-)

diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/persistit/PersistItStorage.java b/opendj3-server-dev/src/server/org/opends/server/backends/persistit/PersistItStorage.java
index df2b606..bee6283 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/persistit/PersistItStorage.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/persistit/PersistItStorage.java
@@ -592,7 +592,11 @@
         }
         catch (final StorageRuntimeException e)
         {
-          throw (Exception) e.getCause();
+          if (e.getCause() != null)
+          {
+              throw (Exception) e.getCause();
+          }
+          throw e;
         }
         finally
         {
@@ -655,7 +659,11 @@
         }
         catch (final StorageRuntimeException e)
         {
-          throw (Exception) e.getCause();
+          if (e.getCause() != null)
+          {
+              throw (Exception) e.getCause();
+          }
+          throw e;
         }
         finally
         {
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/BackendImpl.java b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/BackendImpl.java
index 0651ad6..9d0d92d 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/BackendImpl.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/BackendImpl.java
@@ -947,7 +947,7 @@
       {
         return new DirectoryException(
             DirectoryServer.getServerErrorResultCode(),
-            LocalizableMessage.raw(e.getMessage()));
+            LocalizableMessage.raw(e.getMessage()), e);
       }
     }
     if (/*e instanceof EnvironmentFailureException && */ !rootContainer.isValid()) {
diff --git a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VerifyJob.java b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VerifyJob.java
index c3dc91a..ead972c 100644
--- a/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VerifyJob.java
+++ b/opendj3-server-dev/src/server/org/opends/server/backends/pluggable/VerifyJob.java
@@ -150,6 +150,10 @@
         }
       });
     }
+    catch (StorageRuntimeException e)
+    {
+      throw e;
+    }
     catch (Exception e)
     {
       throw new StorageRuntimeException(e);

--
Gitblit v1.10.0