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 ca...@apache.org on 2019/02/20 22:17:39 UTC

svn commit: r1853998 - in /jackrabbit/oak/branches/1.10: ./ oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/ReopenedLuceneIndexTest.java

Author: catholicon
Date: Wed Feb 20 22:17:38 2019
New Revision: 1853998

URL: http://svn.apache.org/viewvc?rev=1853998&view=rev
Log:
OAK-8046: Result items are not always correctly counted against the configured read limit if a query uses a lucene index (backported r1853997 from trunk)

Fix test cases. I had earlier assumed that index tag chooses even
aggregate index (compatVersion=1) but it doesn't. So, now we have
different type of indexes and query according to which one we want to
get picked.


Modified:
    jackrabbit/oak/branches/1.10/   (props changed)
    jackrabbit/oak/branches/1.10/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/ReopenedLuceneIndexTest.java

Propchange: jackrabbit/oak/branches/1.10/
------------------------------------------------------------------------------
--- svn:mergeinfo (original)
+++ svn:mergeinfo Wed Feb 20 22:17:38 2019
@@ -1,3 +1,3 @@
 /jackrabbit/oak/branches/1.0:1665962
-/jackrabbit/oak/trunk:1851236,1851253,1851451,1852052,1852084,1852120,1852451,1852492-1852493,1852528,1852582,1852584,1852920,1853393,1853429,1853433,1853866,1853870,1853893,1853969
+/jackrabbit/oak/trunk:1851236,1851253,1851451,1852052,1852084,1852120,1852451,1852492-1852493,1852528,1852582,1852584,1852920,1853393,1853429,1853433,1853866,1853870,1853893,1853969,1853997
 /jackrabbit/trunk:1345480

Modified: jackrabbit/oak/branches/1.10/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/ReopenedLuceneIndexTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.10/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/ReopenedLuceneIndexTest.java?rev=1853998&r1=1853997&r2=1853998&view=diff
==============================================================================
--- jackrabbit/oak/branches/1.10/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/ReopenedLuceneIndexTest.java (original)
+++ jackrabbit/oak/branches/1.10/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/ReopenedLuceneIndexTest.java Wed Feb 20 22:17:38 2019
@@ -30,10 +30,8 @@ import org.apache.jackrabbit.oak.api.Tre
 import org.apache.jackrabbit.oak.commons.concurrent.ExecutorCloser;
 import org.apache.jackrabbit.oak.commons.junit.TemporarySystemProperty;
 import org.apache.jackrabbit.oak.plugins.index.lucene.util.IndexDefinitionBuilder;
-import org.apache.jackrabbit.oak.plugins.index.search.FulltextIndexConstants;
 import org.apache.jackrabbit.oak.plugins.index.search.IndexDefinition;
 import org.apache.jackrabbit.oak.plugins.memory.MemoryNodeStore;
-import org.apache.jackrabbit.oak.plugins.memory.MultiStringPropertyState;
 import org.apache.jackrabbit.oak.query.QueryEngineSettings;
 import org.apache.jackrabbit.oak.spi.commit.Observer;
 import org.apache.jackrabbit.oak.spi.query.QueryIndexProvider;
@@ -57,7 +55,6 @@ import java.util.Iterator;
 import java.util.concurrent.ExecutorService;
 import java.util.concurrent.Executors;
 
-import static com.google.common.collect.ImmutableList.of;
 import static org.apache.jackrabbit.oak.InitialContentHelper.INITIAL_CONTENT;
 import static org.junit.Assert.assertEquals;
 import static org.junit.Assert.assertTrue;
@@ -159,23 +156,26 @@ public class ReopenedLuceneIndexTest {
     }
 
     private void createIndex() throws CommitFailedException {
-        IndexDefinitionBuilder idxBuilder = new IndexDefinitionBuilder();
-        idxBuilder.noAsync().evaluatePathRestrictions()
+        IndexDefinitionBuilder idxBuilderV1 = new IndexDefinitionBuilder();
+        idxBuilderV1.noAsync().evaluatePathRestrictions()
                 .indexRule("nt:base")
                 .property("cons").nodeScopeIndex()
                 // to make a change in index but we won't query for this
                 .enclosingRule().property("foo").propertyIndex();
 
-        Tree indexNode;
+        IndexDefinitionBuilder idxBuilderV2 = new IndexDefinitionBuilder();
+        idxBuilderV2.noAsync().evaluatePathRestrictions()
+                .indexRule("nt:base")
+                .property("cons").propertyIndex()
+                // to make a change in index but we won't query for this
+                .enclosingRule().property("foo").propertyIndex();
 
-        idxBuilder.getBuilderTree().setProperty(new MultiStringPropertyState("tags", of("v2")));
-        indexNode = root.getTree("/").addChild("oak:index").addChild("index-v2");
-        idxBuilder.build(indexNode);
-
-        idxBuilder.getBuilderTree().setProperty(new MultiStringPropertyState("tags", of("v1")));
-        idxBuilder.getBuilderTree().setProperty(FulltextIndexConstants.COMPAT_MODE, 1); // to force aggregate index
-        indexNode = root.getTree("/oak:index").addChild("index-v2");
-        idxBuilder.build(indexNode);
+        Tree oi = root.getTree("/oak:index");
+
+        idxBuilderV1.getBuilderTree().setProperty(LuceneIndexConstants.COMPAT_MODE, 1); // to force aggregate index
+        idxBuilderV1.build(oi.addChild("index-v1"));
+
+        idxBuilderV2.build(oi.addChild("index-v2"));
 
         root.commit();
     }
@@ -195,7 +195,10 @@ public class ReopenedLuceneIndexTest {
     }
 
     private int iterateResultWhileReopening(String indexTag) throws ParseException, CommitFailedException {
-        String query = "SELECT * FROM [nt:base] WHERE CONTAINS(*, 'val') option(index tag " + indexTag + ")";
+        String queryV1 = "SELECT * FROM [nt:base] WHERE CONTAINS(*, 'val')";
+        String queryV2 = "SELECT * FROM [nt:base] WHERE [cons] = 'val'";
+
+        String query = "v1".equals(indexTag) ? queryV1 : queryV2;
 
         int resultSize = 0;