Skip to content
This repository was archived by the owner on May 5, 2021. It is now read-only.

Commit d6a098e

Browse files
authored
SORMAS-Foundation#3821: user AbstractAdoService for building the contact and event filters for getting all persons to prevent NPE (SORMAS-Foundation#3884)
* SORMAS-Foundation#3821: user AbstractAdoService for building the contact and event filters for getting all persons to prevent NPE * SORMAS-Foundation#3821: add unit test to validate NPE fix for getPersonsAfter
1 parent 86d36af commit d6a098e

2 files changed

Lines changed: 32 additions & 2 deletions

File tree

sormas-backend/src/main/java/de/symeda/sormas/backend/person/PersonService.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -202,7 +202,7 @@ public List<Person> getAllAfter(Date date, User user) {
202202
if (date != null) {
203203
Predicate dateFilter = createChangeDateFilter(cb, contactPersonsSelect, DateHelper.toTimestampUpper(date));
204204
Predicate contactDateFilter = contactService.createChangeDateFilter(cb, contactPersonsRoot, date);
205-
contactPersonsFilter = cb.and(contactPersonsFilter, cb.or(dateFilter, contactDateFilter));
205+
contactPersonsFilter = and(cb, contactPersonsFilter, cb.or(dateFilter, contactDateFilter));
206206
}
207207
if (contactPersonsFilter != null) {
208208
contactPersonsQuery.where(contactPersonsFilter);
@@ -222,7 +222,7 @@ public List<Person> getAllAfter(Date date, User user) {
222222
Predicate dateFilter = createChangeDateFilter(cb, eventPersonsSelect, DateHelper.toTimestampUpper(date));
223223
Predicate eventParticipantDateFilter =
224224
eventParticipantService.createChangeDateFilter(cb, eventPersonsRoot, DateHelper.toTimestampUpper(date));
225-
eventPersonsFilter = cb.and(eventPersonsFilter, cb.or(dateFilter, eventParticipantDateFilter));
225+
eventPersonsFilter = and(cb, eventPersonsFilter, cb.or(dateFilter, eventParticipantDateFilter));
226226
}
227227
if (eventPersonsFilter != null) {
228228
eventPersonsQuery.where(eventPersonsFilter);

sormas-backend/src/test/java/de/symeda/sormas/backend/person/PersonFacadeEjbTest.java

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -238,4 +238,34 @@ public void testGetPersonForJournal() {
238238
assertEquals(person.getBirthdateDD(), exportPerson.getBirthdateDD());
239239
assertEquals(contact2.getFollowUpUntil(), exportPerson.getLatestFollowUpEndDate());
240240
}
241+
242+
@Test
243+
public void testGetPersonsAfter() {
244+
UserDto natUser = useNationalUserLogin();
245+
246+
Date t1 = new Date();
247+
248+
PersonDto person1 = creator.createPerson();
249+
person1 = getPersonFacade().savePerson(person1);
250+
final ContactDto contact1 = creator.createContact(natUser.toReference(), person1.toReference());
251+
getContactFacade().saveContact(contact1);
252+
253+
List<PersonDto> personsAfterT1 = getPersonFacade().getPersonsAfter(t1);
254+
assertEquals(1, personsAfterT1.size());
255+
assertEquals(person1.getUuid(), personsAfterT1.get(0).getUuid());
256+
257+
Date t2 = new Date();
258+
259+
PersonDto person2 = creator.createPerson();
260+
person2 = getPersonFacade().savePerson(person2);
261+
final ContactDto contact2 = creator.createContact(natUser.toReference(), person2.toReference());
262+
getContactFacade().saveContact(contact2);
263+
264+
List<PersonDto> personsAfterT2 = getPersonFacade().getPersonsAfter(t2);
265+
assertEquals(1, personsAfterT2.size());
266+
assertEquals(person2.getUuid(), personsAfterT2.get(0).getUuid());
267+
268+
personsAfterT1 = getPersonFacade().getPersonsAfter(t1);
269+
assertEquals(2, personsAfterT1.size());
270+
}
241271
}

0 commit comments

Comments
 (0)