--- old/test/javax/imageio/plugins/png/ITXtTest.java 2016-07-07 16:54:28.812851897 +0530 +++ new/test/javax/imageio/plugins/png/ITXtTest.java 2016-07-07 16:54:28.436851897 +0530 @@ -45,11 +45,12 @@ import javax.imageio.metadata.IIOMetadataNode; import javax.imageio.stream.ImageOutputStream; import javax.imageio.stream.ImageInputStream; +import java.io.IOException; import org.w3c.dom.Node; public class ITXtTest { - static public void main(String args[]) { + static public void main(String args[]) throws IOException { ITXtTest t_en = new ITXtTest(); t_en.description = "xml - en"; t_en.keyword = "XML:com.adobe.xmp"; @@ -151,7 +152,7 @@ - private static void doTest(ITXtTest src) { + private static void doTest(ITXtTest src) throws IOException { System.out.println("Test: " + src.description); @@ -161,16 +162,19 @@ ITXtTest dst = readFrom(file); if (dst == null || !dst.equals(src)) { + file.delete(); throw new RuntimeException("Test failed."); + } else { + file.delete(); + System.out.println("Test passed."); } - - System.out.println("Test passed."); } - private static void writeTo(File f, ITXtTest t) { + private static void writeTo(File f, ITXtTest t) throws IOException { BufferedImage src = createBufferedImage(); + ImageOutputStream imageOutputStream = null; try { - ImageOutputStream imageOutputStream = + imageOutputStream = ImageIO.createImageOutputStream(f); ImageTypeSpecifier imageTypeSpecifier = @@ -194,13 +198,18 @@ imageOutputStream.close(); System.out.println("Writing done."); } catch (Throwable e) { + if (imageOutputStream != null) { + imageOutputStream.close(); + } + f.delete(); throw new RuntimeException("Writing test failed.", e); } } - private static ITXtTest readFrom(File f) { + private static ITXtTest readFrom(File f) throws IOException { + ImageInputStream iis = null; try { - ImageInputStream iis = ImageIO.createImageInputStream(f); + iis = ImageIO.createImageInputStream(f); ImageReader r = ImageIO.getImageReaders(iis).next(); r.setInput(iis); @@ -217,8 +226,13 @@ throw new RuntimeException("No iTXt node!"); } ITXtTest t = ITXtTest.getFromNode((IIOMetadataNode)n); + iis.close(); return t; } catch (Throwable e) { + if (iis != null) { + iis.close(); + } + f.delete(); throw new RuntimeException("Reading test failed.", e); } }