You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Madhur Lathi (Jira)" <ji...@apache.org> on 2025/09/02 02:35:00 UTC
[jira] [Commented] (LANG-1771) Incorrect output from ClassUtils.getCanonicalName when input is "[String" in version 3.18.0-SNAPSHOT
[ https://issues.apache.org/jira/browse/LANG-1771?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18017574#comment-18017574 ]
Madhur Lathi commented on LANG-1771:
------------------------------------
This issue has been fixed in the Git master branch and the latest snapshot builds.
[PR for reference|https://github.com/apache/commons-lang/pull/1437]
Please verify your use cases.
For malformed input, an {{IllegalArgumentException}} is now thrown with a descriptive message.
> 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
> 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)