Author: reschke Date: Thu Apr 30 08:21:44 2020 New Revision: 1877188 URL: http://svn.apache.org/viewvc?rev=1877188&view=rev Log: OAK-8832 - Offline Compaction fails while erroneously accessing external blob - fix svn:eol-style (merged r1877064 into 1.22) - backed out
Modified: jackrabbit/oak/branches/1.22/ (props changed) jackrabbit/oak/branches/1.22/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/DefaultIndexWriter.java jackrabbit/oak/branches/1.22/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexQueryTest.java jackrabbit/oak/branches/1.22/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/FulltextIndexConstants.java jackrabbit/oak/branches/1.22/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/IndexDefinition.java jackrabbit/oak/branches/1.22/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/spi/editor/FulltextDocumentMaker.java jackrabbit/oak/branches/1.22/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CheckpointCompactorExternalBlobTest.java (props changed) jackrabbit/oak/branches/1.22/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CheckpointCompactorTestUtils.java (props changed) Propchange: jackrabbit/oak/branches/1.22/ ------------------------------------------------------------------------------ Reverse-merged /jackrabbit/oak/trunk:r1874786,1877064 Modified: jackrabbit/oak/branches/1.22/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/DefaultIndexWriter.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.22/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/DefaultIndexWriter.java?rev=1877188&r1=1877187&r2=1877188&view=diff ============================================================================== --- jackrabbit/oak/branches/1.22/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/DefaultIndexWriter.java (original) +++ jackrabbit/oak/branches/1.22/oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/DefaultIndexWriter.java Thu Apr 30 08:21:44 2020 @@ -21,7 +21,6 @@ package org.apache.jackrabbit.oak.plugin import java.io.IOException; import java.util.Calendar; -import java.util.Iterator; import java.util.List; import com.google.common.io.Closer; @@ -31,7 +30,6 @@ import org.apache.jackrabbit.oak.commons import org.apache.jackrabbit.oak.plugins.index.lucene.LuceneIndexDefinition; import org.apache.jackrabbit.oak.plugins.index.lucene.directory.DirectoryFactory; import org.apache.jackrabbit.oak.plugins.index.lucene.util.SuggestHelper; -import org.apache.jackrabbit.oak.plugins.index.search.FieldNames; import org.apache.jackrabbit.oak.plugins.index.search.IndexDefinition; import org.apache.jackrabbit.oak.spi.state.NodeBuilder; import org.apache.jackrabbit.util.ISO8601; @@ -82,23 +80,10 @@ class DefaultIndexWriter implements Luce @Override public void updateDocument(String path, Iterable<? extends IndexableField> doc) throws IOException { - Iterator<? extends IndexableField> f = doc.iterator(); - String fieldName = f.hasNext() ? f.next().name() : null; - boolean containsOnlyPath = FieldNames.PATH.equals(fieldName) && !f.hasNext(); - boolean isPropertyRegexMatchingEnabled = definition.getPropertyRegex() != null; if (reindex) { - if (containsOnlyPath && isPropertyRegexMatchingEnabled) { - return; - } getWriter().addDocument(doc); } else { - // if the new document only contains path field, we don't add it to index. Instead we delete existing - // document of the same path. - if (containsOnlyPath && isPropertyRegexMatchingEnabled) { - getWriter().deleteDocuments(newPathTerm(path)); - } else { - getWriter().updateDocument(newPathTerm(path), doc); - } + getWriter().updateDocument(newPathTerm(path), doc); } indexUpdated = true; } Modified: jackrabbit/oak/branches/1.22/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexQueryTest.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.22/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexQueryTest.java?rev=1877188&r1=1877187&r2=1877188&view=diff ============================================================================== --- jackrabbit/oak/branches/1.22/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexQueryTest.java (original) +++ jackrabbit/oak/branches/1.22/oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/LuceneIndexQueryTest.java Thu Apr 30 08:21:44 2020 @@ -22,9 +22,7 @@ import static org.apache.jackrabbit.JcrC import static org.apache.jackrabbit.JcrConstants.NT_UNSTRUCTURED; import static org.apache.jackrabbit.oak.api.Type.STRING; import static org.apache.jackrabbit.oak.api.Type.STRINGS; -import static org.apache.jackrabbit.oak.plugins.index.IndexConstants.REINDEX_PROPERTY_NAME; import static org.apache.jackrabbit.oak.plugins.index.lucene.TestUtil.useV2; -import static org.apache.jackrabbit.oak.plugins.index.search.FulltextIndexConstants.PROP_VALUE_REGEX; import static org.junit.Assert.assertEquals; import static org.junit.Assert.assertFalse; import static org.junit.Assert.assertTrue; @@ -57,12 +55,10 @@ import com.google.common.collect.Immutab */ public class LuceneIndexQueryTest extends AbstractQueryTest { - private Tree indexDefn; - @Override protected void createTestIndexNode() throws Exception { Tree index = root.getTree("/"); - indexDefn = createTestIndexNode(index, LuceneIndexConstants.TYPE_LUCENE); + Tree indexDefn = createTestIndexNode(index, LuceneIndexConstants.TYPE_LUCENE); useV2(indexDefn); indexDefn.setProperty(LuceneIndexConstants.TEST_MODE, true); indexDefn.setProperty(FulltextIndexConstants.EVALUATE_PATH_RESTRICTION, true); @@ -110,36 +106,6 @@ public class LuceneIndexQueryTest extend } @Test - public void testValueRegex() throws Exception { - Tree test = root.getTree("/").addChild("test"); - Tree a = test.addChild("a"); - Tree b = test.addChild("b"); - a.setProperty("name", "hello"); - b.setProperty("name", "hello pattern"); - root.commit(); - - final String query = "select [jcr:path] from [nt:base] where isdescendantnode('/test') and contains(*, 'hello')"; - - Iterator<String> result = executeQuery(query,"JCR-SQL2").iterator(); - List<String> paths = new ArrayList<>(); - result.forEachRemaining(paths::add); - assertEquals(2, paths.size()); - assertEquals(paths.get(0), a.getPath()); - assertEquals(paths.get(1), b.getPath()); - - indexDefn.setProperty(PROP_VALUE_REGEX, "pat*"); - indexDefn.setProperty(REINDEX_PROPERTY_NAME, true); - root.commit(); - - result = executeQuery(query,"JCR-SQL2").iterator(); - paths.clear(); - result.forEachRemaining(paths::add); - assertEquals(1, paths.size()); - assertEquals(paths.get(0), b.getPath()); - - } - - @Test public void descendantTest() throws Exception { Tree test = root.getTree("/").addChild("test"); test.addChild("a"); Modified: jackrabbit/oak/branches/1.22/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/FulltextIndexConstants.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.22/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/FulltextIndexConstants.java?rev=1877188&r1=1877187&r2=1877188&view=diff ============================================================================== --- jackrabbit/oak/branches/1.22/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/FulltextIndexConstants.java (original) +++ jackrabbit/oak/branches/1.22/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/FulltextIndexConstants.java Thu Apr 30 08:21:44 2020 @@ -51,7 +51,7 @@ public interface FulltextIndexConstants String PERSISTENCE_OAK = "repository"; - String TEST_MODE = "testMode"; + String TEST_MODE = "testMode"; String PERSISTENCE_FILE = "file"; @@ -152,13 +152,6 @@ public interface FulltextIndexConstants String EVALUATE_PATH_RESTRICTION = "evaluatePathRestrictions"; /** - * The property name to specify a regular expression for property value in index definition. If this property is present - * in index definition, then only those properties would be added to index whose value matches the regex defined by - * this property. - */ - String PROP_VALUE_REGEX = "valueRegex"; - - /** * Experimental config to restrict which property type gets indexed at * property definition level. Mostly index rule level #INCLUDE_PROPERTY_TYPES * should be sufficient @@ -213,7 +206,7 @@ public interface FulltextIndexConstants String TIKA_MAX_EXTRACT_LENGTH = "maxExtractLength"; /** - * Config node under tika which defines mime type mappings + * Config node under tika which defines mime type mappings */ String TIKA_MIME_TYPES = "mimeTypes"; @@ -375,5 +368,5 @@ public interface FulltextIndexConstants * index is used for queries; otherwise, it is not used (returns infinite * cost). The value is: nodes, the path. For properties, the path of the node, then '@' property. */ - String USE_IF_EXISTS = "useIfExists"; + String USE_IF_EXISTS = "useIfExists"; } Modified: jackrabbit/oak/branches/1.22/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/IndexDefinition.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.22/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/IndexDefinition.java?rev=1877188&r1=1877187&r2=1877188&view=diff ============================================================================== --- jackrabbit/oak/branches/1.22/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/IndexDefinition.java (original) +++ jackrabbit/oak/branches/1.22/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/IndexDefinition.java Thu Apr 30 08:21:44 2020 @@ -258,11 +258,6 @@ public class IndexDefinition implements private final boolean testMode; - /** - * See {@link FulltextIndexConstants#PROP_VALUE_REGEX} - */ - private final Pattern propertyRegex; - public boolean isTestMode() { return testMode; } @@ -373,11 +368,7 @@ public class IndexDefinition implements this.fullTextEnabled = hasFulltextEnabledIndexRule(definedIndexRules); this.evaluatePathRestrictions = getOptionalValue(defn, EVALUATE_PATH_RESTRICTION, false); - if (defn.hasProperty(PROP_VALUE_REGEX)) { - this.propertyRegex = Pattern.compile(getOptionalValue(defn, PROP_VALUE_REGEX, "")); - } else { - this.propertyRegex = null; - } + String functionName = getOptionalValue(defn, FulltextIndexConstants.FUNC_NAME, null); if (fullTextEnabled && functionName == null) { functionName = getDefaultFunctionName(); @@ -850,10 +841,6 @@ public class IndexDefinition implements return false; } - public Pattern getPropertyRegex() { - return propertyRegex; - } - public boolean isSuggestEnabled() { return suggestEnabled; } Modified: jackrabbit/oak/branches/1.22/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/spi/editor/FulltextDocumentMaker.java URL: http://svn.apache.org/viewvc/jackrabbit/oak/branches/1.22/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/spi/editor/FulltextDocumentMaker.java?rev=1877188&r1=1877187&r2=1877188&view=diff ============================================================================== --- jackrabbit/oak/branches/1.22/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/spi/editor/FulltextDocumentMaker.java (original) +++ jackrabbit/oak/branches/1.22/oak-search/src/main/java/org/apache/jackrabbit/oak/plugins/index/search/spi/editor/FulltextDocumentMaker.java Thu Apr 30 08:21:44 2020 @@ -24,7 +24,6 @@ import java.util.Arrays; import java.util.Collections; import java.util.List; import java.util.concurrent.atomic.AtomicBoolean; -import java.util.regex.Pattern; import javax.jcr.PropertyType; @@ -188,11 +187,7 @@ public abstract class FulltextDocumentMa } if (indexingRule.isFulltextEnabled()) { - Pattern propertyRegex = definition.getPropertyRegex(); - boolean shouldAdd = propertyRegex == null || propertyRegex.matcher(name).find(); - if (shouldAdd) { - indexFulltextValue(document, name); - } + indexFulltextValue(document, name); } if (definition.evaluatePathRestrictions()){ @@ -247,10 +242,8 @@ public abstract class FulltextDocumentMa if (pd.fulltextEnabled() && includeTypeForFullText) { for (String value : property.getValue(Type.STRINGS)) { + logLargeStringProperties(property.getName(), value); - if (definition.getPropertyRegex() != null && !definition.getPropertyRegex().matcher(value).find()) { - continue; - } if (!includePropertyValue(value, pd)){ continue; } Propchange: jackrabbit/oak/branches/1.22/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CheckpointCompactorExternalBlobTest.java ('svn:eol-style' removed) Propchange: jackrabbit/oak/branches/1.22/oak-segment-tar/src/test/java/org/apache/jackrabbit/oak/segment/CheckpointCompactorTestUtils.java ('svn:eol-style' removed)