From f09c069e92d051036af2a969fe5289cb7c4826ba Mon Sep 17 00:00:00 2001
From: Matthew Swift <matthew.swift@forgerock.com>
Date: Mon, 26 Oct 2015 08:22:49 +0000
Subject: [PATCH] OPENDJ-2349: fix deadlocks during subtree deletes and moddn

---
 opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java |   45 +++++++++++++++++++++++++++++++++++++++++++--
 1 files changed, 43 insertions(+), 2 deletions(-)

diff --git a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java
index 8c491f8..875b0b1 100644
--- a/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java
+++ b/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/OnDiskMergeImporter.java
@@ -1704,6 +1704,12 @@
         }
 
         @Override
+        public void delete() throws NoSuchElementException, UnsupportedOperationException
+        {
+          throw new UnsupportedOperationException();
+        }
+
+        @Override
         public void close()
         {
           key = value = null;
@@ -1903,6 +1909,12 @@
         }
 
         @Override
+        public void delete() throws NoSuchElementException, UnsupportedOperationException
+        {
+          throw new UnsupportedOperationException();
+        }
+
+        @Override
         public void close()
         {
           key = value = null;
@@ -1994,6 +2006,12 @@
       }
 
       @Override
+      public void delete() throws NoSuchElementException, UnsupportedOperationException
+      {
+        throw new UnsupportedOperationException();
+      }
+
+      @Override
       public void close()
       {
         key = null;
@@ -2116,6 +2134,12 @@
       }
 
       @Override
+      public void delete() throws NoSuchElementException, UnsupportedOperationException
+      {
+        throw new UnsupportedOperationException();
+      }
+
+      @Override
       public void close()
       {
         closeSilently(orderedCursors);
@@ -2231,8 +2255,7 @@
           totalNumberOfEntries++;
         }
       }
-      // -1 because baseDN is not counted
-      id2count.importPutTotalCount(asImporter(id2CountChunk), Math.max(0, totalNumberOfEntries - 1));
+      id2count.importPutTotalCount(asImporter(id2CountChunk), Math.max(0, totalNumberOfEntries));
 
       new ChunkCopierTask(reporter, id2CountChunk, id2count.getName(), importer).call();
       return null;
@@ -2508,6 +2531,12 @@
         }
 
         @Override
+        public void delete() throws NoSuchElementException, UnsupportedOperationException
+        {
+          throw new UnsupportedOperationException();
+        }
+
+        @Override
         public void close()
         {
           // nothing to do
@@ -3282,6 +3311,12 @@
     }
 
     @Override
+    public void delete() throws NoSuchElementException, UnsupportedOperationException
+    {
+      throw new UnsupportedOperationException();
+    }
+
+    @Override
     public long getNbBytesRead()
     {
       return bytesRead;
@@ -3336,6 +3371,12 @@
     }
 
     @Override
+    public void delete() throws NoSuchElementException, UnsupportedOperationException
+    {
+      delegate.delete();
+    }
+
+    @Override
     public void close()
     {
       delegate.close();

--
Gitblit v1.10.0