You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@directory.apache.org by ka...@apache.org on 2008/05/26 22:08:58 UTC

svn commit: r660290 - in /directory/apacheds/branches/bigbang/core-avl/src: main/java/org/apache/directory/server/core/avltree/AvlTree.java test/java/org/apache/directory/server/core/avltree/AvlTreeTest.java

Author: kayyagari
Date: Mon May 26 13:08:54 2008
New Revision: 660290

URL: http://svn.apache.org/viewvc?rev=660290&view=rev
Log:
AvlTree - fixed an issue with hard coded null value while detaching two nodes
AvlTreeTest - added a test case for the above fix

Modified:
    directory/apacheds/branches/bigbang/core-avl/src/main/java/org/apache/directory/server/core/avltree/AvlTree.java
    directory/apacheds/branches/bigbang/core-avl/src/test/java/org/apache/directory/server/core/avltree/AvlTreeTest.java

Modified: directory/apacheds/branches/bigbang/core-avl/src/main/java/org/apache/directory/server/core/avltree/AvlTree.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/core-avl/src/main/java/org/apache/directory/server/core/avltree/AvlTree.java?rev=660290&r1=660289&r2=660290&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/core-avl/src/main/java/org/apache/directory/server/core/avltree/AvlTree.java (original)
+++ directory/apacheds/branches/bigbang/core-avl/src/main/java/org/apache/directory/server/core/avltree/AvlTree.java Mon May 26 13:08:54 2008
@@ -568,7 +568,7 @@
 	    {
 	        if( node == parentNode.left )
 	        {
-	            parentNode.left = null;
+	            parentNode.left = node.left;
 	        }
 	        else if( node == parentNode.right )
 	        {

Modified: directory/apacheds/branches/bigbang/core-avl/src/test/java/org/apache/directory/server/core/avltree/AvlTreeTest.java
URL: http://svn.apache.org/viewvc/directory/apacheds/branches/bigbang/core-avl/src/test/java/org/apache/directory/server/core/avltree/AvlTreeTest.java?rev=660290&r1=660289&r2=660290&view=diff
==============================================================================
--- directory/apacheds/branches/bigbang/core-avl/src/test/java/org/apache/directory/server/core/avltree/AvlTreeTest.java (original)
+++ directory/apacheds/branches/bigbang/core-avl/src/test/java/org/apache/directory/server/core/avltree/AvlTreeTest.java Mon May 26 13:08:54 2008
@@ -400,10 +400,29 @@
         }
 
         tree.remove( 13 );
-
+        
         assertEquals( 11, ( int ) tree.find( 8 ).right.key );
     }
 
+   
+    @Test
+    public void testRemoveInLeftSubtree()
+    {
+        int[] keys = { 8, 4, 12, 6, 7, 16, 10, 5, 11, 9, 17, 5, 14, 2, 13, 1, 3 }; // order is important to produce the expected tree
+        
+        for( int key:keys )
+        {
+            tree.insert( key );
+        }
+
+        tree.remove( 16 );
+
+        assertEquals( 8, ( int ) tree.getRoot().key );
+        assertEquals( 12, ( int ) tree.getRoot().right.key );
+        assertEquals( 14, ( int ) tree.getRoot().right.right.key );
+        assertEquals( 13, ( int ) tree.find( 14 ).left.key );
+    }
+    
     
     private String getLinkedText() 
     {