You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by st...@apache.org on 2012/02/07 18:18:38 UTC

svn commit: r1241525 - in /jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model: ChildNodeEntriesTree.java MutableNode.java

Author: stefan
Date: Tue Feb  7 17:18:38 2012
New Revision: 1241525

URL: http://svn.apache.org/viewvc?rev=1241525&view=rev
Log:
child node entries: switch to  htree structure when exceeding a certain threshold

Modified:
    jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/ChildNodeEntriesTree.java
    jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/MutableNode.java

Modified: jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/ChildNodeEntriesTree.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/ChildNodeEntriesTree.java?rev=1241525&r1=1241524&r2=1241525&view=diff
==============================================================================
--- jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/ChildNodeEntriesTree.java (original)
+++ jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/ChildNodeEntriesTree.java Tue Feb  7 17:18:38 2012
@@ -93,7 +93,8 @@ public class ChildNodeEntriesTree implem
             return null;
         }
         if (entry instanceof ChildNodeEntry) {
-            return (ChildNodeEntry) entry;
+            ChildNodeEntry cne = (ChildNodeEntry) entry;
+            return cne.getName().equals(name) ? cne : null;
         } else if (entry instanceof BucketInfo) {
             BucketInfo bi = (BucketInfo) entry;
             ChildNodeEntries entries = retrieveBucket(bi.getId());

Modified: jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/MutableNode.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/MutableNode.java?rev=1241525&r1=1241524&r2=1241525&view=diff
==============================================================================
--- jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/MutableNode.java (original)
+++ jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/model/MutableNode.java Tue Feb  7 17:18:38 2012
@@ -20,6 +20,8 @@ import org.apache.jackrabbit.mk.store.Pe
 import org.apache.jackrabbit.mk.store.RevisionProvider;
 import org.apache.jackrabbit.mk.store.RevisionStore;
 
+import java.util.Iterator;
+
 /**
  *
  */
@@ -34,7 +36,17 @@ public class MutableNode extends Abstrac
     }
 
     public ChildNodeEntry add(ChildNodeEntry newEntry) {
-        return childEntries.add(newEntry);
+        ChildNodeEntry existing = childEntries.add(newEntry);
+        if (childEntries.getCount() > ChildNodeEntries.CAPACITY_THRESHOLD
+                && childEntries.inlined()) {
+            ChildNodeEntries entries = new ChildNodeEntriesTree(provider);
+            Iterator<ChildNodeEntry> iter = childEntries.getEntries(0, -1);
+            while (iter.hasNext()) {
+                entries.add(iter.next());
+            }
+            childEntries = entries;
+        }
+        return existing;
     }
     
     public ChildNodeEntry remove(String name) {