You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@jackrabbit.apache.org by th...@apache.org on 2011/09/08 11:01:51 UTC

svn commit: r1166574 - in /jackrabbit/sandbox/microkernel/src: main/java/org/apache/jackrabbit/mk/mem/MemoryKernelImpl.java main/java/org/apache/jackrabbit/mk/mem/NodeImpl.java test/java/org/apache/jackrabbit/mk/large/LargeNodeTest.java

Author: thomasm
Date: Thu Sep  8 09:01:51 2011
New Revision: 1166574

URL: http://svn.apache.org/viewvc?rev=1166574&view=rev
Log:
Bugfix: getNodes was processed incorrectly

Modified:
    jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/mem/MemoryKernelImpl.java
    jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/mem/NodeImpl.java
    jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/large/LargeNodeTest.java

Modified: jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/mem/MemoryKernelImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/mem/MemoryKernelImpl.java?rev=1166574&r1=1166573&r2=1166574&view=diff
==============================================================================
--- jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/mem/MemoryKernelImpl.java (original)
+++ jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/mem/MemoryKernelImpl.java Thu Sep  8 09:01:51 2011
@@ -169,7 +169,7 @@ public class MemoryKernelImpl implements
                 t.read('{');
                 NodeImpl n = NodeImpl.parse(nodeMap, t, rev);
                 data = data.cloneAndAddChildNode(from, false, null, n, rev);
-                n.append(diff, -1, 0, Integer.MAX_VALUE, false);
+                n.append(diff, Integer.MAX_VALUE, 0, Integer.MAX_VALUE, false);
                 diff.newline();
                 break;
             case '-':

Modified: jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/mem/NodeImpl.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/mem/NodeImpl.java?rev=1166574&r1=1166573&r2=1166574&view=diff
==============================================================================
--- jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/mem/NodeImpl.java (original)
+++ jackrabbit/sandbox/microkernel/src/main/java/org/apache/jackrabbit/mk/mem/NodeImpl.java Thu Sep  8 09:01:51 2011
@@ -205,10 +205,10 @@ public class NodeImpl {
                 for (Iterator<String> it = childNodes.getNames(offset, count); it.hasNext();) {
                     String s = it.next();
                     json.key(s);
-                    if (depth == 0) {
+                    if (depth <= 0) {
                         json.object().endObject();
                     } else {
-                        getChildNode(s).append(json, depth - 1, 0, -1, childNodeCount);
+                        getChildNode(s).append(json, depth - 1, 0, count, childNodeCount);
                     }
                 }
             }

Modified: jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/large/LargeNodeTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/large/LargeNodeTest.java?rev=1166574&r1=1166573&r2=1166574&view=diff
==============================================================================
--- jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/large/LargeNodeTest.java (original)
+++ jackrabbit/sandbox/microkernel/src/test/java/org/apache/jackrabbit/mk/large/LargeNodeTest.java Thu Sep  8 09:01:51 2011
@@ -44,6 +44,19 @@ public class LargeNodeTest extends TestC
         mk.dispose();
     }
 
+    public void testGetNodes() {
+        head = mk.commit("/", "+\"x0\" : {\"x\": 0, \"x1\":{\"x\":1, \"x2\": {\"x\": -3}}}", head, null);
+        String s = mk.getNodes("/x0", head);
+        assertEquals("{\"x\":0,\":childNodeCount\":1,\"x1\":{\"x\":1,\":childNodeCount\":1,\"x2\":{}}}", s);
+        s = mk.getNodes("/x0", head, 1, 0, -1);
+        assertEquals("{\"x\":0,\":childNodeCount\":1,\"x1\":{\"x\":1,\":childNodeCount\":1,\"x2\":{}}}", s);
+        s = mk.getNodes("/x0", head, 0, 0, -1);
+        assertEquals("{\"x\":0,\":childNodeCount\":1,\"x1\":{}}", s);
+        s = mk.getNodes("/x0", head, 0, 0, 0);
+        assertEquals("{\"x\":0,\":childNodeCount\":1}", s);
+        head = mk.commit("/", "-\"x0\"", head, null);
+    }
+
     public void testVeryLargeNodeList() {
         if (URL.startsWith("mem:")) {
             int max = 2000;
@@ -96,7 +109,7 @@ public class LargeNodeTest extends TestC
         for (int i = 0; i < 100; i++) {
             head = mk.commit("/", "+ \"t" + i + "\": {\"x\":" + i + "}", head, "");
         }
-        assertEquals("{\":childNodeCount\":101,\"test\":{\":childNodeCount\":3}," +
+        assertEquals("{\":childNodeCount\":101,\"test\":{\":childNodeCount\":3,\"a\":{},\"b\":{},\"c\":{}}," +
                 "\"t0\":{\"x\":0,\":childNodeCount\":0}," +
                 "\"t1\":{\"x\":1,\":childNodeCount\":0}," +
                 "\"t2\":{\"x\":2,\":childNodeCount\":0}," +