7020531: test: java/security/cert/CertificateFactory/openssl/OpenSSLCert.java file not closed after run
Reviewed-by: alanb, smarks
--- a/jdk/test/ProblemList.txt Mon Feb 28 23:02:37 2011 +0800
+++ b/jdk/test/ProblemList.txt Tue Mar 01 16:22:22 2011 +0800
@@ -625,9 +625,6 @@
# Timeout on solaris-sparcv9 or exception thrown
com/sun/crypto/provider/Cipher/RSA/TestOAEP_KAT.java solaris-all
-# File 6535697.test input stream left open? windows samevm
-java/security/cert/CertificateFactory/openssl/OpenSSLCert.java generic-all
-
# Leaving file open: SerialVersion.current, windows samevm
java/security/BasicPermission/SerialVersion.java generic-all
--- a/jdk/test/java/security/cert/CertificateFactory/openssl/OpenSSLCert.java Mon Feb 28 23:02:37 2011 +0800
+++ b/jdk/test/java/security/cert/CertificateFactory/openssl/OpenSSLCert.java Tue Mar 01 16:22:22 2011 +0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -28,6 +28,8 @@
*/
import java.io.*;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.util.Arrays;
import java.security.cert.CertificateFactory;
@@ -46,24 +48,20 @@
}
static void test(String... files) throws Exception {
- FileOutputStream fout = new FileOutputStream(OUTFILE);
- for (String file: files) {
- FileInputStream fin = new FileInputStream(
- new File(System.getProperty("test.src", "."), file));
- byte[] buffer = new byte[4096];
- while (true) {
- int len = fin.read(buffer);
- if (len < 0) break;
- fout.write(buffer, 0, len);
+ try (FileOutputStream fout = new FileOutputStream(OUTFILE)) {
+ String here = System.getProperty("test.src", "");
+ for (String file: files) {
+ Files.copy(Paths.get(here, file), fout);
}
- fin.close();
}
- fout.close();
- System.out.println("Testing " + Arrays.toString(files) + "...");
- if (CertificateFactory.getInstance("X509")
- .generateCertificates(new FileInputStream(OUTFILE))
- .size() != files.length) {
- throw new Exception("Not same number");
+ try (FileInputStream fin = new FileInputStream(OUTFILE)) {
+ System.out.println("Testing " + Arrays.toString(files) + "...");
+ if (CertificateFactory.getInstance("X509")
+ .generateCertificates(fin)
+ .size() != files.length) {
+ throw new Exception("Not same number");
+ }
}
+ Files.delete(Paths.get(OUTFILE));
}
}
--- a/jdk/test/sun/security/tools/keytool/NewSize7.java Mon Feb 28 23:02:37 2011 +0800
+++ b/jdk/test/sun/security/tools/keytool/NewSize7.java Tue Mar 01 16:22:22 2011 +0800
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 2009, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 2009, 2011, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -29,6 +29,8 @@
import java.io.File;
import java.io.FileInputStream;
+import java.nio.file.Files;
+import java.nio.file.Paths;
import java.security.KeyStore;
import java.security.cert.X509Certificate;
import java.security.interfaces.RSAPublicKey;
@@ -42,8 +44,10 @@
" -alias a -dname cn=c -storepass changeit" +
" -keypass changeit -keyalg rsa").split(" "));
KeyStore ks = KeyStore.getInstance("JKS");
- ks.load(new FileInputStream(FILE), null);
- new File(FILE).delete();
+ try (FileInputStream fin = new FileInputStream(FILE)) {
+ ks.load(fin, null);
+ }
+ Files.delete(Paths.get(FILE));
RSAPublicKey r = (RSAPublicKey)ks.getCertificate("a").getPublicKey();
if (r.getModulus().bitLength() != 2048) {
throw new Exception("Bad keysize");