Index: oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java =================================================================== --- oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java (revision 1755171) +++ oak-core/src/main/java/org/apache/jackrabbit/oak/plugins/index/IndexUpdate.java (working copy) @@ -62,8 +62,6 @@ import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import com.google.common.base.Objects; - public class IndexUpdate implements Editor { private static final Logger log = LoggerFactory.getLogger(IndexUpdate.class); @@ -190,7 +188,7 @@ NodeState before) throws CommitFailedException { for (String name : definitions.getChildNodeNames()) { NodeBuilder definition = definitions.getChildNode(name); - if (Objects.equal(rootState.async, definition.getString(ASYNC_PROPERTY_NAME))) { + if (isIncluded(rootState.async, definition)) { String type = definition.getString(TYPE_PROPERTY_NAME); if (type == null) { // probably not an index def @@ -229,6 +227,21 @@ } } + private static boolean isIncluded(String asyncRef, NodeBuilder definition) { + if (definition.hasProperty(ASYNC_PROPERTY_NAME)) { + PropertyState p = definition.getProperty(ASYNC_PROPERTY_NAME); + List opt = newArrayList(p.getValue(Type.STRINGS)); + if (asyncRef == null) { + // sync index job, accept alternatives as well + return opt.contains("") || opt.contains("sync"); + } else { + return opt.contains(asyncRef); + } + } else { + return asyncRef == null; + } + } + private void manageIndexPath(NodeBuilder definition, String name) { String path = definition.getString(INDEX_PATH); if (path == null){