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 al...@apache.org on 2015/09/25 10:21:49 UTC

svn commit: r1705250 - in /jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index: AsyncIndexUpdate.java IndexUpdate.java package-info.java

Author: alexparvulescu
Date: Fri Sep 25 08:21:49 2015
New Revision: 1705250

URL: http://svn.apache.org/viewvc?rev=1705250&view=rev
Log:
OAK-3325 MissingIndexProviderStrategy should warn when setting the reindex flag


Modified:
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java
    jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/package-info.java

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java?rev=1705250&r1=1705249&r2=1705250&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/AsyncIndexUpdate.java Fri Sep 25 08:21:49 2015
@@ -795,16 +795,15 @@ public class AsyncIndexUpdate implements
     static class DefaultMissingIndexProviderStrategy extends
             MissingIndexProviderStrategy {
 
-        private final Set<String> ignore = newHashSet("disabled");
-
         @Override
-        public void onMissingIndex(String type, NodeBuilder definition)
+        public void onMissingIndex(String type, NodeBuilder definition, String path)
                 throws CommitFailedException {
-            if (ignore.contains(type)) {
+            if (isDisabled(type)) {
                 return;
             }
             throw new CommitFailedException("Async", 2,
-                    "Missing index provider detected for type ["+type+"]");
+                    "Missing index provider detected for type [" + type
+                            + "] on index [" + path + "]");
         }
     }
 

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java?rev=1705250&r1=1705249&r2=1705250&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java Fri Sep 25 08:21:49 2015
@@ -19,6 +19,7 @@ package org.apache.jackrabbit.oak.plugin
 import static com.google.common.base.Preconditions.checkNotNull;
 import static com.google.common.collect.Lists.newArrayList;
 import static com.google.common.collect.Lists.newArrayListWithCapacity;
+import static com.google.common.collect.Sets.newHashSet;
 import static org.apache.jackrabbit.oak.api.Type.BOOLEAN;
 import static org.apache.jackrabbit.oak.commons.PathUtils.concat;
 import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.ASYNC_PROPERTY_NAME;
@@ -47,6 +48,7 @@ import com.google.common.base.Stopwatch;
 import com.google.common.collect.Lists;
 import com.google.common.collect.Maps;
 import com.google.common.collect.Sets;
+
 import org.apache.jackrabbit.oak.api.CommitFailedException;
 import org.apache.jackrabbit.oak.api.PropertyState;
 import org.apache.jackrabbit.oak.api.Type;
@@ -167,10 +169,11 @@ public class IndexUpdate implements Edit
                 }
                 boolean shouldReindex = shouldReindex(definition,
                         before, name);
+                String indexPath = getIndexPath(getPath(), name);
                 Editor editor = rootState.provider.getIndexEditor(type, definition, rootState.root,
-                        rootState.newCallback(getIndexPath(getPath(), name), shouldReindex));
+                        rootState.newCallback(indexPath, shouldReindex));
                 if (editor == null) {
-                    missingProvider.onMissingIndex(type, definition);
+                    missingProvider.onMissingIndex(type, definition, indexPath);
                 } else if (shouldReindex) {
                     if (definition.getBoolean(REINDEX_ASYNC_PROPERTY_NAME)
                             && definition.getString(ASYNC_PROPERTY_NAME) == null) {
@@ -312,16 +315,29 @@ public class IndexUpdate implements Edit
     }
 
     public static class MissingIndexProviderStrategy {
-        public void onMissingIndex(String type, NodeBuilder definition)
+
+        private final Set<String> ignore = newHashSet("disabled");
+
+        public void onMissingIndex(String type, NodeBuilder definition, String indexPath)
                 throws CommitFailedException {
+            if (isDisabled(type)) {
+                return;
+            }
             // trigger reindexing when an indexer becomes available
             PropertyState ps = definition.getProperty(REINDEX_PROPERTY_NAME);
             if (ps != null && ps.getValue(BOOLEAN)) {
                 // already true, skip the update
                 return;
             }
+            log.warn(
+                    "Missing index provider of type [{}], requesting reindex on [{}]",
+                    type, indexPath);
             definition.setProperty(REINDEX_PROPERTY_NAME, true);
         }
+
+        boolean isDisabled(String type) {
+            return ignore.contains(type);
+        }
     }
 
     public IndexUpdate withMissingProviderStrategy(

Modified: jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/package-info.java
URL: http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/package-info.java?rev=1705250&r1=1705249&r2=1705250&view=diff
==============================================================================
--- jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/package-info.java (original)
+++ jackrabbit/oak/trunk/oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/package-info.java Fri Sep 25 08:21:49 2015
@@ -14,7 +14,7 @@
  * See the License for the specific language governing permissions and
  * limitations under the License.
  */
-@Version("2.0.0")
+@Version("3.0.0")
 @Export(optional = "provide:=true")
 package org.apache.jackrabbit.oak.plugins.index;