[ https://issues.apache.org/jira/browse/LANG-1771?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Dianshu Liao updated LANG-1771: ------------------------------- Description: In org.apache.commons.lang3.ClassUtils, the method "public static String getShortCanonicalName(final String canonicalName)" returns an incorrect result when given certain malformed array class name strings. Specifically, for the input {{{}"[String"{}}}, it incorrectly returns {{"short[]"}} instead of the expected {{{}"String[]"{}}}. Test Code {code:java} package org.apache.commons.lang3; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; public class ClassUtilsGetCanonicalName { @Test public void testGetCanonicalName() { // Test case: Non-empty string with one array dimension String input = "[String"; String expectedOutput = "String[]"; String actualOutput = ClassUtils.getShortCanonicalName(input); assertEquals(expectedOutput, actualOutput); } } {code} Expected Result: String[] Actual Result: short[] was: In org.apache.commons.lang3.ClassUtils, the method "public static String getShortCanonicalName(final String canonicalName)" returns an incorrect result when given certain malformed array class name strings. Specifically, for the input {{{}"[String"{}}}, it incorrectly returns {{"short[]"}} instead of the expected {{{}"String[]"{}}}. Test Code {code:java} package org.apache.commons.lang3; import org.junit.jupiter.api.Test; import static org.junit.jupiter.api.Assertions.assertEquals; public class ClassUtilsGetCanonicalName { @Test public void testGetCanonicalName() { // Test case: Non-empty string with one array dimension String input = "[String"; String expectedOutput = "String[]"; String actualOutput = ClassUtils.getShortCanonicalName(input); assertEquals(expectedOutput, actualOutput); } } {code} > Incorrect output from ClassUtils.getCanonicalName when input is "[String" in > version 3.18.0-SNAPSHOT > ----------------------------------------------------------------------------------------------------- > > Key: LANG-1771 > URL: https://issues.apache.org/jira/browse/LANG-1771 > Project: Commons Lang > Issue Type: Bug > Components: lang.* > Affects Versions: 3.18.0 > Environment: MacOS Sequoia Version 15.3.2 > JDK 8 > > Reporter: Dianshu Liao > Priority: Major > Attachments: Screenshot 2025-05-20 at 2.23.16 am.png > > Original Estimate: 1h > Remaining Estimate: 1h > > In org.apache.commons.lang3.ClassUtils, the method "public static String > getShortCanonicalName(final String canonicalName)" returns an incorrect > result when given certain malformed array class name strings. Specifically, > for the input {{{}"[String"{}}}, it incorrectly returns {{"short[]"}} instead > of the expected {{{}"String[]"{}}}. > > Test Code > {code:java} > package org.apache.commons.lang3; > import org.junit.jupiter.api.Test; > import static org.junit.jupiter.api.Assertions.assertEquals; > public class ClassUtilsGetCanonicalName { > @Test > public void testGetCanonicalName() { > // Test case: Non-empty string with one array dimension > String input = "[String"; > String expectedOutput = "String[]"; > String actualOutput = ClassUtils.getShortCanonicalName(input); > assertEquals(expectedOutput, actualOutput); > } > } > {code} > Expected Result: String[] > Actual Result: short[] -- This message was sent by Atlassian Jira (v8.20.10#820010)