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

sanjaydutt pushed a commit to branch branch_9x
in repository https://gitbox.apache.org/repos/asf/solr.git


The following commit(s) were added to refs/heads/branch_9x by this push:
     new 475bded5acb SOLR-17399: Replace the use of the deprecated 
java.util.Locale constructor with Locale Builder API (#2633)
475bded5acb is described below

commit 475bded5acb22649c37784051d4f21a54cc07905
Author: Sanjay Dutt <[email protected]>
AuthorDate: Fri Aug 23 18:53:32 2024 +0530

    SOLR-17399: Replace the use of the deprecated java.util.Locale constructor 
with Locale Builder API (#2633)
    
    (cherry picked from commit ca2487601723c9391ef763fe77e2f06107ff46cf)
---
 gradle/validation/forbidden-apis/defaults.all.txt            |  5 ++++-
 solr/CHANGES.txt                                             |  2 ++
 .../apache/solr/highlight/BreakIteratorBoundaryScanner.java  |  2 +-
 .../org/apache/solr/highlight/UnifiedSolrHighlighter.java    | 10 +++++-----
 .../core/src/java/org/apache/solr/schema/CollationField.java |  7 ++-----
 .../src/test/org/apache/solr/schema/TestCollationField.java  |  3 ++-
 .../org/apache/solr/schema/TestCollationFieldDocValues.java  |  3 ++-
 .../update/processor/ParsingFieldUpdateProcessorsTest.java   | 12 ++++++++----
 .../update/processor/OpenNLPLangDetectUpdateProcessor.java   |  2 +-
 9 files changed, 27 insertions(+), 19 deletions(-)

diff --git a/gradle/validation/forbidden-apis/defaults.all.txt 
b/gradle/validation/forbidden-apis/defaults.all.txt
index f1220bfcd05..2faad099236 100644
--- a/gradle/validation/forbidden-apis/defaults.all.txt
+++ b/gradle/validation/forbidden-apis/defaults.all.txt
@@ -85,4 +85,7 @@ java.util.logging.**
 java.util.Collections#sort(java.util.List, java.util.Comparator)
 
 @defaultMessage Use URI.toURL() to construct an instance of URL.
-java.net.URL#<init>(**)
\ No newline at end of file
+java.net.URL#<init>(**)
+
+@defaultMessage Use Locale.Builder instead.
+java.util.Locale#<init>(**)
\ No newline at end of file
diff --git a/solr/CHANGES.txt b/solr/CHANGES.txt
index e5e088b07bd..d1ac2eded11 100644
--- a/solr/CHANGES.txt
+++ b/solr/CHANGES.txt
@@ -43,6 +43,8 @@ Other Changes
 ---------------------
 * SOLR-17321: Remove Deprecated URL and replace it with URI in Preparation for 
Java 21 (Sanjay Dutt, David Smiley, Uwe Schindler)
 
+* SOLR-17399: Replace the use of the deprecated java.util.Locale constructor 
with Locale Builder API. (Sanjay Dutt)
+
 ==================  9.7.0 ==================
 New Features
 ---------------------
diff --git 
a/solr/core/src/java/org/apache/solr/highlight/BreakIteratorBoundaryScanner.java
 
b/solr/core/src/java/org/apache/solr/highlight/BreakIteratorBoundaryScanner.java
index bae6dd19603..8efefef314b 100644
--- 
a/solr/core/src/java/org/apache/solr/highlight/BreakIteratorBoundaryScanner.java
+++ 
b/solr/core/src/java/org/apache/solr/highlight/BreakIteratorBoundaryScanner.java
@@ -40,7 +40,7 @@ public class BreakIteratorBoundaryScanner extends 
SolrBoundaryScanner {
     }
     Locale locale = null;
     if (language != null) {
-      locale = country == null ? new Locale(language) : new Locale(language, 
country);
+      locale = new 
Locale.Builder().setLanguage(language).setRegion(country).build();
     } else {
       locale = Locale.ROOT;
     }
diff --git 
a/solr/core/src/java/org/apache/solr/highlight/UnifiedSolrHighlighter.java 
b/solr/core/src/java/org/apache/solr/highlight/UnifiedSolrHighlighter.java
index 4390893ec76..5f43904f517 100644
--- a/solr/core/src/java/org/apache/solr/highlight/UnifiedSolrHighlighter.java
+++ b/solr/core/src/java/org/apache/solr/highlight/UnifiedSolrHighlighter.java
@@ -395,12 +395,12 @@ public class UnifiedSolrHighlighter extends 
SolrHighlighter implements PluginInf
             "language is required if country or variant is specified");
       } else if (country == null && variant != null) {
         throw new IllegalArgumentException("To specify variant, country is 
required");
-      } else if (country != null && variant != null) {
-        return new Locale(language, country, variant);
-      } else if (country != null) {
-        return new Locale(language, country);
       } else {
-        return new Locale(language);
+        return new Locale.Builder()
+            .setLanguage(language)
+            .setRegion(country)
+            .setVariant(variant)
+            .build();
       }
     }
 
diff --git a/solr/core/src/java/org/apache/solr/schema/CollationField.java 
b/solr/core/src/java/org/apache/solr/schema/CollationField.java
index 91f67d459e7..e55474f8953 100644
--- a/solr/core/src/java/org/apache/solr/schema/CollationField.java
+++ b/solr/core/src/java/org/apache/solr/schema/CollationField.java
@@ -149,11 +149,8 @@ public class CollationField extends FieldType {
 
     if (language != null && country == null && variant != null)
       throw new SolrException(ErrorCode.SERVER_ERROR, "To specify variant, 
country is required");
-    else if (language != null && country != null && variant != null)
-      locale = new Locale(language, country, variant);
-    else if (language != null && country != null) locale = new 
Locale(language, country);
-    else locale = new Locale(language);
-
+    locale =
+        new 
Locale.Builder().setLanguage(language).setRegion(country).setVariant(variant).build();
     return Collator.getInstance(locale);
   }
 
diff --git a/solr/core/src/test/org/apache/solr/schema/TestCollationField.java 
b/solr/core/src/test/org/apache/solr/schema/TestCollationField.java
index 163e15f7794..0ac2d36e4bb 100644
--- a/solr/core/src/test/org/apache/solr/schema/TestCollationField.java
+++ b/solr/core/src/test/org/apache/solr/schema/TestCollationField.java
@@ -75,7 +75,8 @@ public class TestCollationField extends SolrTestCaseJ4 {
 
     // generate custom collation rules (DIN 5007-2), saving to customrules.dat
     RuleBasedCollator baseCollator =
-        (RuleBasedCollator) Collator.getInstance(new Locale("de", "DE"));
+        (RuleBasedCollator)
+            Collator.getInstance(new 
Locale.Builder().setLanguageTag("de-DE").build());
 
     String DIN5007_2_tailorings =
         "& ae , a\u0308 & AE , A\u0308"
diff --git 
a/solr/core/src/test/org/apache/solr/schema/TestCollationFieldDocValues.java 
b/solr/core/src/test/org/apache/solr/schema/TestCollationFieldDocValues.java
index 79c7b50a949..b38b65f81fc 100644
--- a/solr/core/src/test/org/apache/solr/schema/TestCollationFieldDocValues.java
+++ b/solr/core/src/test/org/apache/solr/schema/TestCollationFieldDocValues.java
@@ -75,7 +75,8 @@ public class TestCollationFieldDocValues extends 
SolrTestCaseJ4 {
 
     // generate custom collation rules (DIN 5007-2), saving to customrules.dat
     RuleBasedCollator baseCollator =
-        (RuleBasedCollator) Collator.getInstance(new Locale("de", "DE"));
+        (RuleBasedCollator)
+            Collator.getInstance(new 
Locale.Builder().setLanguageTag("de-DE").build());
 
     String DIN5007_2_tailorings =
         "& ae , a\u0308 & AE , A\u0308"
diff --git 
a/solr/core/src/test/org/apache/solr/update/processor/ParsingFieldUpdateProcessorsTest.java
 
b/solr/core/src/test/org/apache/solr/update/processor/ParsingFieldUpdateProcessorsTest.java
index 398509f0c04..7e78a49da9c 100644
--- 
a/solr/core/src/test/org/apache/solr/update/processor/ParsingFieldUpdateProcessorsTest.java
+++ 
b/solr/core/src/test/org/apache/solr/update/processor/ParsingFieldUpdateProcessorsTest.java
@@ -306,7 +306,8 @@ public class ParsingFieldUpdateProcessorsTest extends 
UpdateProcessorTestBase {
   }
 
   public void testParseIntNonRootLocale() throws Exception {
-    final DecimalFormatSymbols ru_RU = DecimalFormatSymbols.getInstance(new 
Locale("ru", "RU"));
+    final DecimalFormatSymbols ru_RU =
+        DecimalFormatSymbols.getInstance(new 
Locale.Builder().setLanguageTag("ru-RU").build());
     final char groupChar = ru_RU.getGroupingSeparator();
 
     int value = 1089883491;
@@ -421,7 +422,8 @@ public class ParsingFieldUpdateProcessorsTest extends 
UpdateProcessorTestBase {
   }
 
   public void testParseLongNonRootLocale() throws Exception {
-    final DecimalFormatSymbols ru_RU = DecimalFormatSymbols.getInstance(new 
Locale("ru", "RU"));
+    final DecimalFormatSymbols ru_RU =
+        DecimalFormatSymbols.getInstance(new 
Locale.Builder().setLanguageTag("ru-RU").build());
     final char groupChar = ru_RU.getGroupingSeparator();
 
     long value = 1089883491L;
@@ -518,7 +520,8 @@ public class ParsingFieldUpdateProcessorsTest extends 
UpdateProcessorTestBase {
   }
 
   public void testParseFloatNonRootLocale() throws Exception {
-    final DecimalFormatSymbols fr_FR = DecimalFormatSymbols.getInstance(new 
Locale("fr", "FR"));
+    final DecimalFormatSymbols fr_FR =
+        DecimalFormatSymbols.getInstance(new 
Locale.Builder().setLanguageTag("fr-FR").build());
     final char groupChar = fr_FR.getGroupingSeparator();
     final char decimalChar = fr_FR.getDecimalSeparator();
 
@@ -636,7 +639,8 @@ public class ParsingFieldUpdateProcessorsTest extends 
UpdateProcessorTestBase {
   }
 
   public void testParseDoubleNonRootLocale() throws Exception {
-    final DecimalFormatSymbols fr_FR = DecimalFormatSymbols.getInstance(new 
Locale("fr", "FR"));
+    final DecimalFormatSymbols fr_FR =
+        DecimalFormatSymbols.getInstance(new 
Locale.Builder().setLanguageTag("fr-FR").build());
     final char groupChar = fr_FR.getGroupingSeparator();
     final char decimalChar = fr_FR.getDecimalSeparator();
 
diff --git 
a/solr/modules/langid/src/java/org/apache/solr/update/processor/OpenNLPLangDetectUpdateProcessor.java
 
b/solr/modules/langid/src/java/org/apache/solr/update/processor/OpenNLPLangDetectUpdateProcessor.java
index 8f6b611fe17..76b79d9f0a3 100644
--- 
a/solr/modules/langid/src/java/org/apache/solr/update/processor/OpenNLPLangDetectUpdateProcessor.java
+++ 
b/solr/modules/langid/src/java/org/apache/solr/update/processor/OpenNLPLangDetectUpdateProcessor.java
@@ -75,7 +75,7 @@ public class OpenNLPLangDetectUpdateProcessor extends 
LanguageIdentifierUpdatePr
   private static Map<String, String> make_ISO639_map() {
     Map<String, String> map = new HashMap<>();
     for (String lang : Locale.getISOLanguages()) {
-      Locale locale = new Locale(lang);
+      Locale locale = new Locale.Builder().setLanguage(lang).build();
       map.put(locale.getISO3Language(), locale.getLanguage());
     }
     return map;

Reply via email to