diff --git a/spring-data-commons-core/src/main/java/org/springframework/data/util/ClassTypeInformation.java b/spring-data-commons-core/src/main/java/org/springframework/data/util/ClassTypeInformation.java index afc61296b..00011683d 100644 --- a/spring-data-commons-core/src/main/java/org/springframework/data/util/ClassTypeInformation.java +++ b/spring-data-commons-core/src/main/java/org/springframework/data/util/ClassTypeInformation.java @@ -29,7 +29,6 @@ import java.util.Set; import java.util.WeakHashMap; import org.springframework.core.GenericTypeResolver; -import org.springframework.util.Assert; /** * {@link TypeInformation} for a plain {@link Class}. @@ -110,20 +109,6 @@ public class ClassTypeInformation extends TypeDiscoverer { return type; } - /* - * (non-Javadoc) - * @see org.springframework.data.util.TypeDiscoverer#getComponentType() - */ - @Override - public TypeInformation getComponentType() { - - if (type.isArray()) { - return createInfo(resolveArrayType(type)); - } - - return super.getComponentType(); - } - /* * (non-Javadoc) * @see org.springframework.data.util.TypeDiscoverer#isAssignableFrom(org.springframework.data.util.TypeInformation) @@ -132,10 +117,4 @@ public class ClassTypeInformation extends TypeDiscoverer { public boolean isAssignableFrom(TypeInformation target) { return getType().isAssignableFrom(target.getType()); } - - private static Type resolveArrayType(Class type) { - Assert.isTrue(type.isArray()); - Class componentType = type.getComponentType(); - return componentType.isArray() ? resolveArrayType(componentType) : componentType; - } } diff --git a/spring-data-commons-core/src/test/java/org/springframework/data/util/ClassTypeInformationUnitTests.java b/spring-data-commons-core/src/test/java/org/springframework/data/util/ClassTypeInformationUnitTests.java index 3af2ec8db..61232616e 100644 --- a/spring-data-commons-core/src/test/java/org/springframework/data/util/ClassTypeInformationUnitTests.java +++ b/spring-data-commons-core/src/test/java/org/springframework/data/util/ClassTypeInformationUnitTests.java @@ -254,6 +254,15 @@ public class ClassTypeInformationUnitTests { GenericInterface.class)), is(false)); } + @Test + public void returnsComponentTypeForMultiDimensionalArrayCorrectly() { + + TypeInformation information = from(String[][].class); + assertThat(information.getType(), is((Object) String[][].class)); + assertThat(information.getComponentType().getType(), is((Object) String[].class)); + assertThat(information.getActualType().getActualType().getType(), is((Object) String.class)); + } + static class StringMapContainer extends MapContainer { }