aboutsummaryrefslogtreecommitdiff
path: root/src/test/java/org/apache/commons/lang3/reflect
diff options
context:
space:
mode:
authorGary Gregory <garydgregory@gmail.com>2024-04-24 11:09:10 -0400
committerGary Gregory <garydgregory@gmail.com>2024-04-24 11:09:10 -0400
commitc4007c4a24eafbed53109e4b0376b4fd0ba01b56 (patch)
treed80443fde1dc499555fb5d7a8dcc586b68d1bb05 /src/test/java/org/apache/commons/lang3/reflect
parentabdcd5875b1f41ce28d2c0b73584deb28f57fcd2 (diff)
downloadapache-commons-lang-c4007c4a24eafbed53109e4b0376b4fd0ba01b56.tar.gz
[LANG-1524] TypeUtils.toString(Type) StackOverflowError for an inner
class in the inner class parameterized enclosing class #657
Diffstat (limited to 'src/test/java/org/apache/commons/lang3/reflect')
-rw-r--r--src/test/java/org/apache/commons/lang3/reflect/TypeUtilsTest.java17
1 files changed, 17 insertions, 0 deletions
diff --git a/src/test/java/org/apache/commons/lang3/reflect/TypeUtilsTest.java b/src/test/java/org/apache/commons/lang3/reflect/TypeUtilsTest.java
index ce5051413..dca2096b5 100644
--- a/src/test/java/org/apache/commons/lang3/reflect/TypeUtilsTest.java
+++ b/src/test/java/org/apache/commons/lang3/reflect/TypeUtilsTest.java
@@ -56,6 +56,16 @@ import org.apache.commons.lang3.reflect.testbed.StringParameterizedChild;
import org.junit.jupiter.api.Disabled;
import org.junit.jupiter.api.Test;
+/**
+ * Test fixture for https://issues.apache.org/jira/browse/LANG-1524
+ */
+class AAAAClass<T extends AAAAClass.BBBBClass.CCCClass> {
+ public static class BBBBClass {
+ public static class CCCClass {
+ }
+ }
+}
+
final class AAAClass extends AAClass<String> {
public class BBBClass extends BBClass<String> {
// empty
@@ -261,6 +271,13 @@ public class TypeUtilsTest<B> extends AbstractLangTest {
assertEquals("T extends java.lang.Enum<T>", TypeUtils.toString(method.getGenericReturnType()));
}
+ @Test
+ public void test_LANG_1524() {
+ assertEquals("AAAAClass(cycle).BBBBClass.CCCClass", TypeUtils.toString(AAAAClass.BBBBClass.CCCClass.class));
+ assertEquals("AAAAClass(cycle).BBBBClass", TypeUtils.toString(AAAAClass.BBBBClass.class));
+ assertEquals("AAAAClass(cycle)", TypeUtils.toString(AAAAClass.class));
+ }
+
/**
* <pre>{@code
* java.lang.StackOverflowError