You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@isis.apache.org by ah...@apache.org on 2020/07/15 14:03:03 UTC

[isis] 08/18: ISIS-2401: ObjectSerializer: mitigate potential resource leaks (sonar)

This is an automated email from the ASF dual-hosted git repository.

ahuber pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/isis.git

commit 3c960bd2e1f18195d39bd5f1b4159dddf8256a16
Author: Andi Huber <ah...@apache.org>
AuthorDate: Tue Jul 14 10:21:27 2020 +0200

    ISIS-2401: ObjectSerializer: mitigate potential resource leaks (sonar)
---
 .../ObjectSerializer_builtinHandlers.java          | 24 +++++++++++-----------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/serialize/ObjectSerializer_builtinHandlers.java b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/serialize/ObjectSerializer_builtinHandlers.java
index 6fe573c..5155d6d 100644
--- a/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/serialize/ObjectSerializer_builtinHandlers.java
+++ b/core/metamodel/src/main/java/org/apache/isis/core/metamodel/objectmanager/serialize/ObjectSerializer_builtinHandlers.java
@@ -54,12 +54,12 @@ final class ObjectSerializer_builtinHandlers {
         @SneakyThrows
         @Override
         public byte[] serialize(ManagedObject object) {
-            val bos = new ByteArrayOutputStream(16*4096); // 16k initial buffer size
-            val oos = new ObjectOutputStream(bos);
-            oos.writeObject(object.getPojo());
-            oos.flush();
-            oos.close();
-            return _Bytes.compress(bos.toByteArray());
+            val bos = new ByteArrayOutputStream(16*1024); // 16k initial buffer size
+            try(val oos = new ObjectOutputStream(bos)){
+                oos.writeObject(object.getPojo());
+                oos.flush();
+                return _Bytes.compress(bos.toByteArray());
+            } 
         }
         
         @SneakyThrows
@@ -70,12 +70,12 @@ final class ObjectSerializer_builtinHandlers {
         }
         
         private <T> T unmarshall(Class<T> type, byte[] input) throws IOException, ClassNotFoundException {
-            val bis = new ByteArrayInputStream(_Bytes.decompress(input));
-            val ois = new ObjectInputStream(bis);
-            @SuppressWarnings("unchecked")
-            val t = (T) ois.readObject();
-            bis.close(); 
-            return t;
+            try(val bis = new ByteArrayInputStream(_Bytes.decompress(input))){
+                val ois = new ObjectInputStream(bis);
+                @SuppressWarnings("unchecked")
+                val t = (T) ois.readObject();
+                return t;
+            }
         }
         
     }