From c3f1c23ff8a77a925face0418e5697991b0fb838 Mon Sep 17 00:00:00 2001 From: Oliver Gierke Date: Mon, 19 Jun 2017 15:04:57 +0200 Subject: [PATCH] DATAREST-1060 - Improve AssociationOmittingSerializerModifier to not break on Jackson 2.9. MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit According to this upstream ticket [0] we need to override BeanSerializerModifier.changeProperties(…) rather than ….updateBuilder(…). The commit just does that. [0] https://github.com/FasterXML/jackson-databind/issues/1664 Related ticket: FasterXML/jackson-databind#1664 --- .../json/PersistentEntityJackson2Module.java | 15 ++++++--------- 1 file changed, 6 insertions(+), 9 deletions(-) diff --git a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/PersistentEntityJackson2Module.java b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/PersistentEntityJackson2Module.java index b7ae61471..b399df5fd 100644 --- a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/PersistentEntityJackson2Module.java +++ b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/PersistentEntityJackson2Module.java @@ -83,7 +83,6 @@ import com.fasterxml.jackson.databind.jsontype.TypeDeserializer; import com.fasterxml.jackson.databind.jsontype.TypeSerializer; import com.fasterxml.jackson.databind.module.SimpleModule; import com.fasterxml.jackson.databind.ser.BeanPropertyWriter; -import com.fasterxml.jackson.databind.ser.BeanSerializerBuilder; import com.fasterxml.jackson.databind.ser.BeanSerializerModifier; import com.fasterxml.jackson.databind.ser.std.StdScalarSerializer; import com.fasterxml.jackson.databind.ser.std.StdSerializer; @@ -236,21 +235,21 @@ public class PersistentEntityJackson2Module extends SimpleModule { /* * (non-Javadoc) - * @see com.fasterxml.jackson.databind.ser.BeanSerializerModifier#updateBuilder(com.fasterxml.jackson.databind.SerializationConfig, com.fasterxml.jackson.databind.BeanDescription, com.fasterxml.jackson.databind.ser.BeanSerializerBuilder) + * @see com.fasterxml.jackson.databind.ser.BeanSerializerModifier#changeProperties(com.fasterxml.jackson.databind.SerializationConfig, com.fasterxml.jackson.databind.BeanDescription, java.util.List) */ @Override - public BeanSerializerBuilder updateBuilder(SerializationConfig config, BeanDescription beanDesc, - BeanSerializerBuilder builder) { + public List changeProperties(SerializationConfig config, BeanDescription beanDesc, + List beanProperties) { PersistentEntity entity = entities.getPersistentEntity(beanDesc.getBeanClass()); if (entity == null) { - return builder; + return beanProperties; } List result = new ArrayList(); - for (BeanPropertyWriter writer : builder.getProperties()) { + for (BeanPropertyWriter writer : beanProperties) { // Skip exported associations PersistentProperty persistentProperty = findProperty(writer.getName(), entity, beanDesc); @@ -293,9 +292,7 @@ public class PersistentEntityJackson2Module extends SimpleModule { result.add(writer); } - builder.setProperties(result); - - return builder; + return result; } /**