From 3ef93b67583dbdbaedd542488ef99f1f0a499f1e Mon Sep 17 00:00:00 2001 From: Harald Kuhr Date: Mon, 16 Mar 2015 12:12:06 +0100 Subject: [PATCH] TMI-113: And fixed tests for JPEGSegmentInputStream to pass, as we now filter out App14/Adobe. --- .../plugins/jpeg/JPEGSegmentImageInputStream.java | 3 --- .../jpeg/JPEGSegmentImageInputStreamTest.java | 12 ++++-------- 2 files changed, 4 insertions(+), 11 deletions(-) diff --git a/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGSegmentImageInputStream.java b/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGSegmentImageInputStream.java index ff58c0e9..cdc8db23 100644 --- a/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGSegmentImageInputStream.java +++ b/imageio/imageio-jpeg/src/main/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGSegmentImageInputStream.java @@ -136,9 +136,6 @@ final class JPEGSegmentImageInputStream extends ImageInputStreamImpl { // TODO: For progressive, there will be more than one SOS... length = Long.MAX_VALUE - realPosition; } -// else if (marker == JPEG.APP14 && isAppSegmentWithId("Adobe", stream)) { -// length = 16; -// } else { // Length including length field itself length = stream.readUnsignedShort() + 2; diff --git a/imageio/imageio-jpeg/src/test/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGSegmentImageInputStreamTest.java b/imageio/imageio-jpeg/src/test/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGSegmentImageInputStreamTest.java index e38bc75d..4154b77b 100644 --- a/imageio/imageio-jpeg/src/test/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGSegmentImageInputStreamTest.java +++ b/imageio/imageio-jpeg/src/test/java/com/twelvemonkeys/imageio/plugins/jpeg/JPEGSegmentImageInputStreamTest.java @@ -111,15 +111,12 @@ public class JPEGSegmentImageInputStreamTest { ImageInputStream stream = new JPEGSegmentImageInputStream(ImageIO.createImageInputStream(getClassLoaderResource("/jpeg/no-image-types-rgb-us-web-coated-v2-ms-photogallery-exif.jpg"))); List appSegments = JPEGSegmentUtil.readSegments(stream, JPEGSegmentUtil.APP_SEGMENTS); - assertEquals(2, appSegments.size()); + assertEquals(1, appSegments.size()); assertEquals(JPEG.APP1, appSegments.get(0).marker()); assertEquals("Exif", appSegments.get(0).identifier()); - assertEquals(JPEG.APP14, appSegments.get(1).marker()); - assertEquals("Adobe", appSegments.get(1).identifier()); - - // And thus, no JFIF, no XMP, no ICC_PROFILE or other segments + // And thus, no JFIF, no Adobe, no XMP, no ICC_PROFILE or other segments } @Test @@ -157,13 +154,12 @@ public class JPEGSegmentImageInputStreamTest { @Test public void testEOFExceptionInSegmentParsingShouldNotCreateBadState() throws IOException { ImageInputStream iis = new JPEGSegmentImageInputStream(ImageIO.createImageInputStream(getClassLoaderResource("/broken-jpeg/broken-no-sof-ascii-transfer-mode.jpg"))); - int fileLength = 2021; byte[] buffer = new byte[4096]; // NOTE: This is a simulation of how the native parts of com.sun...JPEGImageReader would read the image... - assertEquals(fileLength, iis.read(buffer, 0, buffer.length)); - assertEquals(fileLength, iis.getStreamPosition()); + assertEquals(2, iis.read(buffer, 0, buffer.length)); + assertEquals(2, iis.getStreamPosition()); iis.seek(0x2012); // bad segment length, should have been 0x0012, not 0x2012 assertEquals(0x2012, iis.getStreamPosition());