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 re...@apache.org on 2020/04/30 08:21:45 UTC

svn commit: r1877188 - in /jackrabbit/oak/branches/1.22: ./ oak-lucene/src/main/java/org/apache/jackrabbit/oak/plugins/index/lucene/writer/ oak-lucene/src/test/java/org/apache/jackrabbit/oak/plugins/index/lucene/ oak-search/src/main/java/org/apache/jac...

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)