src/share/classes/com/sun/java/util/jar/pack/PackageReader.java

Print this page
rev 3516 : 7021582: convert jar/zip code and tests to use try-with-resources
Reviewed-by: XXX

@@ -538,13 +538,13 @@
             }
 
             Index index = initCPIndex(tag, cpMap);
 
             if (optDumpBands) {
-                PrintStream ps = new PrintStream(getDumpStream(index, ".idx"));
+                try (PrintStream ps = new PrintStream(getDumpStream(index, ".idx"))) {
                 printArrayTo(ps, index.cpMap, 0, index.cpMap.length);
-                ps.close();
+                }
             }
         }
 
         cp_bands.doneDisbursing();
 

@@ -826,12 +826,13 @@
         attr_definition_name.expectLength(numAttrDefs);
         attr_definition_layout.expectLength(numAttrDefs);
         attr_definition_headers.readFrom(in);
         attr_definition_name.readFrom(in);
         attr_definition_layout.readFrom(in);
-        PrintStream dump = !optDumpBands ? null
-            : new PrintStream(getDumpStream(attr_definition_headers, ".def"));
+        try (PrintStream dump = !optDumpBands ? null
+                 : new PrintStream(getDumpStream(attr_definition_headers, ".def")))
+        {
         for (int i = 0; i < numAttrDefs; i++) {
             int       header = attr_definition_headers.getByte();
             Utf8Entry name   = (Utf8Entry) attr_definition_name.getRef();
             Utf8Entry layout = (Utf8Entry) attr_definition_layout.getRef();
             int       ctype  = (header &  ADH_CONTEXT_MASK);

@@ -845,11 +846,11 @@
                 throw new IOException("Bad attribute layout in version 150 archive: "+def.layout());
             }
             this.setAttributeLayoutIndex(def, index);
             if (dump != null)  dump.println(index+" "+def);
         }
-        if (dump != null)  dump.close();
+        } // TODO TWR: this relies on new null treatment for TWR's close()
         attr_definition_headers.doneDisbursing();
         attr_definition_name.doneDisbursing();
         attr_definition_layout.doneDisbursing();
         // Attribute layouts define bands, one per layout element.
         // Create them now, all at once.