You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by al...@apache.org on 2014/08/29 09:54:04 UTC

svn commit: r1621256 - in /jackrabbit/oak/branches/1.0: ./ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdateTest.java

Author: alexparvulescu
Date: Fri Aug 29 07:54:03 2014
New Revision: 1621256

URL: http://svn.apache.org/r1621256
Log:
OAK-2059 Reindexing can include hidden nodes in the index
 - merged rev 1621201


Modified:
    jackrabbit/oak/branches/1.0/   (props changed)
    jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java
    jackrabbit/oak/branches/1.0/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdateTest.java

Propchange: jackrabbit/oak/branches/1.0/
------------------------------------------------------------------------------
  Merged /jackrabbit/oak/trunk:r1621201

Modified: jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java?rev=1621256&r1=1621255&r2=1621256&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java (original)
+++ jackrabbit/oak/branches/1.0/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java Fri Aug 29 07:54:03 2014
@@ -28,6 +28,9 @@ import static org.apache.jackrabbit.oak.
 import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.REINDEX_PROPERTY_NAME;
 import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.TYPE_PROPERTY_NAME;
 import static org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState.MISSING_NODE;
+import static org.apache.jackrabbit.oak.spi.commit.CompositeEditor.compose;
+import static org.apache.jackrabbit.oak.spi.commit.EditorDiff.process;
+import static org.apache.jackrabbit.oak.spi.commit.VisibleEditor.wrap;
 
 import java.util.HashMap;
 import java.util.List;
@@ -39,16 +42,14 @@ import javax.annotation.Nonnull;
 
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.PropertyState;
-import org.apache.jackrabbit.oak.spi.commit.CompositeEditor;
 import org.apache.jackrabbit.oak.spi.commit.Editor;
-import org.apache.jackrabbit.oak.spi.commit.EditorDiff;
 import org.apache.jackrabbit.oak.spi.state.NodeBuilder;
 import org.apache.jackrabbit.oak.spi.state.NodeState;
-
-import com.google.common.base.Objects;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
+import com.google.common.base.Objects;
+
 public class IndexUpdate implements Editor {
     private final Logger log = LoggerFactory.getLogger(getClass());
 
@@ -118,8 +119,8 @@ public class IndexUpdate implements Edit
         }
 
         // no-op when reindex is empty
-        CommitFailedException exception = EditorDiff.process(
-                CompositeEditor.compose(reindex.values()), MISSING_NODE, after);
+        CommitFailedException exception = process(
+                wrap(compose(reindex.values())), MISSING_NODE, after);
         if (exception != null) {
             throw exception;
         }
@@ -231,7 +232,7 @@ public class IndexUpdate implements Edit
                 children.add(child);
             }
         }
-        return CompositeEditor.compose(children);
+        return compose(children);
     }
 
     @Override @Nonnull
@@ -246,7 +247,7 @@ public class IndexUpdate implements Edit
                 children.add(child);
             }
         }
-        return CompositeEditor.compose(children);
+        return compose(children);
     }
 
     @Override @CheckForNull
@@ -259,7 +260,7 @@ public class IndexUpdate implements Edit
                 children.add(child);
             }
         }
-        return CompositeEditor.compose(children);
+        return compose(children);
     }
 
     protected Set<String> getReindexedDefinitions() {

Modified: jackrabbit/oak/branches/1.0/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdateTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.0/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdateTest.java?rev=1621256&r1=1621255&r2=1621256&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.0/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdateTest.java (original)
+++ jackrabbit/oak/branches/1.0/oak-core/src/test/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdateTest.java Fri Aug 29 07:54:03 2014
@@ -35,6 +35,7 @@ import org.apache.jackrabbit.oak.api.Pro
 import org.apache.jackrabbit.oak.api.Type;
 import org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexEditorProvider;
 import org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexLookup;
+import org.apache.jackrabbit.oak.plugins.memory.EmptyNodeState;
 import org.apache.jackrabbit.oak.query.QueryEngineSettings;
 import org.apache.jackrabbit.oak.query.ast.SelectorImpl;
 import org.apache.jackrabbit.oak.query.index.FilterImpl;
@@ -206,6 +207,38 @@ public class IndexUpdateTest {
     }
 
     @Test
+    public void testReindexHidden() throws Exception {
+        NodeState before = EmptyNodeState.EMPTY_NODE;
+        NodeBuilder builder = before.builder();
+        builder.child(":testRoot").setProperty("foo", "abc");
+        createIndexDefinition(builder.child(INDEX_DEFINITIONS_NAME),
+                "rootIndex", false, false, ImmutableSet.of("foo"), null);
+        NodeState after = builder.getNodeState();
+        NodeState indexed = HOOK.processCommit(before, after, CommitInfo.EMPTY);
+
+        // first check that the index content nodes exist
+        NodeState ns = checkPathExists(indexed, INDEX_DEFINITIONS_NAME,
+                "rootIndex");
+        NodeState index = checkPathExists(ns, INDEX_CONTENT_NODE_NAME);
+        PropertyState ps = ns.getProperty(REINDEX_PROPERTY_NAME);
+        assertNotNull(ps);
+        assertFalse(ps.getValue(Type.BOOLEAN));
+        assertFalse(index.getChildNodeCount(1) > 0);
+
+        before = indexed;
+        builder = before.builder();
+        builder.child(INDEX_DEFINITIONS_NAME).child("rootIndex")
+                .setProperty("reindex", true);
+        after = builder.getNodeState();
+        indexed = HOOK.processCommit(before, after, CommitInfo.EMPTY);
+        index = checkPathExists(ns, INDEX_CONTENT_NODE_NAME);
+        ps = ns.getProperty(REINDEX_PROPERTY_NAME);
+        assertNotNull(ps);
+        assertFalse(ps.getValue(Type.BOOLEAN));
+        assertFalse(index.getChildNodeCount(1) > 0);
+    }
+
+    @Test
     public void testIndexDefinitions() throws Exception {
         createIndexDefinition(builder.child(INDEX_DEFINITIONS_NAME),
                 "existing", true, false, ImmutableSet.of("foo"), null);