diff --git a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/JsonPatchHandler.java b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/JsonPatchHandler.java index fe222bb3f..c730460d3 100644 --- a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/JsonPatchHandler.java +++ b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/config/JsonPatchHandler.java @@ -107,7 +107,7 @@ class JsonPatchHandler { private Patch getPatchOperations(InputStream source) { try { - return new JsonPatchPatchConverter().convert(mapper.readTree(source)); + return new JsonPatchPatchConverter(mapper).convert(mapper.readTree(source)); } catch (Exception o_O) { throw new HttpMessageNotReadableException( String.format("Could not read PATCH operations! Expected %s!", RestMediaTypes.JSON_PATCH_JSON), o_O); diff --git a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/patch/JsonLateObjectEvaluator.java b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/patch/JsonLateObjectEvaluator.java index 55de8965e..6322a2d0e 100644 --- a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/patch/JsonLateObjectEvaluator.java +++ b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/patch/JsonLateObjectEvaluator.java @@ -22,6 +22,7 @@ import com.fasterxml.jackson.databind.ObjectMapper; * {@link LateObjectEvaluator} implementation that assumes values represented as JSON objects. * * @author Craig Walls + * @author Mathias Düsterhöft */ class JsonLateObjectEvaluator implements LateObjectEvaluator { diff --git a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/patch/JsonPatchPatchConverter.java b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/patch/JsonPatchPatchConverter.java index d56bf9789..63d8fb4c8 100644 --- a/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/patch/JsonPatchPatchConverter.java +++ b/spring-data-rest-webmvc/src/main/java/org/springframework/data/rest/webmvc/json/patch/JsonPatchPatchConverter.java @@ -33,9 +33,13 @@ import com.fasterxml.jackson.databind.node.ObjectNode; */ public class JsonPatchPatchConverter implements PatchConverter { - private static final ObjectMapper MAPPER = new ObjectMapper(); + private final ObjectMapper mapper; - /** + public JsonPatchPatchConverter(ObjectMapper mapper) { + this.mapper = mapper; + } + + /** * Constructs a {@link Patch} object given a JsonNode. * * @param jsonNode a JsonNode containing the JSON Patch @@ -99,7 +103,7 @@ public class JsonPatchPatchConverter implements PatchConverter { } Object value = operation.getValue(); if (value != null) { - opNode.set("value", MAPPER.valueToTree(value)); + opNode.set("value", mapper.valueToTree(value)); } patchNode.add(opNode); } diff --git a/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/json/patch/JsonPatchTest.java b/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/json/patch/JsonPatchTest.java index 25af34a18..de1bd7e95 100644 --- a/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/json/patch/JsonPatchTest.java +++ b/spring-data-rest-webmvc/src/test/java/org/springframework/data/rest/webmvc/json/patch/JsonPatchTest.java @@ -113,7 +113,7 @@ public class JsonPatchTest { ClassPathResource resource = new ClassPathResource(jsonPatchFile, getClass()); ObjectMapper mapper = new ObjectMapper(); JsonNode node = mapper.readValue(resource.getInputStream(), JsonNode.class); - Patch patch = new JsonPatchPatchConverter().convert(node); + Patch patch = new JsonPatchPatchConverter(mapper).convert(node); return patch; }