From da79f8638252732f33c7c2a24b1f9de9d0cfd1ac Mon Sep 17 00:00:00 2001 From: rsgowman Date: Fri, 10 May 2019 13:07:21 -0400 Subject: [PATCH] testing: Close cert files to avoid resource leak Without this, test failures are generated within google3 for our (firestore) integration tests. --- .../java/io/grpc/internal/testing/TestUtils.java | 12 ++++++++---- testing/src/main/java/io/grpc/testing/TestUtils.java | 12 ++++++++---- 2 files changed, 16 insertions(+), 8 deletions(-) diff --git a/testing/src/main/java/io/grpc/internal/testing/TestUtils.java b/testing/src/main/java/io/grpc/internal/testing/TestUtils.java index 470281595a..f9d8d7ba5d 100644 --- a/testing/src/main/java/io/grpc/internal/testing/TestUtils.java +++ b/testing/src/main/java/io/grpc/internal/testing/TestUtils.java @@ -189,10 +189,14 @@ public class TestUtils { KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); ks.load(null, null); CertificateFactory cf = CertificateFactory.getInstance("X.509"); - X509Certificate cert = (X509Certificate) cf.generateCertificate( - new BufferedInputStream(new FileInputStream(certChainFile))); - X500Principal principal = cert.getSubjectX500Principal(); - ks.setCertificateEntry(principal.getName("RFC2253"), cert); + BufferedInputStream in = new BufferedInputStream(new FileInputStream(certChainFile)); + try { + X509Certificate cert = (X509Certificate) cf.generateCertificate(in); + X500Principal principal = cert.getSubjectX500Principal(); + ks.setCertificateEntry(principal.getName("RFC2253"), cert); + } finally { + in.close(); + } // Set up trust manager factory to use our key store. TrustManagerFactory trustManagerFactory = diff --git a/testing/src/main/java/io/grpc/testing/TestUtils.java b/testing/src/main/java/io/grpc/testing/TestUtils.java index 15de4cfed6..f10a6a2664 100644 --- a/testing/src/main/java/io/grpc/testing/TestUtils.java +++ b/testing/src/main/java/io/grpc/testing/TestUtils.java @@ -120,10 +120,14 @@ public class TestUtils { KeyStore ks = KeyStore.getInstance(KeyStore.getDefaultType()); ks.load(null, null); CertificateFactory cf = CertificateFactory.getInstance("X.509"); - X509Certificate cert = (X509Certificate) cf.generateCertificate( - new BufferedInputStream(new FileInputStream(certChainFile))); - X500Principal principal = cert.getSubjectX500Principal(); - ks.setCertificateEntry(principal.getName("RFC2253"), cert); + BufferedInputStream in = new BufferedInputStream(new FileInputStream(certChainFile)); + try { + X509Certificate cert = (X509Certificate) cf.generateCertificate(in); + X500Principal principal = cert.getSubjectX500Principal(); + ks.setCertificateEntry(principal.getName("RFC2253"), cert); + } finally { + in.close(); + } // Set up trust manager factory to use our key store. TrustManagerFactory trustManagerFactory =