diff --git a/src/main/java/no/nibio/vips/logic/service/ObservationService.java b/src/main/java/no/nibio/vips/logic/service/ObservationService.java index 57382908126aae8fcc0d164bc18a8e298640b270..daf359258690e26b9c4a7393a5b2ce1e945554c3 100755 --- a/src/main/java/no/nibio/vips/logic/service/ObservationService.java +++ b/src/main/java/no/nibio/vips/logic/service/ObservationService.java @@ -803,8 +803,10 @@ public class ObservationService { LOGGER.info("Return {} masked public observations for unregistered user", retVal.size()); return sortObservationsByDateAndId(retVal); } - // Else: This is a registered user without special privileges. Show public observations + user's own - retVal.addAll(observationBean.getObservationsForUser(user)); + // Else: This is a registered user without special privileges. Show public observations + user's own + // Making sure we don't add duplicates + Set<Integer> obsIds = retVal.stream().map(o->o.getObservationId()).collect(Collectors.toSet()); + retVal.addAll(observationBean.getObservationsForUser(user).stream().filter(o->!obsIds.contains(o.getObservationId())).collect(Collectors.toList())); LOGGER.info("Return {} masked public observations and user's own observations for registered user {}", retVal.size(), user.getUserId()); return sortObservationsByDateAndId(retVal); }