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

ggregory pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/commons-text.git


The following commit(s) were added to refs/heads/master by this push:
     new a713ac59 
StringLookupFactory.DefaultStringLookupsHolder.createDefaultStringLookups() 
maps DefaultStringLookup.LOCAL_HOST twice instead of once for LOCAL_HOST and 
LOOPBACK_ADDRESS
a713ac59 is described below

commit a713ac59c096e4233886c2b1e9a90fc2e06ef9ce
Author: Gary Gregory <garydgreg...@gmail.com>
AuthorDate: Tue Mar 4 15:38:38 2025 -0500

    StringLookupFactory.DefaultStringLookupsHolder.createDefaultStringLookups()
    maps DefaultStringLookup.LOCAL_HOST twice instead of once for LOCAL_HOST
    and LOOPBACK_ADDRESS
---
 src/changes/changes.xml                            |  1 +
 .../commons/text/lookup/StringLookupFactory.java   |  4 +-
 .../text/lookup/StringLookupFactoryTest.java       | 83 +++++++++++++++-------
 3 files changed, 60 insertions(+), 28 deletions(-)

diff --git a/src/changes/changes.xml b/src/changes/changes.xml
index f63863b7..a655bc77 100644
--- a/src/changes/changes.xml
+++ b/src/changes/changes.xml
@@ -49,6 +49,7 @@ The <action> type attribute can be add,update,fix,remove.
     <!-- FIX -->
     <action type="fix" dev="ggregory" due-to="Gary Gregory">Remove -nouses 
directive from maven-bundle-plugin. OSGi package imports now state 'uses' 
definitions for package imports, this doesn't affect JPMS (from 
org.apache.commons:commons-parent:80).</action>
     <action type="fix" dev="ggregory" due-to="Gary Gregory">Deprecate 
EntityArrays.EntityArrays().</action>
+    <action type="fix" dev="ggregory" due-to="Gary 
Gregory">StringLookupFactory.DefaultStringLookupsHolder.createDefaultStringLookups()
 maps DefaultStringLookup.LOCAL_HOST twice instead of once for LOCAL_HOST and 
LOOPBACK_ADDRESS.</action>
     <!-- ADD -->
     <!-- UPDATE -->
     <action type="update" dev="ggregory" due-to="Gary Gregory">Bump 
org.apache.commons:commons-parent from 79 to 81.</action>
diff --git 
a/src/main/java/org/apache/commons/text/lookup/StringLookupFactory.java 
b/src/main/java/org/apache/commons/text/lookup/StringLookupFactory.java
index 3bf59559..4916e8d8 100644
--- a/src/main/java/org/apache/commons/text/lookup/StringLookupFactory.java
+++ b/src/main/java/org/apache/commons/text/lookup/StringLookupFactory.java
@@ -295,7 +295,6 @@ public final class StringLookupFactory {
          */
         private static Map<String, StringLookup> createDefaultStringLookups() {
             final Map<String, StringLookup> lookupMap = new HashMap<>();
-
             addLookup(DefaultStringLookup.BASE64_DECODER, lookupMap);
             addLookup(DefaultStringLookup.BASE64_ENCODER, lookupMap);
             addLookup(DefaultStringLookup.CONST, lookupMap);
@@ -304,7 +303,7 @@ public final class StringLookupFactory {
             addLookup(DefaultStringLookup.FILE, lookupMap);
             addLookup(DefaultStringLookup.JAVA, lookupMap);
             addLookup(DefaultStringLookup.LOCAL_HOST, lookupMap);
-            addLookup(DefaultStringLookup.LOCAL_HOST, lookupMap);
+            addLookup(DefaultStringLookup.LOOPBACK_ADDRESS, lookupMap);
             addLookup(DefaultStringLookup.PROPERTIES, lookupMap);
             addLookup(DefaultStringLookup.RESOURCE_BUNDLE, lookupMap);
             addLookup(DefaultStringLookup.SYSTEM_PROPERTIES, lookupMap);
@@ -313,7 +312,6 @@ public final class StringLookupFactory {
             addLookup(DefaultStringLookup.XML, lookupMap);
             addLookup(DefaultStringLookup.XML_DECODER, lookupMap);
             addLookup(DefaultStringLookup.XML_ENCODER, lookupMap);
-
             return lookupMap;
         }
 
diff --git 
a/src/test/java/org/apache/commons/text/lookup/StringLookupFactoryTest.java 
b/src/test/java/org/apache/commons/text/lookup/StringLookupFactoryTest.java
index b32b01ad..34bf7aa5 100644
--- a/src/test/java/org/apache/commons/text/lookup/StringLookupFactoryTest.java
+++ b/src/test/java/org/apache/commons/text/lookup/StringLookupFactoryTest.java
@@ -16,15 +16,21 @@
  */
 package org.apache.commons.text.lookup;
 
+import static org.junit.jupiter.api.Assertions.assertEquals;
+import static org.junit.jupiter.api.Assertions.assertNotNull;
+import static org.junit.jupiter.api.Assertions.assertSame;
+import static org.junit.jupiter.api.Assertions.assertThrows;
+import static org.junit.jupiter.api.Assertions.assertTrue;
+
 import java.util.HashMap;
 import java.util.HashSet;
+import java.util.Locale;
 import java.util.Map;
 import java.util.Properties;
 import java.util.Set;
 
 import javax.xml.XMLConstants;
 
-import org.junit.jupiter.api.Assertions;
 import org.junit.jupiter.api.Test;
 
 /**
@@ -60,12 +66,12 @@ public class StringLookupFactoryTest {
 
         for (final String key : keys) {
             final String normalizedKey = StringLookupFactory.toKey(key);
-            Assertions.assertNotNull(normalizedKey, () -> "Expected map to 
contain string lookup for key " + key);
+            assertNotNull(normalizedKey, () -> "Expected map to contain string 
lookup for key " + key);
 
             remainingKeys.remove(normalizedKey);
         }
 
-        Assertions.assertTrue(remainingKeys.isEmpty(), () -> "Unexpected keys 
in lookup map: " + remainingKeys);
+        assertTrue(remainingKeys.isEmpty(), () -> "Unexpected keys in lookup 
map: " + remainingKeys);
     }
 
     private static void checkDefaultStringLookupsHolder(final Properties 
props, final String... keys) {
@@ -157,9 +163,9 @@ public class StringLookupFactoryTest {
         final Properties props = new Properties();
         props.setProperty(StringLookupFactory.DEFAULT_STRING_LOOKUPS_PROPERTY, 
"base64_encoder nope");
 
-        final Exception exc = 
Assertions.assertThrows(IllegalArgumentException.class,
+        final Exception exc = assertThrows(IllegalArgumentException.class,
                 () -> new 
StringLookupFactory.DefaultStringLookupsHolder(props));
-        Assertions.assertEquals("Invalid default string lookups definition: 
base64_encoder nope", exc.getMessage());
+        assertEquals("Invalid default string lookups definition: 
base64_encoder nope", exc.getMessage());
     }
 
     @Test
@@ -215,30 +221,57 @@ public class StringLookupFactoryTest {
     @Test
     public void testSingletons() {
         final StringLookupFactory stringLookupFactory = 
StringLookupFactory.INSTANCE;
-        Assertions.assertSame(StringLookupFactory.INSTANCE_BASE64_DECODER,
+        assertSame(StringLookupFactory.INSTANCE_BASE64_DECODER,
             stringLookupFactory.base64DecoderStringLookup());
-        Assertions.assertSame(StringLookupFactory.INSTANCE_BASE64_ENCODER,
+        assertSame(StringLookupFactory.INSTANCE_BASE64_ENCODER,
             stringLookupFactory.base64EncoderStringLookup());
-        Assertions.assertSame(ConstantStringLookup.INSTANCE, 
stringLookupFactory.constantStringLookup());
-        Assertions.assertSame(DateStringLookup.INSTANCE, 
stringLookupFactory.dateStringLookup());
-        Assertions.assertSame(DnsStringLookup.INSTANCE, 
stringLookupFactory.dnsStringLookup());
-        
Assertions.assertSame(StringLookupFactory.INSTANCE_ENVIRONMENT_VARIABLES,
+        assertSame(ConstantStringLookup.INSTANCE, 
stringLookupFactory.constantStringLookup());
+        assertSame(DateStringLookup.INSTANCE, 
stringLookupFactory.dateStringLookup());
+        assertSame(DnsStringLookup.INSTANCE, 
stringLookupFactory.dnsStringLookup());
+        assertSame(StringLookupFactory.INSTANCE_ENVIRONMENT_VARIABLES,
             stringLookupFactory.environmentVariableStringLookup());
-        Assertions.assertSame(InterpolatorStringLookup.INSTANCE, 
stringLookupFactory.interpolatorStringLookup());
-        Assertions.assertSame(JavaPlatformStringLookup.INSTANCE, 
stringLookupFactory.javaPlatformStringLookup());
-        Assertions.assertSame(InetAddressStringLookup.LOCAL_HOST, 
stringLookupFactory.localHostStringLookup());
-        Assertions.assertSame(InetAddressStringLookup.LOOPACK_ADDRESS, 
stringLookupFactory.loopbackAddressStringLookup());
-        Assertions.assertSame(StringLookupFactory.INSTANCE_NULL, 
stringLookupFactory.nullStringLookup());
-        Assertions.assertSame(ResourceBundleStringLookup.INSTANCE, 
stringLookupFactory.resourceBundleStringLookup());
-        Assertions.assertSame(ScriptStringLookup.INSTANCE, 
stringLookupFactory.scriptStringLookup());
-        Assertions.assertSame(StringLookupFactory.INSTANCE_SYSTEM_PROPERTIES,
+        assertSame(InterpolatorStringLookup.INSTANCE, 
stringLookupFactory.interpolatorStringLookup());
+        assertSame(JavaPlatformStringLookup.INSTANCE, 
stringLookupFactory.javaPlatformStringLookup());
+        assertSame(InetAddressStringLookup.LOCAL_HOST, 
stringLookupFactory.localHostStringLookup());
+        assertSame(InetAddressStringLookup.LOOPACK_ADDRESS, 
stringLookupFactory.loopbackAddressStringLookup());
+        assertSame(StringLookupFactory.INSTANCE_NULL, 
stringLookupFactory.nullStringLookup());
+        assertSame(ResourceBundleStringLookup.INSTANCE, 
stringLookupFactory.resourceBundleStringLookup());
+        assertSame(ScriptStringLookup.INSTANCE, 
stringLookupFactory.scriptStringLookup());
+        assertSame(StringLookupFactory.INSTANCE_SYSTEM_PROPERTIES,
             stringLookupFactory.systemPropertyStringLookup());
-        Assertions.assertSame(UrlDecoderStringLookup.INSTANCE, 
stringLookupFactory.urlDecoderStringLookup());
-        Assertions.assertSame(UrlEncoderStringLookup.INSTANCE, 
stringLookupFactory.urlEncoderStringLookup());
-        Assertions.assertSame(UrlStringLookup.INSTANCE, 
stringLookupFactory.urlStringLookup());
-        Assertions.assertSame(XmlStringLookup.INSTANCE, 
stringLookupFactory.xmlStringLookup());
-        Assertions.assertSame(XmlDecoderStringLookup.INSTANCE, 
stringLookupFactory.xmlDecoderStringLookup());
-        Assertions.assertSame(XmlEncoderStringLookup.INSTANCE, 
stringLookupFactory.xmlEncoderStringLookup());
+        assertSame(UrlDecoderStringLookup.INSTANCE, 
stringLookupFactory.urlDecoderStringLookup());
+        assertSame(UrlEncoderStringLookup.INSTANCE, 
stringLookupFactory.urlEncoderStringLookup());
+        assertSame(UrlStringLookup.INSTANCE, 
stringLookupFactory.urlStringLookup());
+        assertSame(XmlStringLookup.INSTANCE, 
stringLookupFactory.xmlStringLookup());
+        assertSame(XmlDecoderStringLookup.INSTANCE, 
stringLookupFactory.xmlDecoderStringLookup());
+        assertSame(XmlEncoderStringLookup.INSTANCE, 
stringLookupFactory.xmlEncoderStringLookup());
+    }
+
+    /**
+     * Tests that we return the singleton.
+     */
+    @Test
+    public void testDefault() {
+        final StringLookupFactory stringLookupFactory = 
StringLookupFactory.INSTANCE;
+        final Map<String, StringLookup> stringLookupMap = new HashMap<>();
+        stringLookupFactory.addDefaultStringLookups(stringLookupMap);
+        assertTrue(stringLookupMap.containsKey("base64"));
+        
assertTrue(stringLookupMap.containsKey(StringLookupFactory.KEY_BASE64_ENCODER.toLowerCase(Locale.ROOT)));
+        
assertTrue(stringLookupMap.containsKey(StringLookupFactory.KEY_CONST.toLowerCase(Locale.ROOT)));
+        assertTrue(stringLookupMap.containsKey(StringLookupFactory.KEY_DATE));
+        
assertTrue(stringLookupMap.containsKey(StringLookupFactory.KEY_ENV.toLowerCase(Locale.ROOT)));
+        
assertTrue(stringLookupMap.containsKey(StringLookupFactory.KEY_FILE.toLowerCase(Locale.ROOT)));
+        
assertTrue(stringLookupMap.containsKey(StringLookupFactory.KEY_JAVA.toLowerCase(Locale.ROOT)));
+        
assertTrue(stringLookupMap.containsKey(StringLookupFactory.KEY_LOCALHOST.toLowerCase(Locale.ROOT)));
+        
assertTrue(stringLookupMap.containsKey(StringLookupFactory.KEY_LOOPBACK_ADDRESS.toLowerCase(Locale.ROOT)));
+        
assertTrue(stringLookupMap.containsKey(StringLookupFactory.KEY_PROPERTIES.toLowerCase(Locale.ROOT)));
+        
assertTrue(stringLookupMap.containsKey(StringLookupFactory.KEY_RESOURCE_BUNDLE.toLowerCase(Locale.ROOT)));
+        
assertTrue(stringLookupMap.containsKey(StringLookupFactory.KEY_SYS.toLowerCase(Locale.ROOT)));
+        
assertTrue(stringLookupMap.containsKey(StringLookupFactory.KEY_URL_DECODER.toLowerCase(Locale.ROOT)));
+        
assertTrue(stringLookupMap.containsKey(StringLookupFactory.KEY_URL_ENCODER.toLowerCase(Locale.ROOT)));
+        
assertTrue(stringLookupMap.containsKey(StringLookupFactory.KEY_XML.toLowerCase(Locale.ROOT)));
+        
assertTrue(stringLookupMap.containsKey(StringLookupFactory.KEY_XML_DECODER.toLowerCase(Locale.ROOT)));
+        
assertTrue(stringLookupMap.containsKey(StringLookupFactory.KEY_XML_ENCODER.toLowerCase(Locale.ROOT)));
     }
 
     @Test

Reply via email to