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 ch...@apache.org on 2017/03/08 05:40:25 UTC
svn commit: r1785916 - in /jackrabbit/oak/trunk/oak-lucene/src:
main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilder.java
test/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilderTest.java
Author: chetanm
Date: Wed Mar 8 05:40:25 2017
New Revision: 1785916
URL: http://svn.apache.org/viewvc?rev=1785916&view=rev
Log:
OAK-5894 - IndexDefinitionBuilder shouldn't set type=lucene if type=disabled in existing tree
Set type=lucene in all cases other than where type is set to disabled
Modified:
jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilder.java
jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilderTest.java
Modified: jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilder.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilder.java?rev=1785916&r1=1785915&r2=1785916&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilder.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilder.java Wed Mar 8 05:40:25 2017
@@ -75,7 +75,7 @@ public final class IndexDefinitionBuilde
this.tree = TreeFactory.createTree(builder);
tree.setProperty(LuceneIndexConstants.COMPAT_MODE, 2);
tree.setProperty("async", "async");
- tree.setProperty(IndexConstants.TYPE_PROPERTY_NAME, "lucene");
+ setType();
tree.setProperty(JCR_PRIMARYTYPE, "oak:QueryIndexDefinition", NAME);
indexRule = getOrCreateChild(tree, LuceneIndexConstants.INDEX_RULES);
}
@@ -144,6 +144,13 @@ public final class IndexDefinitionBuilde
}
}
+ private void setType() {
+ PropertyState type = tree.getProperty(IndexConstants.TYPE_PROPERTY_NAME);
+ if (type == null || !"disabled".equals(type.getValue(Type.STRING))) {
+ tree.setProperty(IndexConstants.TYPE_PROPERTY_NAME, "lucene");
+ }
+ }
+
//~--------------------------------------< IndexRule >
public IndexRule indexRule(String type){
Modified: jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilderTest.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilderTest.java?rev=1785916&r1=1785915&r2=1785916&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilderTest.java (original)
+++ jackrabbit/oak/trunk/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/util/IndexDefinitionBuilderTest.java Wed Mar 8 05:40:25 2017
@@ -257,4 +257,21 @@ public class IndexDefinitionBuilderTest
assertTrue(idx.getTree("/indexRules/nt:base/properties/bar").exists());
assertTrue(idx.getTree("/indexRules/nt:base/properties/foo").exists());
}
+
+ @Test
+ public void typeNotChangedIfSet() throws Exception{
+ NodeState state = builder.build();
+ assertEquals("lucene", state.getString("type"));
+
+ NodeBuilder updated = state.builder();
+ updated.setProperty("type", "disabled");
+ IndexDefinitionBuilder newBuilder = new IndexDefinitionBuilder(updated);
+
+ NodeState updatedState = newBuilder.build();
+ assertEquals("disabled", updatedState.getString("type"));
+
+ //Type other than 'disabled' would be reset
+ updated.setProperty("type", "foo");
+ assertEquals("lucene", new IndexDefinitionBuilder(updated).build().getString("type"));
+ }
}
\ No newline at end of file