Index: oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java =================================================================== --- oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java (revision 1822200) +++ oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinition.java (working copy) @@ -1521,13 +1521,13 @@ 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); + } } } } Index: oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/PropertyDefinition.java =================================================================== --- oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/PropertyDefinition.java (revision 1822200) +++ oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/PropertyDefinition.java (working copy) @@ -44,6 +44,9 @@ 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 @@ } 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 @@ 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); + } } Index: oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinitionTest.java =================================================================== --- oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinitionTest.java (revision 1822201) +++ oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/IndexDefinitionTest.java (working copy) @@ -40,7 +40,6 @@ 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 @@ assertTrue(defn.indexesRelativeNodes()); } - @Ignore("OAK-7198") @Test public void regexAllProps() { IndexDefinitionBuilder builder = new IndexDefinitionBuilder();