From 2d89c2f3eb2902a51ffa470a26f3406808361ae6 Mon Sep 17 00:00:00 2001 From: Lorenzo Blasa Date: Fri, 3 Dec 2021 12:56:09 -0800 Subject: [PATCH] Close resource as we cannot inline (#3125) Summary: Pull Request resolved: https://github.com/facebook/flipper/pull/3125 Better stream creation and disposal. A report was generated with the following error: StrictMode policy violation: android.os.strictmode.LeakedClosableViolation: A resource was acquired at attached stack trace but never released. See java.io.Closeable for information on avoiding resource leaks. Changelog: Close input stream after use which was causing strict mode policy violation crashes and possibly leaking resources. Reviewed By: passy Differential Revision: D32830690 fbshipit-source-id: de3ffaf1b600590c4060a381fae66e73e08745cb --- .../java/com/facebook/flipper/android/FlipperSocketImpl.java | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/android/src/main/java/com/facebook/flipper/android/FlipperSocketImpl.java b/android/src/main/java/com/facebook/flipper/android/FlipperSocketImpl.java index 09286081d..2c2304060 100644 --- a/android/src/main/java/com/facebook/flipper/android/FlipperSocketImpl.java +++ b/android/src/main/java/com/facebook/flipper/android/FlipperSocketImpl.java @@ -87,7 +87,9 @@ class FlipperSocketImpl extends WebSocketClient implements FlipperSocket { String cert_client_pass = authenticationObject.getString("certificates_client_pass"); String cert_ca_path = authenticationObject.getString("certificates_ca_path"); - ks.load(new FileInputStream(cert_client_path), cert_client_pass.toCharArray()); + try (InputStream clientCertificateStream = new FileInputStream(cert_client_path)) { + ks.load(clientCertificateStream, cert_client_pass.toCharArray()); + } KeyManagerFactory kmf = KeyManagerFactory.getInstance(KeyManagerFactory.getDefaultAlgorithm());