Skip to content

Commit 5454931

Browse files
committed
[LANG-1792] TypeUtils.toString() skips angle brackets for Class type
1 parent 0cebd84 commit 5454931

File tree

3 files changed

+38
-1
lines changed

3 files changed

+38
-1
lines changed

src/changes/changes.xml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -55,6 +55,7 @@ The <action> type attribute can be add,update,fix,remove.
5555
<action type="fix" dev="ggregory" due-to="mayuming, Gary Gregory">Fix test fixture in ReflectionDiffBuilderTest.testTransientFieldDifference() #1464.</action>
5656
<action issue="LANG-1789" type="fix" dev="ggregory" due-to="Hylke van der Schaaf, Gary Gregory">NullPointerException when generating NoSuchMethodException in MethodUtils.</action>
5757
<action issue="LANG-1786" type="fix" dev="ggregory" due-to="Daniel Migowski, Gary Gregory, Lenny Primak">Map deprecated TimeZone short IDs and avoid JRE WARNINGs to the console #1483.</action>
58+
<action issue="LANG-1792" type="fix" dev="ggregory" due-to="Mykhailo Hryb, Gary Gregory">TypeUtils.toString() skips angle brackets for Class type.</action>
5859
<!-- ADD -->
5960
<action type="add" dev="ggregory" due-to="Gary Gregory">Add SystemProperties.getPath(String, Supplier&lt;Path&gt;).</action>
6061
<action type="add" dev="ggregory" due-to="Gary Gregory">Add JavaVersion.JAVA_25.</action>

src/main/java/org/apache/commons/lang3/reflect/TypeUtils.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -358,7 +358,7 @@ private static <T> String classToString(final Class<T> cls) {
358358
buf.append(cls.getName());
359359
}
360360
if (cls.getTypeParameters().length > 0) {
361-
CTJ_JOINER.join(buf, (TypeVariable[]) cls.getTypeParameters());
361+
GT_JOINER.join(buf, (TypeVariable[]) cls.getTypeParameters());
362362
}
363363
return buf.toString();
364364
}
Lines changed: 36 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,36 @@
1+
/*
2+
* Licensed to the Apache Software Foundation (ASF) under one or more
3+
* contributor license agreements. See the NOTICE file distributed with
4+
* this work for additional information regarding copyright ownership.
5+
* The ASF licenses this file to You under the Apache License, Version 2.0
6+
* (the "License"); you may not use this file except in compliance with
7+
* the License. You may obtain a copy of the License at
8+
*
9+
* https://www.apache.org/licenses/LICENSE-2.0
10+
*
11+
* Unless required by applicable law or agreed to in writing, software
12+
* distributed under the License is distributed on an "AS IS" BASIS,
13+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
14+
* See the License for the specific language governing permissions and
15+
* limitations under the License.
16+
*/
17+
18+
package org.apache.commons.lang3.reflect;
19+
20+
import static org.junit.jupiter.api.Assertions.assertEquals;
21+
22+
import org.junit.jupiter.api.Test;
23+
24+
/**
25+
* Tests https://issues.apache.org/jira/browse/LANG-1792
26+
*
27+
* @param <U> See https://issues.apache.org/jira/browse/LANG-1792
28+
*/
29+
public class Lang1792Test<U extends Number> {
30+
31+
@Test
32+
void testStackOverflowError() {
33+
assertEquals("org.apache.commons.lang3.reflect.Lang1792Test<U extends java.lang.Number>", TypeUtils.toString(Lang1792Test.class));
34+
}
35+
36+
}

0 commit comments

Comments
 (0)