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;