7020531: test: java/security/cert/CertificateFactory/openssl/OpenSSLCert.java file not closed after run

Reviewed-by: alanb, smarks
This commit is contained in:
Weijun Wang 2011-03-01 16:22:22 +08:00
parent b777a1fbae
commit 314c75c742
3 changed files with 22 additions and 23 deletions

View File

@ -625,9 +625,6 @@ sun/security/tools/keytool/emptysubject.sh generic-all
# Timeout on solaris-sparcv9 or exception thrown # Timeout on solaris-sparcv9 or exception thrown
com/sun/crypto/provider/Cipher/RSA/TestOAEP_KAT.java solaris-all 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 # Leaving file open: SerialVersion.current, windows samevm
java/security/BasicPermission/SerialVersion.java generic-all java/security/BasicPermission/SerialVersion.java generic-all

View File

@ -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. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -28,6 +28,8 @@
*/ */
import java.io.*; import java.io.*;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.Arrays; import java.util.Arrays;
import java.security.cert.CertificateFactory; import java.security.cert.CertificateFactory;
@ -46,24 +48,20 @@ public class OpenSSLCert {
} }
static void test(String... files) throws Exception { static void test(String... files) throws Exception {
FileOutputStream fout = new FileOutputStream(OUTFILE); try (FileOutputStream fout = new FileOutputStream(OUTFILE)) {
for (String file: files) { String here = System.getProperty("test.src", "");
FileInputStream fin = new FileInputStream( for (String file: files) {
new File(System.getProperty("test.src", "."), file)); Files.copy(Paths.get(here, file), fout);
byte[] buffer = new byte[4096];
while (true) {
int len = fin.read(buffer);
if (len < 0) break;
fout.write(buffer, 0, len);
} }
fin.close();
} }
fout.close(); try (FileInputStream fin = new FileInputStream(OUTFILE)) {
System.out.println("Testing " + Arrays.toString(files) + "..."); System.out.println("Testing " + Arrays.toString(files) + "...");
if (CertificateFactory.getInstance("X509") if (CertificateFactory.getInstance("X509")
.generateCertificates(new FileInputStream(OUTFILE)) .generateCertificates(fin)
.size() != files.length) { .size() != files.length) {
throw new Exception("Not same number"); throw new Exception("Not same number");
}
} }
Files.delete(Paths.get(OUTFILE));
} }
} }

View File

@ -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. * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
* *
* This code is free software; you can redistribute it and/or modify it * This code is free software; you can redistribute it and/or modify it
@ -29,6 +29,8 @@
import java.io.File; import java.io.File;
import java.io.FileInputStream; import java.io.FileInputStream;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.security.KeyStore; import java.security.KeyStore;
import java.security.cert.X509Certificate; import java.security.cert.X509Certificate;
import java.security.interfaces.RSAPublicKey; import java.security.interfaces.RSAPublicKey;
@ -42,8 +44,10 @@ public class NewSize7 {
" -alias a -dname cn=c -storepass changeit" + " -alias a -dname cn=c -storepass changeit" +
" -keypass changeit -keyalg rsa").split(" ")); " -keypass changeit -keyalg rsa").split(" "));
KeyStore ks = KeyStore.getInstance("JKS"); KeyStore ks = KeyStore.getInstance("JKS");
ks.load(new FileInputStream(FILE), null); try (FileInputStream fin = new FileInputStream(FILE)) {
new File(FILE).delete(); ks.load(fin, null);
}
Files.delete(Paths.get(FILE));
RSAPublicKey r = (RSAPublicKey)ks.getCertificate("a").getPublicKey(); RSAPublicKey r = (RSAPublicKey)ks.getCertificate("a").getPublicKey();
if (r.getModulus().bitLength() != 2048) { if (r.getModulus().bitLength() != 2048) {
throw new Exception("Bad keysize"); throw new Exception("Bad keysize");