Index: oak-it/src/test/java/org/apache/jackrabbit/oak/core/RootTest.java =================================================================== --- oak-it/src/test/java/org/apache/jackrabbit/oak/core/RootTest.java (Revision 1857239) +++ oak-it/src/test/java/org/apache/jackrabbit/oak/core/RootTest.java (Arbeitskopie) @@ -407,6 +407,41 @@ r.getChild("N6").remove(); root.commit(); } + + @Test + public void existsAfterRebase() throws Exception { + Root root1 = session.getLatestRoot(); + + root1.getTree("/").addChild("foo"); + root1.commit(); + + Root root2 = session.getLatestRoot(); + Tree f = root2.getTree("/foo"); + Tree b = root2.getTree("/bar"); + assertTrue(f.exists()); + assertFalse(b.exists()); + + root1.getTree("/").addChild("bar"); + root1.commit(); + + root2.rebase(); + assertTrue(f.exists()); + assertTrue(b.exists()); + + assertTrue(root1.getTree("/bar").remove()); + root1.commit(); + + root2.rebase(); + assertTrue(f.exists()); + assertFalse(b.exists()); + + assertTrue(root1.getTree("/foo").remove()); + root1.commit(); + + root2.rebase(); + assertFalse(f.exists()); + assertFalse(b.exists()); + } private static void checkEqual(Tree tree1, Tree tree2) { assertEquals(tree1.getChildrenCount(Long.MAX_VALUE), tree2.getChildrenCount(Long.MAX_VALUE));