#643 - NPE on OrmQueryProperties.java:474

This commit is contained in:
Robin Bygrave
2016-04-08 15:15:34 +12:00
parent 640db2267f
commit a1ff83e9e4
2 changed files with 33 additions and 1 deletions
@@ -469,7 +469,9 @@ public class OrmQueryProperties implements Serializable {
*/
public boolean isSameByAutoTune(OrmQueryProperties p2) {
if (included == null) {
return p2.included == null;
return p2 == null || p2.included == null;
} else if (p2 == null) {
return false;
}
return included.equals(p2.included);
}
@@ -75,6 +75,36 @@ public class OrmQueryDetailTest extends BaseTestCase {
assertFalse(detail1.isAutoTuneEqual(detail2));
}
@Test
public void isAutoTuneEqual_when_different_removedFetch() {
OrmQueryDetail detail1 = parse("select (id,name) fetch customer (name) fetch details (code) fetch customer.contacts");
OrmQueryDetail detail2 = parse("select (id,name) fetch customer (name) fetch details (code)");
assertFalse(detail1.isAutoTuneEqual(detail2));
assertFalse(detail2.isAutoTuneEqual(detail1));
}
@Test
public void isAutoTuneEqual_when_different_removedFetchProperty() {
OrmQueryDetail detail1 = parse("select (id,name) fetch customer (name)");
OrmQueryDetail detail2 = parse("select (id,name) fetch customer ");
assertFalse(detail1.isAutoTuneEqual(detail2));
assertFalse(detail2.isAutoTuneEqual(detail1));
}
@Test
public void isAutoTuneEqual_when_different_path() {
OrmQueryDetail detail1 = parse("select (id,name) fetch customer (name)");
OrmQueryDetail detail2 = parse("select (id,name) fetch details (id) ");
assertFalse(detail1.isAutoTuneEqual(detail2));
assertFalse(detail2.isAutoTuneEqual(detail1));
}
@Test
public void select_whenMultiple() throws Exception {