This is an automated email from the ASF dual-hosted git repository.

manishswaminathan pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git


The following commit(s) were added to refs/heads/master by this push:
     new a506df38a5 Safeguard AbstractBuilder copy constructor from empty 
TextIndexConfig (#14616)
a506df38a5 is described below

commit a506df38a5081c1bb373f440e771f9ded4fd9822
Author: Shounak kulkarni <shounakmk...@gmail.com>
AuthorDate: Fri Dec 6 21:27:10 2024 +0530

    Safeguard AbstractBuilder copy constructor from empty TextIndexConfig 
(#14616)
    
    * Safeguard AbstractBuilder copy constructor from empty TextIndexConfig
    
    * using false as default as LuceneTextIndexReader also has a false default
---
 .../local/segment/store/TextIndexUtilsTest.java      |  7 ++++---
 .../pinot/segment/spi/index/TextIndexConfig.java     | 20 ++++++++++++--------
 2 files changed, 16 insertions(+), 11 deletions(-)

diff --git 
a/pinot-segment-local/src/test/java/org/apache/pinot/segment/local/segment/store/TextIndexUtilsTest.java
 
b/pinot-segment-local/src/test/java/org/apache/pinot/segment/local/segment/store/TextIndexUtilsTest.java
index f818a39c7f..d2567be73d 100644
--- 
a/pinot-segment-local/src/test/java/org/apache/pinot/segment/local/segment/store/TextIndexUtilsTest.java
+++ 
b/pinot-segment-local/src/test/java/org/apache/pinot/segment/local/segment/store/TextIndexUtilsTest.java
@@ -20,11 +20,11 @@ package org.apache.pinot.segment.local.segment.store;
 
 import java.io.File;
 import java.util.Arrays;
-import org.apache.commons.configuration2.ex.ConfigurationException;
 import org.apache.commons.io.FileUtils;
 import 
org.apache.pinot.segment.local.segment.index.text.TextIndexConfigBuilder;
 import org.apache.pinot.segment.spi.V1Constants;
 import org.apache.pinot.segment.spi.index.TextIndexConfig;
+import org.apache.pinot.spi.utils.JsonUtils;
 import org.testng.annotations.Test;
 
 import static org.testng.Assert.assertEquals;
@@ -35,7 +35,7 @@ public class TextIndexUtilsTest {
 
   @Test
   public void testRoundTripProperties()
-      throws ConfigurationException {
+      throws Exception {
     TextIndexConfig config =
         new 
TextIndexConfigBuilder().withLuceneAnalyzerClass("org.apache.lucene.analysis.core.KeywordAnalyzer")
             .withLuceneAnalyzerClassArgs(
@@ -45,7 +45,8 @@ public class TextIndexUtilsTest {
 
     TextIndexUtils.writeConfigToPropertiesFile(TEMP_DIR, config);
     TextIndexConfig readConfig = 
TextIndexUtils.getUpdatedConfigFromPropertiesFile(
-        new File(TEMP_DIR, 
V1Constants.Indexes.LUCENE_TEXT_INDEX_PROPERTIES_FILE), config);
+        new File(TEMP_DIR, 
V1Constants.Indexes.LUCENE_TEXT_INDEX_PROPERTIES_FILE),
+        JsonUtils.stringToObject("{}", TextIndexConfig.class));
     assertEquals(readConfig, config);
   }
 }
diff --git 
a/pinot-segment-spi/src/main/java/org/apache/pinot/segment/spi/index/TextIndexConfig.java
 
b/pinot-segment-spi/src/main/java/org/apache/pinot/segment/spi/index/TextIndexConfig.java
index 6f3a768837..bc88e2e071 100644
--- 
a/pinot-segment-spi/src/main/java/org/apache/pinot/segment/spi/index/TextIndexConfig.java
+++ 
b/pinot-segment-spi/src/main/java/org/apache/pinot/segment/spi/index/TextIndexConfig.java
@@ -39,6 +39,7 @@ public class TextIndexConfig extends IndexConfig {
   private static final boolean 
LUCENE_INDEX_ENABLE_PREFIX_SUFFIX_MATCH_IN_PHRASE_SEARCH = false;
   private static final boolean LUCENE_INDEX_REUSE_MUTABLE_INDEX = false;
   private static final int 
LUCENE_INDEX_NRT_CACHING_DIRECTORY_MAX_BUFFER_SIZE_MB = 0;
+  private static final boolean 
LUCENE_INDEX_DEFAULT_USE_AND_FOR_MULTI_TERM_QUERIES = false;
 
   public static final TextIndexConfig DISABLED =
       new TextIndexConfig(true, null, null, false, false, 
Collections.emptyList(), Collections.emptyList(), false,
@@ -205,7 +206,7 @@ public class TextIndexConfig extends IndexConfig {
     @Nullable
     protected Object _rawValueForTextIndex;
     protected boolean _enableQueryCache = false;
-    protected boolean _useANDForMultiTermQueries = true;
+    protected boolean _useANDForMultiTermQueries = 
LUCENE_INDEX_DEFAULT_USE_AND_FOR_MULTI_TERM_QUERIES;
     protected List<String> _stopWordsInclude = new ArrayList<>();
     protected List<String> _stopWordsExclude = new ArrayList<>();
     protected boolean _luceneUseCompoundFile = 
LUCENE_INDEX_DEFAULT_USE_COMPOUND_FILE;
@@ -227,8 +228,10 @@ public class TextIndexConfig extends IndexConfig {
       _fstType = other._fstType;
       _enableQueryCache = other._enableQueryCache;
       _useANDForMultiTermQueries = other._useANDForMultiTermQueries;
-      _stopWordsInclude = new ArrayList<>(other._stopWordsInclude);
-      _stopWordsExclude = new ArrayList<>(other._stopWordsExclude);
+      _stopWordsInclude =
+          other._stopWordsInclude == null ? new ArrayList<>() : new 
ArrayList<>(other._stopWordsInclude);
+      _stopWordsExclude =
+          other._stopWordsExclude == null ? new ArrayList<>() : new 
ArrayList<>(other._stopWordsExclude);
       _luceneUseCompoundFile = other._luceneUseCompoundFile;
       _luceneMaxBufferSizeMB = other._luceneMaxBufferSizeMB;
       _luceneAnalyzerClass = other._luceneAnalyzerClass;
@@ -340,16 +343,17 @@ public class TextIndexConfig extends IndexConfig {
       return false;
     }
     TextIndexConfig that = (TextIndexConfig) o;
-    return _enableQueryCache == that._enableQueryCache && 
_useANDForMultiTermQueries == that._useANDForMultiTermQueries
+    return _enableQueryCache == that._enableQueryCache
+        && _useANDForMultiTermQueries == that._useANDForMultiTermQueries
         && _luceneUseCompoundFile == that._luceneUseCompoundFile
         && _luceneMaxBufferSizeMB == that._luceneMaxBufferSizeMB
         && _enablePrefixSuffixMatchingInPhraseQueries == 
that._enablePrefixSuffixMatchingInPhraseQueries
         && _reuseMutableIndex == that._reuseMutableIndex
         && _luceneNRTCachingDirectoryMaxBufferSizeMB == 
that._luceneNRTCachingDirectoryMaxBufferSizeMB
-        && _fstType == that._fstType && Objects.equals(_rawValueForTextIndex, 
that._rawValueForTextIndex)
-        && Objects.equals(_stopWordsInclude, that._stopWordsInclude) && 
Objects.equals(_stopWordsExclude,
-        that._stopWordsExclude) && _luceneUseCompoundFile == 
that._luceneUseCompoundFile
-        && _luceneMaxBufferSizeMB == that._luceneMaxBufferSizeMB
+        && _fstType == that._fstType
+        && Objects.equals(_rawValueForTextIndex, that._rawValueForTextIndex)
+        && Objects.equals(_stopWordsInclude, that._stopWordsInclude)
+        && Objects.equals(_stopWordsExclude, that._stopWordsExclude)
         && Objects.equals(_luceneAnalyzerClass, that._luceneAnalyzerClass)
         && Objects.equals(_luceneAnalyzerClassArgs, 
that._luceneAnalyzerClassArgs)
         && Objects.equals(_luceneAnalyzerClassArgTypes, 
that._luceneAnalyzerClassArgTypes)


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@pinot.apache.org
For additional commands, e-mail: commits-h...@pinot.apache.org

Reply via email to