diff --git a/querydsl-collections/src/main/java/com/querydsl/collections/CollQueryFunctions.java b/querydsl-collections/src/main/java/com/querydsl/collections/CollQueryFunctions.java index 907512ce9..e8cdf3707 100644 --- a/querydsl-collections/src/main/java/com/querydsl/collections/CollQueryFunctions.java +++ b/querydsl-collections/src/main/java/com/querydsl/collections/CollQueryFunctions.java @@ -195,7 +195,7 @@ public final class CollQueryFunctions { } public static Collection leftJoin(Collection coll) { - if (coll.isEmpty()) { + if (coll == null || coll.isEmpty()) { @SuppressWarnings("unchecked") // List only contains null Collection rv = (Collection) nullList; return rv; diff --git a/querydsl-collections/src/test/java/com/querydsl/collections/CollectionAnyTest.java b/querydsl-collections/src/test/java/com/querydsl/collections/CollectionAnyTest.java index 5dbba4bbe..2d0895581 100644 --- a/querydsl-collections/src/test/java/com/querydsl/collections/CollectionAnyTest.java +++ b/querydsl-collections/src/test/java/com/querydsl/collections/CollectionAnyTest.java @@ -9,6 +9,15 @@ import org.junit.Test; public class CollectionAnyTest extends AbstractQueryTest { + @Test + public void any_null() { + Cat a = new Cat("a"); + a.setKittens(null); + + assertEquals(0, CollQueryFactory.from(cat, Arrays.asList(a)) + .where(cat.kittens.any().name.startsWith("a")).fetchCount()); + } + @Test public void any_in_projection() { Cat a = new Cat("a");