--- old/src/share/classes/java/lang/Package.java 2011-02-21 17:40:08.601107124 -0800 +++ new/src/share/classes/java/lang/Package.java 2011-02-21 17:40:08.284640002 -0800 @@ -576,12 +576,10 @@ * Returns the Manifest for the specified JAR file name. */ private static Manifest loadManifest(String fn) { - try { - FileInputStream fis = new FileInputStream(fn); - JarInputStream jis = new JarInputStream(fis, false); - Manifest man = jis.getManifest(); - jis.close(); - return man; + try (FileInputStream fis = new FileInputStream(fn); + JarInputStream jis = new JarInputStream(fis, false)) + { + return jis.getManifest(); } catch (IOException e) { return null; } --- old/src/share/classes/java/util/Currency.java 2011-02-21 17:40:09.720479878 -0800 +++ new/src/share/classes/java/util/Currency.java 2011-02-21 17:40:09.436434752 -0800 @@ -233,7 +233,9 @@ "currency.properties"); if (propFile.exists()) { Properties props = new Properties(); - props.load(new FileReader(propFile)); + try (FileReader fr = new FileReader(propFile)) { + props.load(fr); + } Set keys = props.stringPropertyNames(); Pattern propertiesPattern = Pattern.compile("([A-Z]{3})\\s*,\\s*(\\d{3})\\s*,\\s*([0-3])"); --- old/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java 2011-02-21 17:40:10.776829234 -0800 +++ new/src/share/classes/sun/util/calendar/LocalGregorianCalendar.java 2011-02-21 17:40:10.488507302 -0800 @@ -127,7 +127,9 @@ calendarProps = (Properties) AccessController.doPrivileged(new PrivilegedExceptionAction() { public Object run() throws IOException { Properties props = new Properties(); - props.load(new FileInputStream(fname)); + try (FileInputStream fis = new FileInputStream(fname)) { + props.load(fis); + } return props; } }); --- old/src/solaris/classes/java/util/prefs/FileSystemPreferences.java 2011-02-21 17:40:11.820444007 -0800 +++ new/src/solaris/classes/java/util/prefs/FileSystemPreferences.java 2011-02-21 17:40:11.528615482 -0800 @@ -571,9 +571,9 @@ long newLastSyncTime = 0; try { newLastSyncTime = prefsFile.lastModified(); - FileInputStream fis = new FileInputStream(prefsFile); - XmlSupport.importMap(fis, m); - fis.close(); + try (FileInputStream fis = new FileInputStream(prefsFile)) { + XmlSupport.importMap(fis, m); + } } catch(Exception e) { if (e instanceof InvalidPreferencesFormatException) { getLogger().warning("Invalid preferences format in " @@ -618,9 +618,9 @@ if (!dir.exists() && !dir.mkdirs()) throw new BackingStoreException(dir + " create failed."); - FileOutputStream fos = new FileOutputStream(tmpFile); - XmlSupport.exportMap(fos, prefsCache); - fos.close(); + try (FileOutputStream fos = new FileOutputStream(tmpFile)) { + XmlSupport.exportMap(fos, prefsCache); + } if (!tmpFile.renameTo(prefsFile)) throw new BackingStoreException("Can't rename " + tmpFile + " to " + prefsFile); --- old/test/java/lang/Character/CheckScript.java 2011-02-21 17:40:13.112438458 -0800 +++ new/test/java/lang/Character/CheckScript.java 2011-02-21 17:40:12.748525350 -0800 @@ -12,40 +12,43 @@ public class CheckScript { - public static void main(String[] args) throws Exception { - - BufferedReader sbfr = null; + static BufferedReader open(String[] args) throws FileNotFoundException { if (args.length == 0) { - sbfr = new BufferedReader(new FileReader(new File(System.getProperty("test.src", "."), "Scripts.txt"))); + return new BufferedReader(new FileReader(new File(System.getProperty("test.src", "."), "Scripts.txt"))); } else if (args.length == 1) { - sbfr = new BufferedReader(new FileReader(args[0])); + return new BufferedReader(new FileReader(args[0])); } else { System.out.println("java CharacterScript Scripts.txt"); throw new RuntimeException("Datafile name should be specified."); } + } + + public static void main(String[] args) throws Exception { + Matcher m = Pattern.compile("(\\p{XDigit}+)(?:\\.{2}(\\p{XDigit}+))?\\s+;\\s+(\\w+)\\s+#.*").matcher(""); String line = null; HashMap> scripts = new HashMap<>(); - while ((line = sbfr.readLine()) != null) { - if (line.length() <= 1 || line.charAt(0) == '#') { - continue; - } - m.reset(line); - if (m.matches()) { - int start = Integer.parseInt(m.group(1), 16); - int end = (m.group(2)==null)?start - :Integer.parseInt(m.group(2), 16); - String name = m.group(3).toLowerCase(Locale.ENGLISH); - ArrayList ranges = scripts.get(name); - if (ranges == null) { - ranges = new ArrayList(); - scripts.put(name, ranges); + try (BufferedReader sbfr = open(args)) { + while ((line = sbfr.readLine()) != null) { + if (line.length() <= 1 || line.charAt(0) == '#') { + continue; + } + m.reset(line); + if (m.matches()) { + int start = Integer.parseInt(m.group(1), 16); + int end = (m.group(2)==null)?start + :Integer.parseInt(m.group(2), 16); + String name = m.group(3).toLowerCase(Locale.ENGLISH); + ArrayList ranges = scripts.get(name); + if (ranges == null) { + ranges = new ArrayList(); + scripts.put(name, ranges); + } + ranges.add(start); + ranges.add(end); } - ranges.add(start); - ranges.add(end); } } - sbfr.close(); // check all defined ranges Integer[] ZEROSIZEARRAY = new Integer[0]; for (String name : scripts.keySet()) { --- old/test/java/lang/Runtime/shutdown/ShutdownHooks.java 2011-02-21 17:40:15.132524258 -0800 +++ new/test/java/lang/Runtime/shutdown/ShutdownHooks.java 2011-02-21 17:40:14.560560057 -0800 @@ -43,9 +43,9 @@ file = new File(dir, args[1]); // write to file System.out.println("writing to "+ file); - PrintWriter pw = new PrintWriter(file); - pw.println("Shutdown begins"); - pw.close(); + try (PrintWriter pw = new PrintWriter(file)) { + pw.println("Shutdown begins"); + } } public static class Cleaner extends Thread { @@ -56,10 +56,8 @@ // register the DeleteOnExitHook while the application // shutdown hook is running file.deleteOnExit(); - try { - PrintWriter pw = new PrintWriter(file); + try (PrintWriter pw = new PrintWriter(file)) { pw.println("file is being deleted"); - pw.close(); } catch (FileNotFoundException e) { throw new RuntimeException(e); } --- old/test/java/lang/instrument/BootClassPath/Setup.java 2011-02-21 17:40:16.708510196 -0800 +++ new/test/java/lang/instrument/BootClassPath/Setup.java 2011-02-21 17:40:16.372434706 -0800 @@ -62,31 +62,33 @@ * Create manifest file with Boot-Class-Path encoding the * sub-directory name. */ - FileOutputStream out = new FileOutputStream(manifestFile); - out.write("Manifest-Version: 1.0\n".getBytes("UTF-8")); + try (FileOutputStream out = new FileOutputStream(manifestFile)) { + out.write("Manifest-Version: 1.0\n".getBytes("UTF-8")); - byte[] premainBytes = ("Premain-Class: " + premainClass + "\n").getBytes("UTF-8"); - out.write(premainBytes); - - out.write( "Boot-Class-Path: ".getBytes("UTF-8") ); - - byte[] value = bootClassPath.getBytes("UTF-8"); - for (int i=0; i it = infoList.iterator(); it.hasNext(); ) { - Info info = it.next(); - if (!info.className.equals(currentClassName)) { - dataOut.writeInt(123456); // class name marker - currentClassName = info.className; - dataOut.writeUTF(currentClassName); + try (FileOutputStream fileOut = + new FileOutputStream(new File(outDir, filename)); + DataOutputStream dataOut = new DataOutputStream(fileOut)) + { + String currentClassName = null; + + dataOut.writeInt(infoList.size()); + for (Iterator it = infoList.iterator(); it.hasNext(); ) { + Info info = it.next(); + if (!info.className.equals(currentClassName)) { + dataOut.writeInt(123456); // class name marker + currentClassName = info.className; + dataOut.writeUTF(currentClassName); + } + dataOut.writeInt(info.location); + dataOut.writeUTF(info.methodName); } - dataOut.writeInt(info.location); - dataOut.writeUTF(info.methodName); } - dataOut.close(); } public byte[] bytecodes(String className, String methodName, int location) { --- old/test/java/math/BigInteger/BigIntegerTest.java 2011-02-21 17:40:18.840949412 -0800 +++ new/test/java/math/BigInteger/BigIntegerTest.java 2011-02-21 17:40:18.556430760 -0800 @@ -645,26 +645,17 @@ BigInteger b2 = null; File f = new File("serialtest"); - FileOutputStream fos = new FileOutputStream(f); - try { - ObjectOutputStream oos = new ObjectOutputStream(fos); - try { + + try (FileOutputStream fos = new FileOutputStream(f)) { + try (ObjectOutputStream oos = new ObjectOutputStream(fos)) { oos.writeObject(b1); oos.flush(); - } finally { - oos.close(); } - FileInputStream fis = new FileInputStream(f); - try { - ObjectInputStream ois = new ObjectInputStream(fis); - try { - b2 = (BigInteger)ois.readObject(); - } finally { - ois.close(); - } - } finally { - fis.close(); + try (FileInputStream fis = new FileInputStream(f); + ObjectInputStream ois = new ObjectInputStream(fis)) + { + b2 = (BigInteger)ois.readObject(); } if (!b1.equals(b2) || @@ -673,8 +664,6 @@ System.err.println("Serialized failed for hex " + b1.toString(16)); } - } finally { - fos.close(); } f.delete(); } @@ -683,29 +672,17 @@ BigInteger b1 = fetchNumber(rnd.nextInt(100)); BigInteger b2 = null; File f = new File("serialtest"); - FileOutputStream fos = new FileOutputStream(f); - try { - ObjectOutputStream oos = new ObjectOutputStream(fos); - try { + try (FileOutputStream fos = new FileOutputStream(f)) { + try (ObjectOutputStream oos = new ObjectOutputStream(fos)) { oos.writeObject(b1); oos.flush(); - } finally { - oos.close(); } - FileInputStream fis = new FileInputStream(f); - try { - ObjectInputStream ois = new ObjectInputStream(fis); - try { - b2 = (BigInteger)ois.readObject(); - } finally { - ois.close(); - } - } finally { - fis.close(); + try (FileInputStream fis = new FileInputStream(f); + ObjectInputStream ois = new ObjectInputStream(fis)) + { + b2 = (BigInteger)ois.readObject(); } - } finally { - fos.close(); } if (!b1.equals(b2) || --- old/test/java/util/Currency/ValidateISO4217.java 2011-02-21 17:40:19.912646529 -0800 +++ new/test/java/util/Currency/ValidateISO4217.java 2011-02-21 17:40:19.616436453 -0800 @@ -111,57 +111,58 @@ static void test1() throws Exception { - FileReader fr = new FileReader(new File(System.getProperty("test.src", "."), datafile)); - BufferedReader in = new BufferedReader(fr); - String line; - SimpleDateFormat format = null; - - while ((line = in.readLine()) != null) { - if (line.length() == 0 || line.charAt(0) == '#') { - continue; - } - - StringTokenizer tokens = new StringTokenizer(line, "\t"); - String country = tokens.nextToken(); - if (country.length() != 2) { - continue; - } - - String currency; - String numeric; - String minorUnit; - int tokensCount = tokens.countTokens(); - if (tokensCount < 3) { - currency = ""; - numeric = "0"; - minorUnit = "0"; - } else { - currency = tokens.nextToken(); - numeric = tokens.nextToken(); - minorUnit = tokens.nextToken(); - testCurrencies.add(Currency.getInstance(currency)); - - // check for the cutover - if (tokensCount > 3) { - if (format == null) { - format = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss", Locale.US); - format.setTimeZone(TimeZone.getTimeZone("GMT")); - format.setLenient(false); - } - if (format.parse(tokens.nextToken()).getTime() < - System.currentTimeMillis()) { - currency = tokens.nextToken(); - numeric = tokens.nextToken(); - minorUnit = tokens.nextToken(); - testCurrencies.add(Currency.getInstance(currency)); + try (FileReader fr = new FileReader(new File(System.getProperty("test.src", "."), datafile)); + BufferedReader in = new BufferedReader(fr)) + { + String line; + SimpleDateFormat format = null; + + while ((line = in.readLine()) != null) { + if (line.length() == 0 || line.charAt(0) == '#') { + continue; + } + + StringTokenizer tokens = new StringTokenizer(line, "\t"); + String country = tokens.nextToken(); + if (country.length() != 2) { + continue; + } + + String currency; + String numeric; + String minorUnit; + int tokensCount = tokens.countTokens(); + if (tokensCount < 3) { + currency = ""; + numeric = "0"; + minorUnit = "0"; + } else { + currency = tokens.nextToken(); + numeric = tokens.nextToken(); + minorUnit = tokens.nextToken(); + testCurrencies.add(Currency.getInstance(currency)); + + // check for the cutover + if (tokensCount > 3) { + if (format == null) { + format = new SimpleDateFormat("yyyy-MM-dd-HH-mm-ss", Locale.US); + format.setTimeZone(TimeZone.getTimeZone("GMT")); + format.setLenient(false); + } + if (format.parse(tokens.nextToken()).getTime() < + System.currentTimeMillis()) { + currency = tokens.nextToken(); + numeric = tokens.nextToken(); + minorUnit = tokens.nextToken(); + testCurrencies.add(Currency.getInstance(currency)); + } } } + int index = toIndex(country); + testCountryCurrency(country, currency, Integer.parseInt(numeric), + Integer.parseInt(minorUnit), index); } - int index = toIndex(country); - testCountryCurrency(country, currency, Integer.parseInt(numeric), - Integer.parseInt(minorUnit), index); } - in.close(); for (int i = 0; i < additionalCodes.length; i++) { int index = toIndex(additionalCodes[i][0]); --- old/test/java/util/Formatter/FailingConstructors.java 2011-02-21 17:40:20.968882737 -0800 +++ new/test/java/util/Formatter/FailingConstructors.java 2011-02-21 17:40:20.672431857 -0800 @@ -47,9 +47,9 @@ /* create the file and write its contents */ File file = File.createTempFile(fileName, null); file.deleteOnExit(); - FileOutputStream fos = new FileOutputStream(file); - fos.write(FILE_CONTENTS.getBytes()); - fos.close(); + try (FileOutputStream fos = new FileOutputStream(file)) { + fos.write(FILE_CONTENTS.getBytes()); + } test(true, file); file.delete(); --- old/test/java/util/Locale/LocaleEnhanceTest.java 2011-02-21 17:40:22.044520583 -0800 +++ new/test/java/util/Locale/LocaleEnhanceTest.java 2011-02-21 17:40:21.740640547 -0800 @@ -1187,14 +1187,12 @@ locale = new Locale(lang, country, variant); } - // desrialize - try { - FileInputStream fis = new FileInputStream(testfile); - ObjectInputStream ois = new ObjectInputStream(fis); - + // deserialize + try (FileInputStream fis = new FileInputStream(testfile); + ObjectInputStream ois = new ObjectInputStream(fis)) + { Object o = ois.readObject(); assertEquals("Deserialize Java 6 Locale " + locale, o, locale); - ois.close(); } catch (Exception e) { errln("Exception while reading " + testfile.getAbsolutePath() + " - " + e.getMessage()); } --- old/test/java/util/ResourceBundle/Bug6204853.java 2011-02-21 17:40:23.160913909 -0800 +++ new/test/java/util/ResourceBundle/Bug6204853.java 2011-02-21 17:40:22.848447852 -0800 @@ -39,24 +39,19 @@ public final class Bug6204853 { public Bug6204853() { - try { - String srcDir = System.getProperty("test.src", "."); - FileInputStream fis8859_1 = - new FileInputStream(new File(srcDir, "Bug6204853.properties")); - FileInputStream fisUtf8 = - new FileInputStream(new File(srcDir, "Bug6204853_Utf8.properties")); - InputStreamReader isrUtf8 = new InputStreamReader(fisUtf8, "UTF-8"); - + String srcDir = System.getProperty("test.src", "."); + try (FileInputStream fis8859_1 = + new FileInputStream(new File(srcDir, "Bug6204853.properties")); + FileInputStream fisUtf8 = + new FileInputStream(new File(srcDir, "Bug6204853_Utf8.properties")); + InputStreamReader isrUtf8 = new InputStreamReader(fisUtf8, "UTF-8")) + { PropertyResourceBundle bundleUtf8 = new PropertyResourceBundle(isrUtf8); PropertyResourceBundle bundle = new PropertyResourceBundle(fis8859_1); String[] arrayUtf8 = createKeyValueArray(bundleUtf8); String[] array = createKeyValueArray(bundle); - isrUtf8.close(); - fisUtf8.close(); - fis8859_1.close(); - if (!Arrays.equals(arrayUtf8, array)) { throw new RuntimeException("PropertyResourceBundle constructed from a UTF-8 encoded property file is not equal to the one constructed from ISO-8859-1 encoded property file."); } --- old/test/java/util/Scanner/FailingConstructors.java 2011-02-21 17:40:24.248729567 -0800 +++ new/test/java/util/Scanner/FailingConstructors.java 2011-02-21 17:40:23.940701497 -0800 @@ -46,9 +46,9 @@ /* create the file and write its contents */ File file = File.createTempFile(fileName, null); file.deleteOnExit(); - FileOutputStream fos = new FileOutputStream(file); - fos.write(FILE_CONTENTS.getBytes()); - fos.close(); + try (FileOutputStream fos = new FileOutputStream(file)) { + fos.write(FILE_CONTENTS.getBytes()); + } test(true, file); file.delete();