Mercurial > hg > release > icedtea7-forest-2.4 > jdk
changeset 4316:aa7c361144bb
7040916: DynamicKeyTab test fails on Windows
Reviewed-by: xuelei
author | weijun |
---|---|
date | Sun, 01 May 2011 14:22:32 +0800 |
parents | ca58907a51f7 |
children | 4ac05b50f09c 94551cf150a1 |
files | src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java test/sun/security/krb5/auto/DynamicKeytab.java |
diffstat | 2 files changed, 25 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java Sat Apr 30 16:55:46 2011 -0700 +++ b/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java Sun May 01 14:22:32 2011 +0800 @@ -92,10 +92,10 @@ tabName = filename; try { lastModified = new File(tabName).lastModified(); - KeyTabInputStream kis = - new KeyTabInputStream(new FileInputStream(filename)); - load(kis); - kis.close(); + try (KeyTabInputStream kis = + new KeyTabInputStream(new FileInputStream(filename))) { + load(kis); + } } catch (FileNotFoundException e) { entries.clear(); isMissing = true; @@ -439,10 +439,10 @@ public synchronized static KeyTab create(String name) throws IOException, RealmException { - KeyTabOutputStream kos = - new KeyTabOutputStream(new FileOutputStream(name)); - kos.writeVersion(KRB5_KT_VNO); - kos.close(); + try (KeyTabOutputStream kos = + new KeyTabOutputStream(new FileOutputStream(name))) { + kos.writeVersion(KRB5_KT_VNO); + } return new KeyTab(name); } @@ -450,13 +450,13 @@ * Saves the file at the directory. */ public synchronized void save() throws IOException { - KeyTabOutputStream kos = - new KeyTabOutputStream(new FileOutputStream(tabName)); - kos.writeVersion(kt_vno); - for (int i = 0; i < entries.size(); i++) { - kos.writeEntry(entries.elementAt(i)); + try (KeyTabOutputStream kos = + new KeyTabOutputStream(new FileOutputStream(tabName))) { + kos.writeVersion(kt_vno); + for (int i = 0; i < entries.size(); i++) { + kos.writeEntry(entries.elementAt(i)); + } } - kos.close(); } /** @@ -519,9 +519,9 @@ * @exception IOException. */ public synchronized void createVersion(File file) throws IOException { - KeyTabOutputStream kos = - new KeyTabOutputStream(new FileOutputStream(file)); - kos.write16(KRB5_KT_VNO); - kos.close(); + try (KeyTabOutputStream kos = + new KeyTabOutputStream(new FileOutputStream(file))) { + kos.write16(KRB5_KT_VNO); + } } }
--- a/test/sun/security/krb5/auto/DynamicKeytab.java Sat Apr 30 16:55:46 2011 -0700 +++ b/test/sun/security/krb5/auto/DynamicKeytab.java Sun May 01 14:22:32 2011 +0800 @@ -30,6 +30,8 @@ import java.io.File; import java.io.FileOutputStream; +import java.nio.file.Files; +import java.nio.file.Paths; import org.ietf.jgss.GSSException; import sun.security.jgss.GSSUtil; import sun.security.krb5.KrbException; @@ -47,8 +49,7 @@ OneKDC k = new OneKDC(null); k.writeJAASConf(); - new File(OneKDC.KTAB).delete(); - + Files.delete(Paths.get(OneKDC.KTAB)); // Starts with no keytab c = Context.fromJAAS("client"); @@ -79,11 +80,13 @@ connect(); // Test 5: invalid keytab file, should ignore - new FileOutputStream(OneKDC.KTAB).write("BADBADBAD".getBytes()); + try (FileOutputStream fos = new FileOutputStream(OneKDC.KTAB)) { + fos.write("BADBADBAD".getBytes()); + } connect(); // Test 6: delete keytab file, identical to revoke all - new File(OneKDC.KTAB).delete(); + Files.delete(Paths.get(OneKDC.KTAB)); try { connect(); throw new Exception("Should not success");