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