From 24ada0a1d9bff142148e014aa4b18790ce8489e1 Mon Sep 17 00:00:00 2001
From: Yannick Lecaillez <yannick.lecaillez@forgerock.com>
Date: Mon, 18 May 2015 15:08:15 +0000
Subject: [PATCH] OPENDJ-2002: Wrong number of entries presented in output of status command after subtree delete.

---
 opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java |   11 +++++++++++
 1 files changed, 11 insertions(+), 0 deletions(-)

diff --git a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java
index 54f6eff..fdaf5d4 100644
--- a/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java
+++ b/opendj-sdk/opendj-server-legacy/src/main/java/org/opends/server/backends/pluggable/EntryContainer.java
@@ -1611,6 +1611,17 @@
 
             int subordinateEntriesDeleted = 0;
 
+            // Since everything under targetDN will be deleted, we only have to decrement the counter of targetDN's
+            // parent. Other counters will be removed in deleteEntry()
+            final DN parentDN = getParentWithinBase(entryDN);
+            if (parentDN != null) {
+              final EntryID parentID = dn2id.get(txn, parentDN);
+              if ( parentID == null ) {
+                throw new StorageRuntimeException(ERR_MISSING_DN2ID_RECORD.get(parentDN).toString());
+              }
+              id2childrenCount.addDelta(txn, parentID, -1);
+            }
+
             Cursor<ByteString, ByteString> cursor = txn.openCursor(dn2id.getName());
             try
             {

--
Gitblit v1.10.0