From 5ca0762179930abaec3258ed8ea130ad5733e9aa Mon Sep 17 00:00:00 2001 From: reger Date: Sat, 24 Jan 2015 23:17:07 +0100 Subject: [PATCH] fix: eom on parsing ico file by genericImageParser trace: java.lang.OutOfMemoryError: Java heap space at java.awt.image.DataBufferInt.(DataBufferInt.java:75) at java.awt.image.Raster.createPackedRaster(Raster.java:467) at java.awt.image.DirectColorModel.createCompatibleWritableRaster(DirectColorModel.java:1032) at java.awt.image.BufferedImage.(BufferedImage.java:331) at net.yacy.document.parser.images.bmpParser$IMAGEMAP.(bmpParser.java:149) at net.yacy.document.parser.images.bmpParser.parse(bmpParser.java:69) at net.yacy.document.parser.images.genericImageParser.parse(genericImageParser.java:116) --- .../yacy/document/parser/images/genericImageParser.java | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/source/net/yacy/document/parser/images/genericImageParser.java b/source/net/yacy/document/parser/images/genericImageParser.java index f56da0cc7..cf5ec066b 100644 --- a/source/net/yacy/document/parser/images/genericImageParser.java +++ b/source/net/yacy/document/parser/images/genericImageParser.java @@ -113,8 +113,12 @@ public class genericImageParser extends AbstractParser implements Parser { ConcurrentLog.logException(e); throw new Parser.Failure(e.getMessage(), location); } - final IMAGEMAP imap = bmpParser.parse(b); - ii = parseJavaImage(location, imap.getImage()); + if (bmpParser.isBMP(b)) { + final IMAGEMAP imap = bmpParser.parse(b); + ii = parseJavaImage(location, imap.getImage()); + } else { + throw new Parser.Failure("Not supported by bmpParser", location); + } } else if (mimeType.equals("image/jpeg") || ext.equals("jpg") || ext.equals("jpeg") || ext.equals("jpe")) { // use the exif parser from // http://www.drewnoakes.com/drewnoakes.com/code/exif/