7040916: DynamicKeyTab test fails on Windows
authorweijun
Sun, 01 May 2011 14:22:32 +0800
changeset 9542 6f715a596a2e
parent 9541 7ce475045bf0
child 9543 3d4bcfaa8627
child 9544 89c6ba8bb6c7
7040916: DynamicKeyTab test fails on Windows Reviewed-by: xuelei
jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java
jdk/test/sun/security/krb5/auto/DynamicKeytab.java
--- a/jdk/src/share/classes/sun/security/krb5/internal/ktab/KeyTab.java	Sat Apr 30 16:55:46 2011 -0700
+++ b/jdk/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/jdk/test/sun/security/krb5/auto/DynamicKeytab.java	Sat Apr 30 16:55:46 2011 -0700
+++ b/jdk/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");