mirror of
https://github.com/haraldk/TwelveMonkeys.git
synced 2026-03-20 00:00:03 -04:00
TMI-107: JPEGSegmentImageInputStream now recovers from EOFException while parsing segments.
This commit is contained in:
@@ -417,19 +417,52 @@ public class JPEGImageReaderTest extends ImageReaderAbstractTestCase<JPEGImageRe
|
||||
@Ignore("Known issue in com.sun...JPEGMetadata")
|
||||
@Test
|
||||
public void testExifStandardMetadataColorSpaceTypeYCbCr() {
|
||||
// These reports RGB (by Exif non-presence?), while the data is really YCbCr
|
||||
// These reports RGB in standard metadata, while the data is really YCbCr
|
||||
fail("/jpeg/exif-jpeg-thumbnail-sony-dsc-p150-inverted-colors.jpg");
|
||||
fail("/jpeg/exif-pspro-13-inverted-colors.jpg");
|
||||
fail("/jpeg/no-jfif-ycbcr.jpg");
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBrokenReadRasterAfterGetMetadataException() throws IOException {
|
||||
// See issue 107, from PDFBox team
|
||||
JPEGImageReader reader = createReader();
|
||||
|
||||
try {
|
||||
for (TestData broken : getBrokenTestData()) {
|
||||
reader.setInput(broken.getInputStream());
|
||||
|
||||
try {
|
||||
reader.getImageMetadata(0);
|
||||
}
|
||||
catch (IOException ignore) {
|
||||
// Expected IOException here, due to broken file
|
||||
// ignore.printStackTrace();
|
||||
}
|
||||
|
||||
try {
|
||||
reader.readRaster(0, null);
|
||||
}
|
||||
catch (IOException expected) {
|
||||
// Should not throw anything other than IOException here
|
||||
if (!(expected instanceof EOFException)) {
|
||||
assertNotNull(expected.getMessage());
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
finally {
|
||||
reader.dispose();
|
||||
}
|
||||
}
|
||||
|
||||
@Test
|
||||
public void testBrokenRead() throws IOException {
|
||||
JPEGImageReader reader = createReader();
|
||||
|
||||
try {
|
||||
for (TestData broken : getBrokenTestData()) {
|
||||
reader.setInput(ImageIO.createImageInputStream(broken.getInput()));
|
||||
reader.setInput(broken.getInputStream());
|
||||
|
||||
try {
|
||||
reader.read(0);
|
||||
@@ -455,7 +488,7 @@ public class JPEGImageReaderTest extends ImageReaderAbstractTestCase<JPEGImageRe
|
||||
|
||||
try {
|
||||
for (TestData broken : getBrokenTestData()) {
|
||||
reader.setInput(ImageIO.createImageInputStream(broken.getInput()));
|
||||
reader.setInput(broken.getInputStream());
|
||||
|
||||
Dimension exptectedSize = broken.getDimension(0);
|
||||
|
||||
@@ -484,7 +517,7 @@ public class JPEGImageReaderTest extends ImageReaderAbstractTestCase<JPEGImageRe
|
||||
|
||||
try {
|
||||
for (TestData broken : getBrokenTestData()) {
|
||||
reader.setInput(ImageIO.createImageInputStream(broken.getInput()));
|
||||
reader.setInput(broken.getInputStream());
|
||||
|
||||
try {
|
||||
reader.getImageMetadata(0);
|
||||
|
||||
@@ -56,6 +56,7 @@ import static org.junit.Assert.*;
|
||||
public class JPEGSegmentImageInputStreamTest {
|
||||
static {
|
||||
IIORegistry.getDefaultInstance().registerServiceProvider(new URLImageInputStreamSpi());
|
||||
ImageIO.setUseCache(false);
|
||||
}
|
||||
|
||||
protected URL getClassLoaderResource(final String pName) {
|
||||
|
||||
Reference in New Issue
Block a user