Sure, I can share it privately. But seems that in PDFBox 2.0.15 it's already fixed as, when I run tika-app (1.20) it's caused same issue, but when I ran extractText in PDFBox 2.0.15 I got next : May 15, 2019 4:59:11 PM org.apache.pdfbox.filter.FlateFilter decompress WARNING: FlateFilter: premature end of stream due to a DataFormatException May 15, 2019 4:59:11 PM org.apache.pdfbox.filter.FlateFilter decode SEVERE: FlateFilter: stop reading corrupt stream due to a DataFormatException Exception in thread "main" java.io.IOException: java.util.zip.DataFormatException: invalid literal/lengths set at org.apache.pdfbox.filter.FlateFilter.decode(FlateFilter.java:58) at org.apache.pdfbox.filter.Filter.decode(Filter.java:87) at org.apache.pdfbox.cos.COSInputStream.create(COSInputStream.java:77) at org.apache.pdfbox.cos.COSStream.createInputStream(COSStream.java:175) at org.apache.pdfbox.cos.COSStream.createInputStream(COSStream.java:163) at org.apache.pdfbox.pdmodel.PDPage.getContents(PDPage.java:170) at org.apache.pdfbox.pdfparser.PDFStreamParser.<init>(PDFStreamParser.java:91) at org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:495) at org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:479) at org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:152) at org.apache.pdfbox.text.LegacyPDFStreamEngine.processPage(LegacyPDFStreamEngine.java:139) at org.apache.pdfbox.text.PDFTextStripper.processPage(PDFTextStripper.java:391) at org.apache.pdfbox.text.PDFTextStripper.processPages(PDFTextStripper.java:319) at org.apache.pdfbox.text.PDFTextStripper.writeText(PDFTextStripper.java:266) at org.apache.pdfbox.tools.ExtractText.extractPages(ExtractText.java:375) at org.apache.pdfbox.tools.ExtractText.startExtraction(ExtractText.java:272) at org.apache.pdfbox.tools.ExtractText.main(ExtractText.java:96) at org.apache.pdfbox.tools.PDFBox.main(PDFBox.java:60) Caused by: java.util.zip.DataFormatException: invalid literal/lengths set at java.util.zip.Inflater.inflateBytes(Native Method) at java.util.zip.Inflater.inflate(Inflater.java:259) at java.util.zip.Inflater.inflate(Inflater.java:280) at org.apache.pdfbox.filter.FlateFilter.decompress(FlateFilter.java:83) at org.apache.pdfbox.filter.FlateFilter.decode(FlateFilter.java:50) ... 17 more
On Wed, May 15, 2019 at 4:54 PM Tim Allison <talli...@apache.org> wrote: > Sounds like it might be a bug. > > PDFBox colleagues, any recs? > > Slava, if you’re able to share the file even if only privately, that’ll > help. > > On Wed, May 15, 2019 at 9:49 AM Slava G <slav...@gmail.com> wrote: > > > I have small pdf file (142kb) while I'm trying to parse it with TIKA my > > entire app is crashing on OOM with heap dump on 36gb (nothing else in the > > code, hust parsing this PDF). > > With possible error : FlateFilter: stop reading corrupt stream due to a > > DataFormatException > > And stack trace (at the moment of OOM): > > "main" #1 prio=5 os_prio=0 tid=0x00007f6460009000 nid=0x4876 waiting for > > monitor entry [0x00007f646680d000] > > java.lang.Thread.State: BLOCKED (on object monitor) > > at java.util.HashMap.newNode(HashMap.java:1734) > > at java.util.HashMap.putVal(HashMap.java:630) > > at java.util.HashMap.put(HashMap.java:611) > > at org.apache.fontbox.cmap.CMap.addCharMapping(CMap.java:191) > > at > > org.apache.fontbox.cmap.CMapParser.parseBeginbfrange(CMapParser.java:398) > > at org.apache.fontbox.cmap.CMapParser.parse(CMapParser.java:136) > > at > > org.apache.pdfbox.pdmodel.font.CMapManager.parseCMap(CMapManager.java:75) > > at > org.apache.pdfbox.pdmodel.font.PDFont.readCMap(PDFont.java:197) > > at org.apache.pdfbox.pdmodel.font.PDFont.<init>(PDFont.java:137) > > at > > org.apache.pdfbox.pdmodel.font.PDType0Font.<init>(PDType0Font.java:176) > > at > > > org.apache.pdfbox.pdmodel.font.PDFontFactory.createFont(PDFontFactory.java:83) > > at > > org.apache.pdfbox.pdmodel.PDResources.getFont(PDResources.java:146) > > at > > > org.apache.pdfbox.contentstream.operator.text.SetFontAndSize.process(SetFontAndSize.java:60) > > at > > > org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:848) > > at > > > org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:503) > > at > > > org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:477) > > at > > > org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:150) > > at > > > org.apache.pdfbox.text.LegacyPDFStreamEngine.processPage(LegacyPDFStreamEngine.java:139) > > at > > > org.apache.pdfbox.text.PDFTextStripper.processPage(PDFTextStripper.java:391) > > at > > org.apache.tika.parser.pdf.PDF2XHTML.processPage(PDF2XHTML.java:147) > > at > > > org.apache.pdfbox.text.PDFTextStripper.processPages(PDFTextStripper.java:319) > > at > > > org.apache.pdfbox.text.PDFTextStripper.writeText(PDFTextStripper.java:266) > > at > org.apache.tika.parser.pdf.PDF2XHTML.process(PDF2XHTML.java:117) > > at org.apache.tika.parser.pdf.PDFParser.parse(PDFParser.java:172) > > > > > > Please advise how can I detect that this can happen and skip such file > > from the parsing. Or this is a bug ? > > > > Thanks > > >