From 0c5e092d165127e9a4f0ea7db1f207bb8bbeefb9 Mon Sep 17 00:00:00 2001 From: rbygrave Date: Fri, 24 Apr 2015 22:18:22 +1200 Subject: [PATCH] Fix for #277 - please check fetchPaths not null - NPE on OrmQueryDetail.convertManyFetchJoinsToQueryJoins(OrmQueryDetail.java:331) --- .../server/querydefn/OrmQueryDetail.java | 2 +- .../tests/query/TestInvalidFetchPath.java | 19 +++++++++++++++++++ 2 files changed, 20 insertions(+), 1 deletion(-) create mode 100644 src/test/java/com/avaje/tests/query/TestInvalidFetchPath.java diff --git a/src/main/java/com/avaje/ebeaninternal/server/querydefn/OrmQueryDetail.java b/src/main/java/com/avaje/ebeaninternal/server/querydefn/OrmQueryDetail.java index 486809b68..fd51df206 100644 --- a/src/main/java/com/avaje/ebeaninternal/server/querydefn/OrmQueryDetail.java +++ b/src/main/java/com/avaje/ebeaninternal/server/querydefn/OrmQueryDetail.java @@ -328,7 +328,7 @@ public class OrmQueryDetail implements Serializable { for (String fetchPath : fetchPaths.keySet()) { ElPropertyDeploy elProp = beanDescriptor.getElPropertyDeploy(fetchPath); - if (elProp.containsManySince(manyFetchProperty)) { + if (elProp != null && elProp.containsManySince(manyFetchProperty)) { // this is a join to a *ToMany OrmQueryProperties chunk = fetchPaths.get(fetchPath); diff --git a/src/test/java/com/avaje/tests/query/TestInvalidFetchPath.java b/src/test/java/com/avaje/tests/query/TestInvalidFetchPath.java new file mode 100644 index 000000000..16ca0314c --- /dev/null +++ b/src/test/java/com/avaje/tests/query/TestInvalidFetchPath.java @@ -0,0 +1,19 @@ +package com.avaje.tests.query; + +import com.avaje.ebean.BaseTestCase; +import com.avaje.ebean.Ebean; +import com.avaje.tests.model.basic.Customer; +import org.junit.Test; + +public class TestInvalidFetchPath extends BaseTestCase { + + @Test + public void testWithPathAndProperties() { + + Ebean.find(Customer.class) + .fetch("notHaveProps", "notHaveProps") + .findList(); + + } + +}