Karakó Miklós created LANG-1753:
-----------------------------------

             Summary: StringUtils.replaceEachRepeatedly regression in 3.11+
                 Key: LANG-1753
                 URL: https://issues.apache.org/jira/browse/LANG-1753
             Project: Commons Lang
          Issue Type: Bug
          Components: lang.*
    Affects Versions: 3.17.0, 3.11
            Reporter: Karakó Miklós


The following test fails with Commons Lang 3.11 and 3.17.0:

{code}
assertThrows(
    IllegalStateException.class,
    () -> StringUtils.replaceEachRepeatedly("%{key1}",
        new String[] {"%{key1}", "%{key2}", "%{key3}"},
        new String[] {"Key1 %{key2}", "Key2 %{key3}", "Key3 %{key1}"}),
    "Should be a circular reference");
{code}

While it throws the expected IllegalStateException with 3.10.

This commit seems to be related: 
https://github.com/apache/commons-lang/commit/d62d4e21ef20ee01e65cbf5257e04d6b572aa73b

These also produce weird results with 3.11 and 3.17.0:

{code}
// fails, returns "bllaan" instead of "blaan"
// similar to the already existing test in StringUtilsTest
assertEquals("blaan", StringUtils.replaceEachRepeatedly("bllllaan", new 
String[]{"llaan"}, new String[]{"laan"}));
{code}

{code}
// fails, returns "aab" instead of "ab"
assertEquals("ab", StringUtils.replaceEachRepeatedly("aaaab", new String[] 
{"aab"}, new String[] {"ab"}));
{code}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to