[
https://issues.apache.org/jira/browse/LANG-1771?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Gary D. Gregory resolved LANG-1771.
-----------------------------------
Fix Version/s: 3.19.0
Resolution: Fixed
> 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: IlikeCode
> Priority: Major
> Fix For: 3.19.0
>
> 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)