From 64f347070116b5eef71566e0252bcfe45f7f3c34 Mon Sep 17 00:00:00 2001 From: Lu Mao Date: Tue, 5 Jan 2016 15:58:29 +0000 Subject: [PATCH 1/3] Patching for Issue 143 --- .../rest/validation/JacksonMessageBodyProvider.java | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/io/confluent/rest/validation/JacksonMessageBodyProvider.java b/core/src/main/java/io/confluent/rest/validation/JacksonMessageBodyProvider.java index fc8a70b49b..c3005e883d 100644 --- a/core/src/main/java/io/confluent/rest/validation/JacksonMessageBodyProvider.java +++ b/core/src/main/java/io/confluent/rest/validation/JacksonMessageBodyProvider.java @@ -15,12 +15,14 @@ */ package io.confluent.rest.validation; +import com.fasterxml.jackson.databind.DeserializationFeature; import com.fasterxml.jackson.databind.JsonMappingException; import com.fasterxml.jackson.databind.ObjectMapper; import com.fasterxml.jackson.databind.exc.UnrecognizedPropertyException; import com.fasterxml.jackson.jaxrs.json.JacksonJaxbJsonProvider; import javax.validation.ConstraintViolationException; +import javax.ws.rs.WebApplicationException; import javax.ws.rs.core.MediaType; import javax.ws.rs.core.MultivaluedMap; import javax.ws.rs.ext.Provider; @@ -40,10 +42,13 @@ public class JacksonMessageBodyProvider extends JacksonJaxbJsonProvider { public JacksonMessageBodyProvider() { - setMapper(new ObjectMapper()); + ObjectMapper mapper = new ObjectMapper(); + mapper.enable(DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY); + setMapper(mapper); } public JacksonMessageBodyProvider(ObjectMapper mapper) { + mapper.enable(DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY); setMapper(mapper); } @@ -77,6 +82,8 @@ public Object readFrom(Class type, Throwable cause = e.getCause(); if (cause instanceof ConstraintViolationException) { throw (ConstraintViolationException) cause; + }else if(cause instanceof WebApplicationException){ + throw (WebApplicationException) cause; } throw e; } From 8814372d9e7b5cab278fbdafd28923d461da0c67 Mon Sep 17 00:00:00 2001 From: Lu Mao Date: Thu, 7 Jan 2016 10:04:09 +0000 Subject: [PATCH 2/3] Changed in response to the comments given in the pull request. --- core/src/main/java/io/confluent/rest/Application.java | 1 + .../confluent/rest/validation/JacksonMessageBodyProvider.java | 3 --- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/core/src/main/java/io/confluent/rest/Application.java b/core/src/main/java/io/confluent/rest/Application.java index b6d8bfd4b8..bfc310f07f 100644 --- a/core/src/main/java/io/confluent/rest/Application.java +++ b/core/src/main/java/io/confluent/rest/Application.java @@ -175,6 +175,7 @@ public void configureBaseApplication(Configurable config, Map RestConfig restConfig = getConfiguration(); ObjectMapper jsonMapper = getJsonMapper(); + jsonMapper.enable(DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY); JacksonMessageBodyProvider jsonProvider = new JacksonMessageBodyProvider(jsonMapper); config.register(jsonProvider); config.register(JsonParseExceptionMapper.class); diff --git a/core/src/main/java/io/confluent/rest/validation/JacksonMessageBodyProvider.java b/core/src/main/java/io/confluent/rest/validation/JacksonMessageBodyProvider.java index c3005e883d..50c001f3a5 100644 --- a/core/src/main/java/io/confluent/rest/validation/JacksonMessageBodyProvider.java +++ b/core/src/main/java/io/confluent/rest/validation/JacksonMessageBodyProvider.java @@ -48,7 +48,6 @@ public JacksonMessageBodyProvider() { } public JacksonMessageBodyProvider(ObjectMapper mapper) { - mapper.enable(DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY); setMapper(mapper); } @@ -82,8 +81,6 @@ public Object readFrom(Class type, Throwable cause = e.getCause(); if (cause instanceof ConstraintViolationException) { throw (ConstraintViolationException) cause; - }else if(cause instanceof WebApplicationException){ - throw (WebApplicationException) cause; } throw e; } From 64886a512316692320cf703e4473b903218e6dab Mon Sep 17 00:00:00 2001 From: Lu Mao Date: Thu, 7 Jan 2016 10:11:27 +0000 Subject: [PATCH 3/3] Using default constructor --- core/src/main/java/io/confluent/rest/Application.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/core/src/main/java/io/confluent/rest/Application.java b/core/src/main/java/io/confluent/rest/Application.java index bfc310f07f..da7f636d7d 100644 --- a/core/src/main/java/io/confluent/rest/Application.java +++ b/core/src/main/java/io/confluent/rest/Application.java @@ -174,9 +174,7 @@ public void configureBaseApplication(Configurable config) { public void configureBaseApplication(Configurable config, Map metricTags) { RestConfig restConfig = getConfiguration(); - ObjectMapper jsonMapper = getJsonMapper(); - jsonMapper.enable(DeserializationFeature.FAIL_ON_READING_DUP_TREE_KEY); - JacksonMessageBodyProvider jsonProvider = new JacksonMessageBodyProvider(jsonMapper); + JacksonMessageBodyProvider jsonProvider = new JacksonMessageBodyProvider(); config.register(jsonProvider); config.register(JsonParseExceptionMapper.class);