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 ch...@apache.org on 2016/12/05 09:57:55 UTC

svn commit: r1772617 - in /jackrabbit/oak/trunk/oak-lucene/src: main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java

Author: chetanm
Date: Mon Dec  5 09:57:55 2016
New Revision: 1772617

URL: http://svn.apache.org/viewvc?rev=1772617&view=rev
Log:
OAK-5220 - Remove usage of NodeBuilder in IndexDefinition

reindexCount is only required for case where index has yet not been reindexed and hence not able to use unique id. So we need to read from NodeBuilder as the count should be present in persisted NodeState and current count is not required any more

Modified:
    jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java
    jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java

Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java?rev=1772617&r1=1772616&r2=1772617&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java Mon Dec  5 09:57:55 2016
@@ -307,7 +307,7 @@ public final class IndexDefinition imple
         this.suggesterUpdateFrequencyMinutes = evaluateSuggesterUpdateFrequencyMinutes(defn,
                 DEFAULT_SUGGESTER_UPDATE_FREQUENCY_MINUTES);
         this.scorerProviderName = getOptionalValue(defn, LuceneIndexConstants.PROP_SCORER_PROVIDER, null);
-        this.reindexCount = determineReindexCount(defn, defnb);
+        this.reindexCount = getOptionalValue(defn, REINDEX_COUNT, 0);
         this.pathFilter = PathFilter.from(new ReadOnlyBuilder(defn));
         this.queryPaths = getQueryPaths(defn);
         this.saveDirListing = getOptionalValue(defn, LuceneIndexConstants.SAVE_DIR_LISTING, true);
@@ -1589,18 +1589,6 @@ public final class IndexDefinition imple
         return defn.getChildNode(LuceneIndexConstants.INDEX_RULES).exists();
     }
 
-    private static long determineReindexCount(NodeState defn, NodeBuilder defnb) {
-        //Give precedence to count from builder as that reflects the latest state
-        //and might be higher than one from nodeState which is the base state
-        if (defnb != null && defnb.hasProperty(REINDEX_COUNT)) {
-            return defnb.getProperty(REINDEX_COUNT).getValue(Type.LONG);
-        }
-        if (defn.hasProperty(REINDEX_COUNT)) {
-            return defn.getProperty(REINDEX_COUNT).getValue(Type.LONG);
-        }
-        return 0;
-    }
-
     @CheckForNull
     private static String determineUniqueId(NodeState defn, @Nullable NodeBuilder defnb) {
         String uid = null;

Modified: jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java?rev=1772617&r1=1772616&r2=1772617&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/hybrid/HybridIndexTest.java Mon Dec  5 09:57:55 2016
@@ -31,6 +31,7 @@ import javax.annotation.Nonnull;
 import javax.annotation.Nullable;
 
 import com.google.common.base.Predicate;
+import org.apache.jackrabbit.JcrConstants;
 import org.apache.jackrabbit.oak.Oak;
 import org.apache.jackrabbit.oak.api.ContentRepository;
 import org.apache.jackrabbit.oak.api.Tree;
@@ -45,6 +46,7 @@ import org.apache.jackrabbit.oak.plugins
 import org.apache.jackrabbit.oak.plugins.index.lucene.TestUtil;
 import org.apache.jackrabbit.oak.plugins.index.lucene.reader.DefaultIndexReaderFactory;
 import org.apache.jackrabbit.oak.plugins.index.lucene.reader.LuceneIndexReaderFactory;
+import org.apache.jackrabbit.oak.plugins.index.lucene.util.IndexDefinitionBuilder;
 import org.apache.jackrabbit.oak.plugins.index.nodetype.NodeTypeIndexProvider;
 import org.apache.jackrabbit.oak.plugins.index.property.PropertyIndexEditorProvider;
 import org.apache.jackrabbit.oak.plugins.memory.ArrayBasedBlob;
@@ -210,6 +212,22 @@ public class HybridIndexTest extends Abs
         assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", of("/a", "/b"));
     }
 
+    //@Test
+    public void usageBeforeFirstIndex() throws Exception{
+        IndexDefinitionBuilder idxb = new IndexDefinitionBuilder();
+        idxb.async("sync", "async");
+        idxb.indexRule("nt:base").property("foo").propertyIndex();
+        Tree idx = root.getTree("/oak:index").addChild("hybridtest");
+        idxb.build(idx);
+
+        root.commit();
+
+        createPath("/a").setProperty("foo", "bar");
+        root.commit();
+        setTraversalEnabled(false);
+        assertQuery("select [jcr:path] from [nt:base] where [foo] = 'bar'", of("/a"));
+    }
+
     private void runAsyncIndex() {
         Runnable async = WhiteboardUtils.getService(wb, Runnable.class, new Predicate<Runnable>() {
             @Override