Use a constant ObjectMapper in UpdateNotificationDeser 53/86053/1
authorRobert Varga <robert.varga@pantheon.tech>
Thu, 28 Nov 2019 12:57:04 +0000 (13:57 +0100)
committerRobert Varga <robert.varga@pantheon.tech>
Thu, 28 Nov 2019 20:19:00 +0000 (21:19 +0100)
Rather than instantiating a fresh mapper for each request,
share a single pre-configured instance.

Change-Id: I231165f82dc950ae9e3adbfb816da123139cc878
Signed-off-by: Robert Varga <robert.varga@pantheon.tech>
(cherry picked from commit 4402e56b96f9d64e23efec322c42e6d2d7d5f3bb)

library/impl/src/main/java/org/opendaylight/ovsdb/lib/notation/json/Converter.java

index 97e588c6f8db3cc17058997a0b31301397369371..8ea490647f169b00359ca1f4e414bb2c9e3ad98b 100644 (file)
@@ -31,27 +31,27 @@ public final class Converter {
 
     public static class MapConverter extends StdConverter<JsonNode, OvsdbMap<Object, Object>> {
         @Override
-        public OvsdbMap<Object, Object> convert(JsonNode value) {
+        public OvsdbMap<Object, Object> convert(final JsonNode value) {
             return mapDeser.deserialize(value);
         }
     }
 
     public static class SetConverter extends StdConverter<JsonNode, OvsdbSet<Object>> {
         @Override
-        public OvsdbSet<Object> convert(JsonNode value) {
+        public OvsdbSet<Object> convert(final JsonNode value) {
             return setDeser.deserialize(value);
         }
     }
 
     public static class UpdateNotificationConverter extends StdConverter<JsonNode, UpdateNotification> {
         @Override
-        public UpdateNotification convert(JsonNode value) {
+        public UpdateNotification convert(final JsonNode value) {
             return unDeser.deserialize(value);
         }
     }
 
     static class MapDeser {
-        public OvsdbMap<Object, Object> deserialize(JsonNode node) {
+        public OvsdbMap<Object, Object> deserialize(final JsonNode node) {
             if (node.isArray() && node.size() == 2) {
                 if (node.get(0).isTextual() && "map".equals(node.get(0).asText())) {
                     OvsdbMap<Object, Object> map = new OvsdbMap<>();
@@ -72,7 +72,7 @@ public final class Converter {
     }
 
     static class SetDeser {
-        public OvsdbSet<Object> deserialize(JsonNode node) {
+        public OvsdbSet<Object> deserialize(final JsonNode node) {
             OvsdbSet<Object> set = new OvsdbSet<>();
             if (node.isArray()) {
                 if (node.size() == 2) {
@@ -96,15 +96,15 @@ public final class Converter {
     }
 
     static class UpdateNotificationDeser {
-        public UpdateNotification deserialize(JsonNode node) {
+        private static final ObjectMapper OBJECT_MAPPER = new ObjectMapper()
+                .configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
+
+        public UpdateNotification deserialize(final JsonNode node) {
             UpdateNotification un = new UpdateNotification();
             if (node.isArray() && node.size() == 2) {
                 un.setContext(node.get(0).asText());
                 un.setUpdates(node.get(1));
-                ObjectMapper objectMapper = new ObjectMapper();
-                objectMapper.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
-                TableUpdates updates = objectMapper.convertValue(node.get(1), TableUpdates.class);
-                un.setUpdate(updates);
+                un.setUpdate(OBJECT_MAPPER.convertValue(node.get(1), TableUpdates.class));
                 return un;
             }
             return null;
@@ -113,7 +113,7 @@ public final class Converter {
 
     static class AtomDeser {
 
-        public Object deserialize(JsonNode node) {
+        public Object deserialize(final JsonNode node) {
             if (!node.isArray()) {
                 switch (node.getNodeType()) {
                     case BOOLEAN: