diff --git a/mail-service/src/main/java/de/itvsh/ozg/mail/postfach/OsiPostfachService.java b/mail-service/src/main/java/de/itvsh/ozg/mail/postfach/OsiPostfachService.java index 113d242f9dd2e9e4cd2de8819fb1eb70cf94d82d..5054483b9c90e15d8abb1aa9672927d2229f3c38 100644 --- a/mail-service/src/main/java/de/itvsh/ozg/mail/postfach/OsiPostfachService.java +++ b/mail-service/src/main/java/de/itvsh/ozg/mail/postfach/OsiPostfachService.java @@ -40,6 +40,11 @@ class OsiPostfachService { ResponseEntity<Message[]> response = executeHandlingException( () -> restTemplate.exchange(properties.getUrl(), HttpMethod.GET, null, Message[].class)); + + if (Objects.isNull(response.getBody())) { + LOG.warn("OSI Postfach response with an empty body"); + return Stream.empty(); + } return Arrays.stream(response.getBody()); } diff --git a/pluto-server/src/test/java/de/itvsh/ozg/mail/postfach/OsiPostfachServiceITCase.java b/pluto-server/src/test/java/de/itvsh/ozg/mail/postfach/OsiPostfachServiceITCase.java index 722f1ac9b217459e56fa3625efeda56eaa70af26..36898b503ac80d5499f323d52f1d4e130221f6ce 100644 --- a/pluto-server/src/test/java/de/itvsh/ozg/mail/postfach/OsiPostfachServiceITCase.java +++ b/pluto-server/src/test/java/de/itvsh/ozg/mail/postfach/OsiPostfachServiceITCase.java @@ -82,7 +82,20 @@ class OsiPostfachServiceITCase { mockServer.expect(header(PostfachConfiguration.HEADER_API_REALM, API_REALM)) .andRespond(withSuccess(String.valueOf(false), MediaType.APPLICATION_JSON)); - assertThrows(OsiPostfachException.class, () -> service.sendMessage(MessageTestFactory.create())); + assertThrows(OsiPostfachException.class, () -> service.sendMessage(MessageTestFactory.create()));// NOSONAR + + mockServer.verify(); + } + } + + @Nested + class TestGetMessages { + + @Test + void shouldNotThrowErrorOnEmptyBody() { + mockServer.expect(requestTo(URL)).andRespond(withSuccess()); + + assertDoesNotThrow(() -> service.getAllMessages()); mockServer.verify(); }