From d8bbd3d027274927c44ec3ff5f2b14d003a452b6 Mon Sep 17 00:00:00 2001 From: ACHRAF TAITAI <43656331+achraftt@users.noreply.github.com> Date: Fri, 15 Dec 2023 08:45:42 +0100 Subject: [PATCH] BAEL-7277: Disable fail_on_empty_beans in Jackson (#15394) --- .../com/baeldung/exceptions/EmptyObject.java | 5 +++++ .../JacksonMappingExceptionUnitTest.java | 22 ++++++++++++++++--- 2 files changed, 24 insertions(+), 3 deletions(-) create mode 100644 jackson-modules/jackson-exceptions/src/main/java/com/baeldung/exceptions/EmptyObject.java diff --git a/jackson-modules/jackson-exceptions/src/main/java/com/baeldung/exceptions/EmptyObject.java b/jackson-modules/jackson-exceptions/src/main/java/com/baeldung/exceptions/EmptyObject.java new file mode 100644 index 0000000000..fa62e1c42c --- /dev/null +++ b/jackson-modules/jackson-exceptions/src/main/java/com/baeldung/exceptions/EmptyObject.java @@ -0,0 +1,5 @@ +package com.baeldung.exceptions; + +public class EmptyObject { + +} diff --git a/jackson-modules/jackson-exceptions/src/test/java/com/baeldung/mappingexception/JacksonMappingExceptionUnitTest.java b/jackson-modules/jackson-exceptions/src/test/java/com/baeldung/mappingexception/JacksonMappingExceptionUnitTest.java index 026fd6719f..c680aec703 100644 --- a/jackson-modules/jackson-exceptions/src/test/java/com/baeldung/mappingexception/JacksonMappingExceptionUnitTest.java +++ b/jackson-modules/jackson-exceptions/src/test/java/com/baeldung/mappingexception/JacksonMappingExceptionUnitTest.java @@ -2,13 +2,15 @@ package com.baeldung.mappingexception; import static org.hamcrest.Matchers.containsString; import static org.hamcrest.Matchers.notNullValue; -import static org.junit.Assert.assertThat; -import static org.junit.Assert.assertThrows; -import static org.junit.Assert.assertTrue; +import static org.junit.Assert.*; import static org.junit.jupiter.api.Assertions.assertEquals; import java.util.Arrays; +import com.baeldung.exceptions.EmptyObject; +import com.baeldung.exceptions.Person; +import com.fasterxml.jackson.databind.DeserializationFeature; +import com.fasterxml.jackson.databind.SerializationFeature; import org.junit.Test; import com.fasterxml.jackson.annotation.JsonAutoDetect.Visibility; @@ -73,4 +75,18 @@ public class JacksonMappingExceptionUnitTest { assertEquals(Arrays.asList("Amsterdam", "Tamassint"), country.getCities()); } + @Test + public void givenEmptyBean_whenSerializing_thenCorrect() throws JsonProcessingException { + // Create an ObjectMapper + ObjectMapper objectMapper = new ObjectMapper(); + // Disable fail_on_empty_beans during serialization + objectMapper.configure(SerializationFeature.FAIL_ON_EMPTY_BEANS, false); + // Create an empty object + EmptyObject emptyObject = new EmptyObject(); + // Serialize the empty object + String json = objectMapper.writeValueAsString(emptyObject); + // Verify that serialization is successful + assertEquals("{}", json); + } + }