Streams not closed in case of exception - use auto closables instead

Change-Id: Ia089b65ac732299ce16fc67678a08d7ac197d849
diff --git a/compiler/base/tool/src/main/java/org/onosproject/yang/compiler/tool/YangCompilerManager.java b/compiler/base/tool/src/main/java/org/onosproject/yang/compiler/tool/YangCompilerManager.java
index 7888e66..296dd7d 100644
--- a/compiler/base/tool/src/main/java/org/onosproject/yang/compiler/tool/YangCompilerManager.java
+++ b/compiler/base/tool/src/main/java/org/onosproject/yang/compiler/tool/YangCompilerManager.java
@@ -151,12 +151,9 @@
      */
     private static void serializeModuleMetaData(String serFileName, YangNode node)
             throws IOException {
-        try {
-            FileOutputStream outStream = new FileOutputStream(serFileName);
-            ObjectOutputStream objOutStream = new ObjectOutputStream(outStream);
+        try (FileOutputStream outStream = new FileOutputStream(serFileName);
+             ObjectOutputStream objOutStream = new ObjectOutputStream(outStream)) {
             objOutStream.writeObject(node);
-            objOutStream.close();
-            outStream.close();
         } catch (IOException e) {
             e.printStackTrace();
         }
@@ -440,11 +437,10 @@
         nodelist.addAll(yangNodeSet);
         model = processYangModel(path, nodelist, id, false);
         String serFileName = path + YANG_META_DATA;
-        FileOutputStream fileOutputStream = new FileOutputStream(serFileName);
-        ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream);
-        objectOutputStream.writeObject(model);
-        objectOutputStream.close();
-        fileOutputStream.close();
+        try (FileOutputStream fileOutputStream = new FileOutputStream(serFileName);
+             ObjectOutputStream objectOutputStream = new ObjectOutputStream(fileOutputStream)) {
+            objectOutputStream.writeObject(model);
+        }
     }
 
     /**
@@ -517,12 +513,10 @@
     public static YangModel deSerializeDataModel(String info)
             throws IOException {
         YangModel model;
-        try {
-            FileInputStream fileInputStream = new FileInputStream(info);
-            ObjectInputStream objectInputStream = new ObjectInputStream(fileInputStream);
+        try (FileInputStream fileInputStream = new FileInputStream(info);
+             ObjectInputStream objectInputStream =
+                new ObjectInputStream(fileInputStream)) {
             model = ((YangModel) objectInputStream.readObject());
-            objectInputStream.close();
-            fileInputStream.close();
         } catch (IOException | ClassNotFoundException e) {
             throw new IOException(info + " failed to fetch nodes due to " + e
                     .getLocalizedMessage(), e);
@@ -559,39 +553,39 @@
             throws IOException {
 
         YangModel model = null;
-        JarFile jar = new JarFile(jarFile);
-        Enumeration<?> enumEntries = jar.entries();
+        try (JarFile jar = new JarFile(jarFile)) {
+            Enumeration<?> enumEntries = jar.entries();
 
-        File dir = new File(directory + SLASH + YANG_RESOURCES);
-        if (!dir.exists()) {
-            dir.mkdirs();
-        }
+            File dir = new File(directory + SLASH + YANG_RESOURCES);
+            if (!dir.exists()) {
+                dir.mkdirs();
+            }
 
-        while (enumEntries.hasMoreElements()) {
-            JarEntry file = (JarEntry) enumEntries.nextElement();
-            if (file.getName().endsWith(YANG_META_DATA) ||
+            while (enumEntries.hasMoreElements()) {
+                JarEntry file = (JarEntry) enumEntries.nextElement();
+                if (file.getName().endsWith(YANG_META_DATA) ||
                     file.getName().endsWith(".yang")) {
-                String name = getFileName(file.getName());
-                File serializedFile = new File(directory + SLASH +
-                                                       YANG_RESOURCES + SLASH + name);
-                if (file.isDirectory()) {
-                    serializedFile.mkdirs();
-                    continue;
-                }
-                InputStream inputStream = jar.getInputStream(file);
+                    String name = getFileName(file.getName());
+                    File serializedFile = new File(directory + SLASH +
+                                                  YANG_RESOURCES + SLASH + name);
+                    if (file.isDirectory()) {
+                        serializedFile.mkdirs();
+                        continue;
+                    }
+                    try (InputStream inputStream = jar.getInputStream(file);
+                         FileOutputStream fileOutputStream =
+                                 new FileOutputStream(serializedFile)) {
 
-                FileOutputStream fileOutputStream = new FileOutputStream(serializedFile);
-                while (inputStream.available() > 0) {
-                    fileOutputStream.write(inputStream.read());
-                }
-                fileOutputStream.close();
-                inputStream.close();
-                if (serializedFile.getName().endsWith(YANG_META_DATA)) {
-                    model = deSerializeDataModel(serializedFile.toString());
+                        while (inputStream.available() > 0) {
+                            fileOutputStream.write(inputStream.read());
+                        }
+                        if (serializedFile.getName().endsWith(YANG_META_DATA)) {
+                            model = deSerializeDataModel(serializedFile.toString());
+                        }
+                    }
                 }
             }
         }
-        jar.close();
         return model;
     }
 }