From 9c3cff04e49654bc3bcbcbc74ef8b4d5eb927fbf Mon Sep 17 00:00:00 2001 From: Tyler Date: Wed, 1 Apr 2015 14:31:12 -0700 Subject: [PATCH] Encountered issue where an SVGImageReader instance that was used to read multiple SVG images was only returning the first image. This commit includes a test case and a proposed fix. --- .../imageio/plugins/svg/SVGImageReader.java | 3 ++- .../plugins/svg/SVGImageReaderTestCase.java | 22 +++++++++++++++++++ .../src/test/resources/svg/blue-square.svg | 7 ++++++ .../src/test/resources/svg/red-square.svg | 7 ++++++ 4 files changed, 38 insertions(+), 1 deletion(-) create mode 100644 imageio/imageio-batik/src/test/resources/svg/blue-square.svg create mode 100644 imageio/imageio-batik/src/test/resources/svg/red-square.svg diff --git a/imageio/imageio-batik/src/main/java/com/twelvemonkeys/imageio/plugins/svg/SVGImageReader.java b/imageio/imageio-batik/src/main/java/com/twelvemonkeys/imageio/plugins/svg/SVGImageReader.java index 9071994b..90ddd370 100755 --- a/imageio/imageio-batik/src/main/java/com/twelvemonkeys/imageio/plugins/svg/SVGImageReader.java +++ b/imageio/imageio-batik/src/main/java/com/twelvemonkeys/imageio/plugins/svg/SVGImageReader.java @@ -74,7 +74,7 @@ import java.util.Map; * @see batik-dev */ public class SVGImageReader extends ImageReaderBase { - private Rasterizer rasterizer = new Rasterizer(); + private Rasterizer rasterizer = null; /** * Creates an {@code SVGImageReader}. @@ -100,6 +100,7 @@ public class SVGImageReader extends ImageReaderBase { if (imageInput != null) { TranscoderInput input = new TranscoderInput(IIOUtil.createStreamAdapter(imageInput)); + rasterizer = new Rasterizer(); rasterizer.setInput(input); } } diff --git a/imageio/imageio-batik/src/test/java/com/twelvemonkeys/imageio/plugins/svg/SVGImageReaderTestCase.java b/imageio/imageio-batik/src/test/java/com/twelvemonkeys/imageio/plugins/svg/SVGImageReaderTestCase.java index 8324c311..e6738a11 100755 --- a/imageio/imageio-batik/src/test/java/com/twelvemonkeys/imageio/plugins/svg/SVGImageReaderTestCase.java +++ b/imageio/imageio-batik/src/test/java/com/twelvemonkeys/imageio/plugins/svg/SVGImageReaderTestCase.java @@ -31,9 +31,13 @@ package com.twelvemonkeys.imageio.plugins.svg; import com.twelvemonkeys.imageio.util.ImageReaderAbstractTestCase; import org.junit.Ignore; import org.junit.Test; +import static org.junit.Assert.assertEquals; +import javax.imageio.ImageReadParam; +import javax.imageio.ImageReader; import javax.imageio.spi.ImageReaderSpi; import java.awt.*; +import java.awt.image.BufferedImage; import java.awt.image.ImagingOpException; import java.io.IOException; import java.util.Arrays; @@ -110,4 +114,22 @@ public class SVGImageReaderTestCase extends ImageReaderAbstractTestCase + + + + + \ No newline at end of file diff --git a/imageio/imageio-batik/src/test/resources/svg/red-square.svg b/imageio/imageio-batik/src/test/resources/svg/red-square.svg new file mode 100644 index 00000000..2ae064db --- /dev/null +++ b/imageio/imageio-batik/src/test/resources/svg/red-square.svg @@ -0,0 +1,7 @@ + + + + + +