You are viewing a plain text version of this content. The canonical link for it is here.
Posted to batik-commits@xmlgraphics.apache.org by ca...@apache.org on 2007/09/26 06:45:57 UTC
svn commit: r579471 -
/xmlgraphics/batik/trunk/sources-1.4/org/apache/batik/ext/awt/image/codec/imageio/ImageIOImageWriter.java
Author: cam
Date: Tue Sep 25 21:45:55 2007
New Revision: 579471
URL: http://svn.apache.org/viewvc?rev=579471&view=rev
Log:
Ensure ImageIOWriter and ImageOutputStreams are closed after use.
Fixes bug 42169.
Modified:
xmlgraphics/batik/trunk/sources-1.4/org/apache/batik/ext/awt/image/codec/imageio/ImageIOImageWriter.java
Modified: xmlgraphics/batik/trunk/sources-1.4/org/apache/batik/ext/awt/image/codec/imageio/ImageIOImageWriter.java
URL: http://svn.apache.org/viewvc/xmlgraphics/batik/trunk/sources-1.4/org/apache/batik/ext/awt/image/codec/imageio/ImageIOImageWriter.java?rev=579471&r1=579470&r2=579471&view=diff
==============================================================================
--- xmlgraphics/batik/trunk/sources-1.4/org/apache/batik/ext/awt/image/codec/imageio/ImageIOImageWriter.java (original)
+++ xmlgraphics/batik/trunk/sources-1.4/org/apache/batik/ext/awt/image/codec/imageio/ImageIOImageWriter.java Tue Sep 25 21:45:55 2007
@@ -71,38 +71,52 @@
throws IOException {
Iterator iter;
iter = ImageIO.getImageWritersByMIMEType(getMIMEType());
- javax.imageio.ImageWriter iiowriter = (javax.imageio.ImageWriter)iter.next();
- if (iiowriter != null) {
- iiowriter.addIIOWriteWarningListener(this);
-
- ImageOutputStream imgout = ImageIO.createImageOutputStream(out);
-
- ImageWriteParam iwParam = getDefaultWriteParam(iiowriter, image, params);
-
- ImageTypeSpecifier type;
- if (iwParam.getDestinationType() != null) {
- type = iwParam.getDestinationType();
+ javax.imageio.ImageWriter iiowriter = null;
+ try {
+ iiowriter = (javax.imageio.ImageWriter)iter.next();
+ if (iiowriter != null) {
+ iiowriter.addIIOWriteWarningListener(this);
+
+ ImageOutputStream imgout = null;
+ try {
+ imgout = ImageIO.createImageOutputStream(out);
+ ImageWriteParam iwParam = getDefaultWriteParam(iiowriter, image, params);
+
+ ImageTypeSpecifier type;
+ if (iwParam.getDestinationType() != null) {
+ type = iwParam.getDestinationType();
+ } else {
+ type = ImageTypeSpecifier.createFromRenderedImage(image);
+ }
+
+ //Handle metadata
+ IIOMetadata meta = iiowriter.getDefaultImageMetadata(
+ type, iwParam);
+ //meta might be null for some JAI codecs as they don't support metadata
+ if (params != null && meta != null) {
+ meta = updateMetadata(meta, params);
+ }
+
+ //Write image
+ iiowriter.setOutput(imgout);
+ IIOImage iioimg = new IIOImage(image, null, meta);
+ iiowriter.write(null, iioimg, iwParam);
+ } finally {
+ if (imgout != null) {
+ System.err.println("closing");
+ imgout.close();
+ }
+ }
} else {
- type = ImageTypeSpecifier.createFromRenderedImage(image);
+ throw new UnsupportedOperationException("No ImageIO codec for writing "
+ + getMIMEType() + " is available!");
}
-
- //Handle metadata
- IIOMetadata meta = iiowriter.getDefaultImageMetadata(
- type, iwParam);
- //meta might be null for some JAI codecs as they don't support metadata
- if (params != null && meta != null) {
- meta = updateMetadata(meta, params);
+ } finally {
+ if (iiowriter != null) {
+ System.err.println("disposing");
+ iiowriter.dispose();
}
-
- //Write image
- iiowriter.setOutput(imgout);
- IIOImage iioimg = new IIOImage(image, null, meta);
- iiowriter.write(null, iioimg, iwParam);
- } else {
- throw new UnsupportedOperationException("No ImageIO codec for writing "
- + getMIMEType() + " is available!");
}
-
}
/**