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();