From 1f98ed6bf670fe71eb03d69200bcbb3db0e58bfe Mon Sep 17 00:00:00 2001
From: OZGCloud <ozgcloud@mgm-tp.com>
Date: Fri, 14 Jan 2022 11:50:28 +0100
Subject: [PATCH] OZG-1952 OZG-1975 OZG-1976 add null check on body

---
 .../ozg/mail/postfach/OsiPostfachService.java     |  5 +++++
 .../mail/postfach/OsiPostfachServiceITCase.java   | 15 ++++++++++++++-
 2 files changed, 19 insertions(+), 1 deletion(-)

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 113d242f9..5054483b9 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 722f1ac9b..36898b503 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();
 		}
-- 
GitLab