diff --git a/src/main/java/io/getstream/chat/java/services/framework/DefaultClient.java b/src/main/java/io/getstream/chat/java/services/framework/DefaultClient.java index 14302b5c8..119fc1a3b 100644 --- a/src/main/java/io/getstream/chat/java/services/framework/DefaultClient.java +++ b/src/main/java/io/getstream/chat/java/services/framework/DefaultClient.java @@ -104,8 +104,10 @@ private Retrofit buildRetrofitClient() { return chain.proceed(request); }); final ObjectMapper mapper = new ObjectMapper(); - // Use field-based serialization but respect @JsonProperty and @JsonAnyGetter annotations - mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE); + // Use field-based access for both serialization and deserialization + // Disable getter auto-detection to avoid issues, but keep setters for deserialization + mapper.setVisibility(PropertyAccessor.GETTER, JsonAutoDetect.Visibility.NONE); + mapper.setVisibility(PropertyAccessor.SETTER, JsonAutoDetect.Visibility.ANY); mapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY); mapper.configure( DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, diff --git a/src/test/java/io/getstream/chat/java/AppTest.java b/src/test/java/io/getstream/chat/java/AppTest.java index 0457c8a9d..bf1515dde 100644 --- a/src/test/java/io/getstream/chat/java/AppTest.java +++ b/src/test/java/io/getstream/chat/java/AppTest.java @@ -279,7 +279,8 @@ void whenUpdatingAppSettingsWithPendingMessageEventHook_thenNoException() throws void whenEncodingAppConfig_thenNoNullFields() { var appConfig = App.update().internalBuild(); final ObjectMapper mapper = new ObjectMapper(); - mapper.setVisibility(PropertyAccessor.ALL, JsonAutoDetect.Visibility.NONE); + mapper.setVisibility(PropertyAccessor.GETTER, JsonAutoDetect.Visibility.NONE); + mapper.setVisibility(PropertyAccessor.SETTER, JsonAutoDetect.Visibility.ANY); mapper.setVisibility(PropertyAccessor.FIELD, JsonAutoDetect.Visibility.ANY); String json = Assertions.assertDoesNotThrow(() -> mapper.writeValueAsString(appConfig));