diff --git a/querydsl-collections/src/main/java/com/mysema/query/collections/impl/AbstractColQuery.java b/querydsl-collections/src/main/java/com/mysema/query/collections/impl/AbstractColQuery.java index 2b29627d7..c99370474 100644 --- a/querydsl-collections/src/main/java/com/mysema/query/collections/impl/AbstractColQuery.java +++ b/querydsl-collections/src/main/java/com/mysema/query/collections/impl/AbstractColQuery.java @@ -193,7 +193,7 @@ public abstract class AbstractColQuery orderByExpr[i] = (Expr) orderBy.get(i).getTarget(); directions[i] = orderBy.get(i).getOrder() == Order.ASC; } - Expr expr = new EArrayConstructor(Object.class, orderByExpr); + Expr expr = new EArrayConstructor(Object[].class, orderByExpr); Evaluator ev = evaluatorFactory.create(sources, expr); // transform the iterator to list @@ -230,7 +230,7 @@ public abstract class AbstractColQuery @SuppressWarnings("unchecked") public Iterator iterate(Expr[] args) { arrayProjection = true; - Expr projection = new EArrayConstructor(Object.class, args); + Expr projection = new EArrayConstructor(Object[].class, args); return iterate(projection); } diff --git a/querydsl-core/src/main/java/com/mysema/query/types/expr/EArrayConstructor.java b/querydsl-core/src/main/java/com/mysema/query/types/expr/EArrayConstructor.java index 9212cb691..950372315 100644 --- a/querydsl-core/src/main/java/com/mysema/query/types/expr/EArrayConstructor.java +++ b/querydsl-core/src/main/java/com/mysema/query/types/expr/EArrayConstructor.java @@ -5,6 +5,7 @@ */ package com.mysema.query.types.expr; +import com.mysema.commons.lang.Assert; import com.mysema.query.types.Visitor; /** @@ -20,9 +21,9 @@ public class EArrayConstructor extends EConstructor { private final Class elementType; @SuppressWarnings("unchecked") - public EArrayConstructor(Class type, Expr... args) { - super((Class)Object.class, new Class[0], args); - this.elementType = type; + public EArrayConstructor(Class type, Expr... args) { + super(type, new Class[0], args); + this.elementType = (Class) Assert.notNull(type.getComponentType()); } public final Class getElementType() { diff --git a/querydsl-core/src/test/java/com/mysema/query/types/StringTest.java b/querydsl-core/src/test/java/com/mysema/query/types/StringTest.java index 871301fe4..4e9047efd 100644 --- a/querydsl-core/src/test/java/com/mysema/query/types/StringTest.java +++ b/querydsl-core/src/test/java/com/mysema/query/types/StringTest.java @@ -88,7 +88,7 @@ public class StringTest { assertEquals("new SomeType(alias)", someType.toString()); // EArrayConstructor - EArrayConstructor someTypeArray = new EArrayConstructor(SomeType.class,$(alias)); + EArrayConstructor someTypeArray = new EArrayConstructor(SomeType[].class,$(alias)); assertEquals("[alias]", someTypeArray.toString()); }