From 5269f6d55e4cb804e0316f2239916f83001a7379 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Klitzing?= Date: Fri, 2 Mar 2018 22:01:22 +0100 Subject: Avoid to fail to close stream on exception Move .close() to finally block. Found by spotbugs. Change-Id: I1d11f52c79e805082f05801e4ef0ec94c6dc4e6e Reviewed-by: BogDan Vatra --- .../qtproject/qt5/android/bindings/QtLoader.java | 58 ++++++++++++++++------ 1 file changed, 43 insertions(+), 15 deletions(-) (limited to 'src/android') diff --git a/src/android/java/src/org/qtproject/qt5/android/bindings/QtLoader.java b/src/android/java/src/org/qtproject/qt5/android/bindings/QtLoader.java index 424bf45c53..531802959c 100644 --- a/src/android/java/src/org/qtproject/qt5/android/bindings/QtLoader.java +++ b/src/android/java/src/org/qtproject/qt5/android/bindings/QtLoader.java @@ -355,12 +355,21 @@ public abstract class QtLoader { destinationFile.createNewFile(); AssetManager assetsManager = m_context.getAssets(); - InputStream inputStream = assetsManager.open(source); - OutputStream outputStream = new FileOutputStream(destinationFile); - copyFile(inputStream, outputStream); + InputStream inputStream = null; + OutputStream outputStream = null; + try { + inputStream = assetsManager.open(source); + outputStream = new FileOutputStream(destinationFile); + copyFile(inputStream, outputStream); + catch (Exception e) { + e.printStackTrace(); + } finally { + if (inputStream != null) + inputStream.close(); - inputStream.close(); - outputStream.close(); + if (outputStream != null) + outputStream.close(); + } } private static void createBundledBinary(String source, String destination) @@ -377,12 +386,21 @@ public abstract class QtLoader { destinationFile.createNewFile(); - InputStream inputStream = new FileInputStream(source); - OutputStream outputStream = new FileOutputStream(destinationFile); - copyFile(inputStream, outputStream); + InputStream inputStream = null; + OutputStream outputStream = null; + try { + inputStream = new FileInputStream(source); + outputStream = new FileOutputStream(destinationFile); + copyFile(inputStream, outputStream); + catch (Exception e) { + e.printStackTrace(); + } finally { + if (inputStream != null) + inputStream.close(); - inputStream.close(); - outputStream.close(); + if (outputStream != null) + outputStream.close(); + } } private boolean cleanCacheIfNecessary(String pluginsPrefix, long packageVersion) @@ -391,12 +409,15 @@ public abstract class QtLoader { long cacheVersion = 0; if (versionFile.exists() && versionFile.canRead()) { + DataInputStream inputStream = null; try { - DataInputStream inputStream = new DataInputStream(new FileInputStream(versionFile)); + inputStream = new DataInputStream(new FileInputStream(versionFile)); cacheVersion = inputStream.readLong(); - inputStream.close(); } catch (Exception e) { e.printStackTrace(); + } finally { + if (inputStream != null) + inputStream.close(); } } @@ -431,9 +452,16 @@ public abstract class QtLoader { versionFile.createNewFile(); - DataOutputStream outputStream = new DataOutputStream(new FileOutputStream(versionFile)); - outputStream.writeLong(packageVersion); - outputStream.close(); + DataOutputStream outputStream = null; + try { + outputStream = new DataOutputStream(new FileOutputStream(versionFile)); + outputStream.writeLong(packageVersion); + catch (Exception e) { + e.printStackTrace(); + } finally { + if (outputStream != null) + outputStream.close(); + } } { -- cgit v1.2.3