Author: mreutegg
Date: Wed Jan 31 14:43:22 2018
New Revision: 1822808

URL: http://svn.apache.org/viewvc?rev=1822808&view=rev
Log:
OAK-7198: Index rule with REGEX_ALL_PROPS includes relative node

Modified:
    
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java
    
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/PropertyDefinition.java
    
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinitionTest.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=1822808&r1=1822807&r2=1822808&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
 Wed Jan 31 14:43:22 2018
@@ -1521,13 +1521,13 @@ public final class IndexDefinition imple
 
                 if (propName.equals(includeAllProp)){
                     prop.setProperty(LuceneIndexConstants.PROP_IS_REGEX, true);
-                }
-
-                //Copy over the property configuration
-                NodeState propDefNode  = getPropDefnNode(defn, propName);
-                if (propDefNode != null){
-                    for (PropertyState ps : propDefNode.getProperties()){
-                        prop.setProperty(ps);
+                } else {
+                    //Copy over the property configuration
+                    NodeState propDefNode  = getPropDefnNode(defn, propName);
+                    if (propDefNode != null){
+                        for (PropertyState ps : propDefNode.getProperties()){
+                            prop.setProperty(ps);
+                        }
                     }
                 }
             }

Modified: 
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/PropertyDefinition.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/PropertyDefinition.java?rev=1822808&r1=1822807&r2=1822808&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/PropertyDefinition.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/PropertyDefinition.java
 Wed Jan 31 14:43:22 2018
@@ -44,6 +44,9 @@ import static org.apache.jackrabbit.oak.
 
 public class PropertyDefinition {
     private static final Logger log = 
LoggerFactory.getLogger(PropertyDefinition.class);
+
+    private static final String[] EMPTY_ANCESTORS = new String[0];
+
     /**
      * The default boost: 1.0f.
      */
@@ -232,7 +235,9 @@ public class PropertyDefinition {
     }
 
     static boolean isRelativeProperty(String propertyName){
-        return !isAbsolute(propertyName) && 
PathUtils.getNextSlash(propertyName, 0) > 0;
+        return !isAbsolute(propertyName)
+                && !LuceneIndexConstants.REGEX_ALL_PROPS.equals(propertyName)
+                && PathUtils.getNextSlash(propertyName, 0) > 0;
     }
 
     //~---------------------------------------------< internal >
@@ -265,8 +270,12 @@ public class PropertyDefinition {
         return PathUtils.getName(name);
     }
 
-    private static String[] computeAncestors(String parentPath) {
-        return toArray(copyOf(elements(PathUtils.getParentPath(parentPath))), 
String.class);
+    private static String[] computeAncestors(String path) {
+        if (LuceneIndexConstants.REGEX_ALL_PROPS.equals(path)) {
+            return EMPTY_ANCESTORS;
+        } else {
+            return toArray(copyOf(elements(PathUtils.getParentPath(path))), 
String.class);
+        }
     }
 
 

Modified: 
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinitionTest.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinitionTest.java?rev=1822808&r1=1822807&r2=1822808&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinitionTest.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinitionTest.java
 Wed Jan 31 14:43:22 2018
@@ -40,7 +40,6 @@ import org.apache.lucene.index.LogByteSi
 import org.apache.lucene.index.LogDocMergePolicy;
 import org.apache.lucene.index.NoMergePolicy;
 import org.apache.lucene.index.TieredMergePolicy;
-import org.junit.Ignore;
 import org.junit.Test;
 
 import static com.google.common.collect.ImmutableSet.of;
@@ -1200,7 +1199,6 @@ public class IndexDefinitionTest {
         assertTrue(defn.indexesRelativeNodes());
     }
 
-    @Ignore("OAK-7198")
     @Test
     public void regexAllProps() {
         IndexDefinitionBuilder builder = new IndexDefinitionBuilder();


Reply via email to