Make `static final Set` constants immutable (#13087)

This commit is contained in:
Dmitry Cherniachenko 2024-02-28 22:23:41 +01:00 committed by GitHub
parent 390c109e67
commit 7b01f2f516
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
6 changed files with 15 additions and 15 deletions

View File

@ -195,6 +195,9 @@ Improvements
* GITHUB#13041: TokenizedPhraseQueryNode code cleanup (Dmitry Cherniachenko) * GITHUB#13041: TokenizedPhraseQueryNode code cleanup (Dmitry Cherniachenko)
* GITHUB#13087: Changed `static final Set` constants to be immutable. Among others it affected
ScandinavianNormalizer.ALL_FOLDINGS set with public access. (Dmitry Cherniachenko)
Optimizations Optimizations
--------------------- ---------------------

View File

@ -16,6 +16,7 @@
*/ */
package org.apache.lucene.analysis.miscellaneous; package org.apache.lucene.analysis.miscellaneous;
import java.util.Collections;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.Set; import java.util.Set;
import org.apache.lucene.analysis.util.StemmerUtil; import org.apache.lucene.analysis.util.StemmerUtil;
@ -51,7 +52,8 @@ public final class ScandinavianNormalizer {
private final Set<Foldings> foldings; private final Set<Foldings> foldings;
public static final Set<Foldings> ALL_FOLDINGS = EnumSet.allOf(Foldings.class); public static final Set<Foldings> ALL_FOLDINGS =
Collections.unmodifiableSet(EnumSet.allOf(Foldings.class));
static final char AA = '\u00C5'; // Å static final char AA = '\u00C5'; // Å
static final char aa = '\u00E5'; // å static final char aa = '\u00E5'; // å

View File

@ -20,9 +20,7 @@ import java.io.IOException;
import java.io.Reader; import java.io.Reader;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import org.apache.lucene.analysis.AbstractAnalysisFactory; import org.apache.lucene.analysis.AbstractAnalysisFactory;
@ -55,10 +53,8 @@ public class TestFactories extends BaseTokenStreamTestCase {
/** Factories that are excluded from testing it with random data */ /** Factories that are excluded from testing it with random data */
private static final Set<Class<? extends AbstractAnalysisFactory>> EXCLUDE_FACTORIES_RANDOM_DATA = private static final Set<Class<? extends AbstractAnalysisFactory>> EXCLUDE_FACTORIES_RANDOM_DATA =
new HashSet<>( Set.of(
Arrays.asList( DelimitedTermFrequencyTokenFilterFactory.class, DelimitedBoostTokenFilterFactory.class);
DelimitedTermFrequencyTokenFilterFactory.class,
DelimitedBoostTokenFilterFactory.class));
public void test() throws IOException { public void test() throws IOException {
for (String tokenizer : TokenizerFactory.availableTokenizers()) { for (String tokenizer : TokenizerFactory.availableTokenizers()) {

View File

@ -20,9 +20,7 @@ import java.io.IOException;
import java.io.Reader; import java.io.Reader;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;
import java.lang.reflect.InvocationTargetException; import java.lang.reflect.InvocationTargetException;
import java.util.Arrays;
import java.util.HashMap; import java.util.HashMap;
import java.util.HashSet;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
import org.apache.lucene.analysis.AbstractAnalysisFactory; import org.apache.lucene.analysis.AbstractAnalysisFactory;
@ -53,10 +51,8 @@ public class TestFactories extends BaseTokenStreamTestCase {
/** Factories that are excluded from testing it with random data */ /** Factories that are excluded from testing it with random data */
private static final Set<Class<? extends AbstractAnalysisFactory>> EXCLUDE_FACTORIES_RANDOM_DATA = private static final Set<Class<? extends AbstractAnalysisFactory>> EXCLUDE_FACTORIES_RANDOM_DATA =
new HashSet<>( Set.of(
Arrays.asList( DelimitedTermFrequencyTokenFilterFactory.class, DelimitedBoostTokenFilterFactory.class);
DelimitedTermFrequencyTokenFilterFactory.class,
DelimitedBoostTokenFilterFactory.class));
public void test() throws IOException { public void test() throws IOException {
for (String tokenizer : TokenizerFactory.availableTokenizers()) { for (String tokenizer : TokenizerFactory.availableTokenizers()) {

View File

@ -29,6 +29,7 @@ import java.nio.file.Paths;
import java.nio.file.StandardOpenOption; import java.nio.file.StandardOpenOption;
import java.text.ParseException; import java.text.ParseException;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collections;
import java.util.HashSet; import java.util.HashSet;
import java.util.Iterator; import java.util.Iterator;
import java.util.LinkedHashSet; import java.util.LinkedHashSet;
@ -98,7 +99,7 @@ public abstract class BackwardsCompatibilityTestBase extends LuceneTestCase {
// make sure we never miss a version. // make sure we never miss a version.
assertTrue("Version: " + version + " missing", binaryVersions.remove(version)); assertTrue("Version: " + version + " missing", binaryVersions.remove(version));
} }
BINARY_SUPPORTED_VERSIONS = binaryVersions; BINARY_SUPPORTED_VERSIONS = Collections.unmodifiableSet(binaryVersions);
} }
/** /**

View File

@ -17,6 +17,7 @@
package org.apache.lucene.util; package org.apache.lucene.util;
import java.util.Arrays; import java.util.Arrays;
import java.util.Collections;
import java.util.Iterator; import java.util.Iterator;
import java.util.NoSuchElementException; import java.util.NoSuchElementException;
import java.util.Set; import java.util.Set;
@ -25,7 +26,8 @@ import org.apache.lucene.tests.util.LuceneTestCase;
public class TestFilterIterator extends LuceneTestCase { public class TestFilterIterator extends LuceneTestCase {
private static final Set<String> set = new TreeSet<>(Arrays.asList("a", "b", "c")); private static final Set<String> set =
Collections.unmodifiableSet(new TreeSet<>(Arrays.asList("a", "b", "c")));
private static void assertNoMore(Iterator<?> it) { private static void assertNoMore(Iterator<?> it) {
assertFalse(it.hasNext()); assertFalse(it.hasNext());