From ea2f0ce83309e89bb0bfef86515f3c535efa5b76 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Timo=20Westk=C3=A4mper?= Date: Fri, 29 Mar 2013 16:52:20 +0200 Subject: [PATCH] #379 Fix JPAQueryMixin.normalize --- .../mysema/query/support/QueryMixinTest.java | 6 ++++++ .../com/mysema/query/jpa/JPAQueryMixin.java | 4 +++- .../com/mysema/query/jpa/JPAQueryMixinTest.java | 17 +++++++++++++++++ 3 files changed, 26 insertions(+), 1 deletion(-) create mode 100644 querydsl-jpa/src/test/java/com/mysema/query/jpa/JPAQueryMixinTest.java diff --git a/querydsl-core/src/test/java/com/mysema/query/support/QueryMixinTest.java b/querydsl-core/src/test/java/com/mysema/query/support/QueryMixinTest.java index 42ae6648d..14f9cacd1 100644 --- a/querydsl-core/src/test/java/com/mysema/query/support/QueryMixinTest.java +++ b/querydsl-core/src/test/java/com/mysema/query/support/QueryMixinTest.java @@ -23,6 +23,7 @@ import com.mysema.query.JoinExpression; import com.mysema.query.alias.Alias; import com.mysema.query.domain.QCommonPersistence; import com.mysema.query.types.PathMetadataFactory; +import com.mysema.query.types.Predicate; import com.mysema.query.types.expr.BooleanExpression; public class QueryMixinTest { @@ -32,6 +33,11 @@ public class QueryMixinTest { private QCommonPersistence entity = new QCommonPersistence(PathMetadataFactory.forVariable("entity")); + @Test + public void Where_Null() { + mixin.where((Predicate)null); + } + @Test public void GetJoins_with_condition() { mixin.innerJoin(entity); diff --git a/querydsl-jpa/src/main/java/com/mysema/query/jpa/JPAQueryMixin.java b/querydsl-jpa/src/main/java/com/mysema/query/jpa/JPAQueryMixin.java index 0bd4d5e11..e70d7cf92 100644 --- a/querydsl-jpa/src/main/java/com/mysema/query/jpa/JPAQueryMixin.java +++ b/querydsl-jpa/src/main/java/com/mysema/query/jpa/JPAQueryMixin.java @@ -71,7 +71,9 @@ public class JPAQueryMixin extends QueryMixin { @Override protected Predicate normalize(Predicate predicate, boolean where) { - predicate = (Predicate) ExpressionUtils.extract(predicate); + if (predicate != null) { + predicate = (Predicate) ExpressionUtils.extract(predicate); + } if (predicate != null) { // transform any usage predicate = (Predicate) predicate.accept(JPACollectionAnyVisitor.DEFAULT, new Context()); diff --git a/querydsl-jpa/src/test/java/com/mysema/query/jpa/JPAQueryMixinTest.java b/querydsl-jpa/src/test/java/com/mysema/query/jpa/JPAQueryMixinTest.java new file mode 100644 index 000000000..755af0a8b --- /dev/null +++ b/querydsl-jpa/src/test/java/com/mysema/query/jpa/JPAQueryMixinTest.java @@ -0,0 +1,17 @@ +package com.mysema.query.jpa; + +import org.junit.Test; + +import com.mysema.query.types.Predicate; + +public class JPAQueryMixinTest { + + private JPAQueryMixin mixin = new JPAQueryMixin(); + + @Test + public void Where_Null() { + mixin.where((Predicate)null); + } + + +}