From 4bfcbbbbab04343669980f3800487557de4454c2 Mon Sep 17 00:00:00 2001
From: "Zickermann, Jan" <jan.zickermann@dataport.de>
Date: Mon, 3 Jun 2024 10:35:04 +0200
Subject: [PATCH] OZG-5412 mantel-antrag: Fix NPE when formId null

---
 .../MantelantragFormBasedMapper.java          |  8 +++---
 .../MantelantragFormBasedMapperTest.java      | 26 +++++++++++++++++++
 2 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragFormBasedMapper.java b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragFormBasedMapper.java
index 0c10729d0..4266a59f2 100644
--- a/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragFormBasedMapper.java
+++ b/semantik-adapter/src/main/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragFormBasedMapper.java
@@ -34,10 +34,10 @@ public class MantelantragFormBasedMapper implements FormBasedMapper {
 
 	@Override
 	public boolean isResponsible(FormData formData) {
-		return formData
-				.getHeader()
-				.getFormId()
-				.equals(MANTELANTRAG_FORM_ID);
+		return Optional.ofNullable(formData.getHeader())
+				.flatMap(header -> Optional.ofNullable(header.getFormId()))
+				.map(MANTELANTRAG_FORM_ID::equals)
+				.orElse(false);
 	}
 
 	@Override
diff --git a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragFormBasedMapperTest.java b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragFormBasedMapperTest.java
index 5bc55d0d9..ae15e0d29 100644
--- a/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragFormBasedMapperTest.java
+++ b/semantik-adapter/src/test/java/de/ozgcloud/eingang/semantik/formbased/mantelantrag/MantelantragFormBasedMapperTest.java
@@ -63,6 +63,32 @@ class MantelantragFormBasedMapperTest {
 			assertThat(isResponsibleResult).isFalse();
 		}
 
+		@DisplayName("should be false if header null")
+		@Test
+		void shouldBeFalseIfHeaderNull() {
+			var formData = FormDataTestFactory.createBuilder()
+					.header(null)
+					.build();
+
+			var isResponsibleResult = mapper.isResponsible(formData);
+
+			assertThat(isResponsibleResult).isFalse();
+		}
+
+		@DisplayName("should be false if form id null")
+		@Test
+		void shouldBeFalseIfFormIdNull() {
+			var formData = FormDataTestFactory.createBuilder()
+					.header(FormHeaderTestFactory.createBuilder()
+							.formId(null)
+							.build())
+					.build();
+
+			var isResponsibleResult = mapper.isResponsible(formData);
+
+			assertThat(isResponsibleResult).isFalse();
+		}
+
 		private FormData createWithFormId(String formId) {
 			return FormDataTestFactory.createBuilder()
 					.header(FormHeaderTestFactory.createBuilder()
-- 
GitLab