diff --git a/engine/src/main/java/org/hibernate/validator/internal/engine/cascading/ArrayElement.java b/engine/src/main/java/org/hibernate/validator/internal/engine/cascading/ArrayElement.java index 71441e2ec2..77840fb374 100644 --- a/engine/src/main/java/org/hibernate/validator/internal/engine/cascading/ArrayElement.java +++ b/engine/src/main/java/org/hibernate/validator/internal/engine/cascading/ArrayElement.java @@ -9,7 +9,6 @@ import java.lang.annotation.Annotation; import java.lang.reflect.AnnotatedArrayType; import java.lang.reflect.AnnotatedType; -import java.lang.reflect.GenericArrayType; import java.lang.reflect.Type; import java.lang.reflect.TypeVariable; @@ -57,17 +56,12 @@ else if ( arrayElementType == char.class ) { } public ArrayElement(Type arrayType) { - if ( arrayType instanceof GenericArrayType ) { - this.containerClass = Object[].class; + Class arrayClass = ReflectionHelper.getClassFromType( arrayType ); + if ( arrayClass.getComponentType().isPrimitive() ) { + this.containerClass = arrayClass; } else { - Class arrayClass = ReflectionHelper.getClassFromType( arrayType ); - if ( arrayClass.getComponentType().isPrimitive() ) { - this.containerClass = arrayClass; - } - else { - this.containerClass = Object[].class; - } + this.containerClass = Object[].class; } } diff --git a/engine/src/main/java/org/hibernate/validator/internal/util/ReflectionHelper.java b/engine/src/main/java/org/hibernate/validator/internal/util/ReflectionHelper.java index 0221bf79ad..0b1695f01a 100644 --- a/engine/src/main/java/org/hibernate/validator/internal/util/ReflectionHelper.java +++ b/engine/src/main/java/org/hibernate/validator/internal/util/ReflectionHelper.java @@ -11,6 +11,7 @@ import java.lang.reflect.Constructor; import java.lang.reflect.Executable; import java.lang.reflect.Field; +import java.lang.reflect.GenericArrayType; import java.lang.reflect.InvocationTargetException; import java.lang.reflect.Member; import java.lang.reflect.Method; @@ -301,6 +302,9 @@ public static Class getClassFromType(Type type) { if ( type instanceof ParameterizedType ) { return getClassFromType( ( (ParameterizedType) type ).getRawType() ); } + if ( type instanceof GenericArrayType ) { + return Object[].class; + } throw log.getUnableToConvertTypeToClassException( type ); }