PdfBox-Android icon indicating copy to clipboard operation
PdfBox-Android copied to clipboard

Reading the stream with harmony crashes

Open jmlord opened this issue 8 years ago • 0 comments

Hi,

I'm on master branch at commit "2e1fe1ee7ab Add CCITTFactory".

The harmony library crashed when opening the attached document with the PdfTextStripper: GouvQC_Texte_78p.pdf

For now, I've just reverted 8e91a5c0ac to still use OpenJDK, and commented out a few things in LosslessFactory. Works fine 'till now. Unfortunately, I was not able to find the real fix, but thought it might help you to get a more stable release if I shared it.

Here's the logcat:

java.lang.IndexOutOfBoundsException: Invalid index 3, size is 3
    at java.util.ArrayList.throwIndexOutOfBoundsException(ArrayList.java:255)
    at java.util.ArrayList.get(ArrayList.java:308)
    at com.tom_roush.harmony.javax.imageio.stream.RandomAccessMemoryCache.getData(RandomAccessMemoryCache.java:96)
    at com.tom_roush.harmony.javax.imageio.stream.MemoryCacheImageInputStream.read(MemoryCacheImageInputStream.java:54)
    at com.tom_roush.harmony.javax.imageio.stream.ImageInputStreamImpl.readBit(ImageInputStreamImpl.java:369)
    at com.tom_roush.harmony.javax.imageio.stream.ImageInputStreamImpl.readBits(ImageInputStreamImpl.java:402)
    at com.tom_roush.pdfbox.filter.LZWFilter.doLZWDecode(LZWFilter.java:107)
    at com.tom_roush.pdfbox.filter.LZWFilter.decode(LZWFilter.java:92)
    at com.tom_roush.pdfbox.cos.COSInputStream.create(COSInputStream.java:86)
    at com.tom_roush.pdfbox.cos.COSStream.createInputStream(COSStream.java:161)
    at com.tom_roush.pdfbox.pdmodel.common.PDStream.createInputStream(PDStream.java:219)
    at com.tom_roush.pdfbox.pdmodel.graphics.image.PDImageXObject.<init>(PDImageXObject.java:0)
    at com.tom_roush.pdfbox.pdmodel.graphics.PDXObject.createXObject(PDXObject.java:51)
    at com.tom_roush.pdfbox.pdmodel.PDResources.getXObject(PDResources.java:323)
    at com.example.ProcessPdfImages.process(ProcessPdfImages.java:63)
    at com.tom_roush.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:798)
    at com.tom_roush.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:460)
    at com.tom_roush.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:437)
    at com.tom_roush.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:146)
    at com.tom_roush.pdfbox.text.PDFTextStreamEngine.processPage(PDFTextStreamEngine.java:107)
    at com.tom_roush.pdfbox.text.PDFTextStripper.processPage(PDFTextStripper.java:354)
    at com.tom_roush.pdfbox.text.PDFTextStripper.processPages(PDFTextStripper.java:290)
    at com.tom_roush.pdfbox.text.PDFTextStripper.writeText(PDFTextStripper.java:235)
    at com.tom_roush.pdfbox.text.PDFTextStripper.getText(PDFTextStripper.java:196)
    at com.example.CustomPDFStripper.savePageSegmentation(CustomPDFStripper.java:66)
    at com.example.PdfTextExtractionRemoteService.extractText(PdfTextExtractionRemoteService.java:118)
    at com.example.PdfTextExtractionRemoteService.access$000(PdfTextExtractionRemoteService.java:25)
    at com.example.PdfTextExtractionRemoteService$1.startExtraction(PdfTextExtractionRemoteService.java:50)
    at com.example.ITextExtractionService$Stub.onTransact(ITextExtractionService.java:63)
    at android.os.Binder.execTransact(Binder.java:453)

... and thanks for the great job!

jmlord avatar Feb 05 '18 22:02 jmlord