Closed nested JSON writers 69/67869/6
authorStephen Kitt <skitt@redhat.com>
Fri, 2 Feb 2018 15:57:30 +0000 (16:57 +0100)
committerStephen Kitt <skitt@redhat.com>
Thu, 22 Feb 2018 09:07:43 +0000 (09:07 +0000)
With I9c597fe96937867cffdcbeeddd4b1507de20f2ee,
JSONNormalizedNodeStreamWriter.createNestedWriter() leaves it up to
the caller to close the provided JsonWriter. This patch ensures that
that is the case.

Change-Id: If20a596db06e40d1636de168dd11677372964364
Signed-off-by: Stephen Kitt <skitt@redhat.com>
(cherry picked from commit b6be299466349d775d860ab45d785028e6b899f7)

restconf/restconf-nb-bierman02/src/main/java/org/opendaylight/netconf/sal/rest/impl/NormalizedNodeJsonBodyWriter.java
restconf/restconf-nb-rfc8040/src/main/java/org/opendaylight/restconf/nb/rfc8040/jersey/providers/NormalizedNodeJsonBodyWriter.java

index 434233caf79afc2e0b33dc0c4ffac0d9be87eb52..e4f00aa145aa4797bb6a5879f49c0733275f80d1 100644 (file)
@@ -86,12 +86,14 @@ public class NormalizedNodeJsonBodyWriter implements MessageBodyWriter<Normalize
                 (InstanceIdentifierContext<SchemaNode>) context.getInstanceIdentifierContext();
 
         final SchemaPath path = identifierCtx.getSchemaNode().getPath();
-        final JsonWriter jsonWriter = createJsonWriter(entityStream, context.getWriterParameters().isPrettyPrint());
-        jsonWriter.beginObject();
-        writeNormalizedNode(
-                jsonWriter,path,identifierCtx,data, Optional.fromNullable(context.getWriterParameters().getDepth()));
-        jsonWriter.endObject();
-        jsonWriter.flush();
+        try (JsonWriter jsonWriter = createJsonWriter(entityStream, context.getWriterParameters().isPrettyPrint())) {
+            jsonWriter.beginObject();
+            writeNormalizedNode(
+                    jsonWriter, path, identifierCtx, data,
+                    Optional.fromNullable(context.getWriterParameters().getDepth()));
+            jsonWriter.endObject();
+            jsonWriter.flush();
+        }
     }
 
     private static void writeNormalizedNode(final JsonWriter jsonWriter, SchemaPath path,
index 2b49392c6f2e9ea917931ba7ed64d255a5a7933f..59a976743cb9ee1c5f0b35f5a76af63f0c7965a0 100644 (file)
@@ -87,14 +87,14 @@ public class NormalizedNodeJsonBodyWriter implements MessageBodyWriter<Normalize
         final InstanceIdentifierContext<SchemaNode> identifierCtx =
                 (InstanceIdentifierContext<SchemaNode>) context.getInstanceIdentifierContext();
         final SchemaPath path = identifierCtx.getSchemaNode().getPath();
-        final JsonWriter jsonWriter = createJsonWriter(entityStream,
-                context.getWriterParameters().isPrettyPrint());
-
-        jsonWriter.beginObject();
-        writeNormalizedNode(jsonWriter, path, identifierCtx, data,
-                context.getWriterParameters().getDepth(), context.getWriterParameters().getFields());
-        jsonWriter.endObject();
-        jsonWriter.flush();
+
+        try (JsonWriter jsonWriter = createJsonWriter(entityStream, context.getWriterParameters().isPrettyPrint())) {
+            jsonWriter.beginObject();
+            writeNormalizedNode(jsonWriter, path, identifierCtx, data,
+                    context.getWriterParameters().getDepth(), context.getWriterParameters().getFields());
+            jsonWriter.endObject();
+            jsonWriter.flush();
+        }
     }
 
     private static void writeNormalizedNode(final JsonWriter jsonWriter,