From 67feeafd40da846ef55fb776581c6b06bdabe482 Mon Sep 17 00:00:00 2001
From: ludovicp <ludovicp@localhost>
Date: Fri, 25 Jun 2010 10:30:42 +0000
Subject: [PATCH] Fixes an issue when deleting a password policy

---
 opendj-sdk/opends/src/server/org/opends/server/api/DITCacheMap.java |   37 +++++++++++++++++++++++--------------
 1 files changed, 23 insertions(+), 14 deletions(-)

diff --git a/opendj-sdk/opends/src/server/org/opends/server/api/DITCacheMap.java b/opendj-sdk/opends/src/server/org/opends/server/api/DITCacheMap.java
index 6f2d335..543cfab 100644
--- a/opendj-sdk/opends/src/server/org/opends/server/api/DITCacheMap.java
+++ b/opendj-sdk/opends/src/server/org/opends/server/api/DITCacheMap.java
@@ -116,7 +116,7 @@
   private Map<DN,Node<T>> ditCacheMap;
 
   /**
-   * Default contructor.
+   * Default constructor.
    */
   public DITCacheMap()
   {
@@ -124,7 +124,7 @@
   }
 
   /**
-   * Contructs a new DITCacheMap from a given Map.
+   * Constructs a new DITCacheMap from a given Map.
    * @param m existing Map to construct new
    *          DITCacheMap from.
    */
@@ -683,6 +683,13 @@
       {
         if (rootNode != null)
         {
+          if (node == rootNode)
+          {
+            if (rootNode.element != null)
+            {
+              return true;
+            }
+          }
           while (node != null)
           {
             if (node.element != null)
@@ -695,13 +702,10 @@
             }
             else
             {
-              if (node != rootNode)
+              while ((node.next == null) &&
+                     (node.parent != rootNode))
               {
-                while ((node.next == null) &&
-                       (node.parent != rootNode))
-                {
-                  node = node.parent;
-                }
+                node = node.parent;
               }
               node = node.next;
             }
@@ -719,6 +723,14 @@
 
         if (rootNode != null)
         {
+          if (node == rootNode)
+          {
+            node = rootNode.child;
+            if (rootNode.element != null)
+            {
+              return rootNode.element;
+            }
+          }
           while (node != null)
           {
             if (node.element != null)
@@ -735,13 +747,10 @@
             }
             else
             {
-              if (node != rootNode)
+              while ((node.next == null) &&
+                     (node.parent != rootNode))
               {
-                while ((node.next == null) &&
-                       (node.parent != rootNode))
-                {
-                  node = node.parent;
-                }
+                node = node.parent;
               }
               node = node.next;
             }

--
Gitblit v1.10.0