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


Reply via email to