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;
}
}