[ 
https://issues.apache.org/jira/browse/PDFBOX-3678?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15859169#comment-15859169
 ] 

Roman edited comment on PDFBOX-3678 at 2/9/17 7:56 AM:
-------------------------------------------------------

I tried PrintImageLocations.java, and get same, but more detailed error, stack 
trace shows that JBIG2ImageReader is used from another library, PdfOne.jar:

{code}
com.accusoft.jbsf.errors.JbsfException: java.io.IOException: Could not read 
JBIG2 image
        at 
com.accusoft.pdfps.redaction.method.RedactMethod.handleRequest(RedactMethod.java:49)
 ~[classes/:?]
        at com.accusoft.jbsf.g.a(Unknown Source) 
~[jbsf-1.1-20170116.065341-12.jar:?]
        at com.accusoft.jbsf.http.HttpServerHandler.handleRequest(Unknown 
Source) [jbsf-1.1-20170116.065341-12.jar:?]
        at com.accusoft.jbsf.http.i.a(Unknown Source) 
[jbsf-1.1-20170116.065341-12.jar:?]
        at com.accusoft.jbsf.http.i.call(Unknown Source) 
[jbsf-1.1-20170116.065341-12.jar:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
[?:1.8.0_101]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
[?:1.8.0_101]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
[?:1.8.0_101]
        at java.lang.Thread.run(Thread.java:745) [?:1.8.0_101]
Caused by: java.io.IOException: Could not read JBIG2 image
        at org.apache.pdfbox.filter.JBIG2Filter.decode(JBIG2Filter.java:90) 
~[pdfbox-2.0.4.jar:2.0.4]
        at org.apache.pdfbox.cos.COSInputStream.create(COSInputStream.java:69) 
~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.cos.COSStream.createInputStream(COSStream.java:162) 
~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.pdmodel.common.PDStream.createInputStream(PDStream.java:235) 
~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.<init>(PDImageXObject.java:160)
 ~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.pdmodel.graphics.PDXObject.createXObject(PDXObject.java:70) 
~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.pdmodel.PDResources.getXObject(PDResources.java:409) 
~[pdfbox-2.0.4.jar:2.0.4]
        at 
com.accusoft.pdfps.redaction.utils.pdfbox.PrintImageLocations.processOperator(PrintImageLocations.java:116)
 ~[classes/:?]
        at 
org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:486)
 ~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:460)
 ~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:150)
 ~[pdfbox-2.0.4.jar:2.0.4]
        at 
com.accusoft.pdfps.redaction.utils.pdfbox.PrintImageLocations.main(PrintImageLocations.java:88)
 ~[classes/:?]
        at 
com.accusoft.pdfps.redaction.method.RedactMethod.handleRequest(RedactMethod.java:26)
 ~[classes/:?]
        ... 8 more
Caused by: java.io.EOFException
        at 
javax.imageio.stream.ImageInputStreamImpl.readBit(ImageInputStreamImpl.java:652)
 ~[?:1.8.0_101]
        at com.levigo.jbig2.SegmentHeader.e(gn:75) 
~[pdfone-5.3.17.507.jar:5.3.17.507]
        at com.levigo.jbig2.SegmentHeader.D(gn:208) 
~[pdfone-5.3.17.507.jar:5.3.17.507]
        at com.levigo.jbig2.SegmentHeader.<init>(gn:67) 
~[pdfone-5.3.17.507.jar:5.3.17.507]
        at com.levigo.jbig2.e.k(hm:148) ~[pdfone-5.3.17.507.jar:5.3.17.507]
        at com.levigo.jbig2.e.<init>(hm:204) ~[pdfone-5.3.17.507.jar:5.3.17.507]
        at com.levigo.jbig2.JBIG2ImageReader.D(uf:275) 
~[pdfone-5.3.17.507.jar:5.3.17.507]
        at com.levigo.jbig2.JBIG2ImageReader.D(uf:233) 
~[pdfone-5.3.17.507.jar:5.3.17.507]
        at com.levigo.jbig2.JBIG2ImageReader.read(uf:29) 
~[pdfone-5.3.17.507.jar:5.3.17.507]
        at org.apache.pdfbox.filter.JBIG2Filter.decode(JBIG2Filter.java:85) 
~[pdfbox-2.0.4.jar:2.0.4]
        at org.apache.pdfbox.cos.COSInputStream.create(COSInputStream.java:69) 
~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.cos.COSStream.createInputStream(COSStream.java:162) 
~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.pdmodel.common.PDStream.createInputStream(PDStream.java:235) 
~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.<init>(PDImageXObject.java:160)
 ~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.pdmodel.graphics.PDXObject.createXObject(PDXObject.java:70) 
~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.pdmodel.PDResources.getXObject(PDResources.java:409) 
~[pdfbox-2.0.4.jar:2.0.4]
        at 
com.accusoft.pdfps.redaction.utils.pdfbox.PrintImageLocations.processOperator(PrintImageLocations.java:116)
 ~[classes/:?]
        at 
org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:486)
 ~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:460)
 ~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:150)
 ~[pdfbox-2.0.4.jar:2.0.4]
        at 
com.accusoft.pdfps.redaction.utils.pdfbox.PrintImageLocations.main(PrintImageLocations.java:88)
 ~[classes/:?]
        at 
com.accusoft.pdfps.redaction.method.RedactMethod.handleRequest(RedactMethod.java:26)
 ~[classes/:?]
{code}

Also I found that if I go inside pdfone-5.3.17.507.jar archive, and edit 
\META-INF\services\javax.imageio.spi.ImageReaderSpi, changing line
{code}
com.levigo.jbig2.JBIG2ImageReaderSpi
{code}

to

{code}
org.jpedal.jbig2.jai.JBIG2ImageReaderSpi
{code}

then, error goes away. JBIG2ImageReader is used from jbig2-5.5.1.jar in this 
case.

Ok, now its clear this bug is NOT inside pdfbox. But could you recomend 
alternative ways, how to prevent wrong decoder to be loaded? Could this be done 
without editing contents of pdfone.jar file?


was (Author: rmakarov):
I tried PrintImageLocations.java, and get same, but more detailed error, stack 
trace shows that JBIG2ImageReader is used from another library, PdfOne.jar:

{code}
com.accusoft.jbsf.errors.JbsfException: java.io.IOException: Could not read 
JBIG2 image
        at 
com.accusoft.pdfps.redaction.method.RedactMethod.handleRequest(RedactMethod.java:49)
 ~[classes/:?]
        at com.accusoft.jbsf.g.a(Unknown Source) 
~[jbsf-1.1-20170116.065341-12.jar:?]
        at com.accusoft.jbsf.http.HttpServerHandler.handleRequest(Unknown 
Source) [jbsf-1.1-20170116.065341-12.jar:?]
        at com.accusoft.jbsf.http.i.a(Unknown Source) 
[jbsf-1.1-20170116.065341-12.jar:?]
        at com.accusoft.jbsf.http.i.call(Unknown Source) 
[jbsf-1.1-20170116.065341-12.jar:?]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) 
[?:1.8.0_101]
        at 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142) 
[?:1.8.0_101]
        at 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617) 
[?:1.8.0_101]
        at java.lang.Thread.run(Thread.java:745) [?:1.8.0_101]
Caused by: java.io.IOException: Could not read JBIG2 image
        at org.apache.pdfbox.filter.JBIG2Filter.decode(JBIG2Filter.java:90) 
~[pdfbox-2.0.4.jar:2.0.4]
        at org.apache.pdfbox.cos.COSInputStream.create(COSInputStream.java:69) 
~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.cos.COSStream.createInputStream(COSStream.java:162) 
~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.pdmodel.common.PDStream.createInputStream(PDStream.java:235) 
~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.<init>(PDImageXObject.java:160)
 ~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.pdmodel.graphics.PDXObject.createXObject(PDXObject.java:70) 
~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.pdmodel.PDResources.getXObject(PDResources.java:409) 
~[pdfbox-2.0.4.jar:2.0.4]
        at 
com.accusoft.pdfps.redaction.utils.pdfbox.PrintImageLocations.processOperator(PrintImageLocations.java:116)
 ~[classes/:?]
        at 
org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:486)
 ~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:460)
 ~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:150)
 ~[pdfbox-2.0.4.jar:2.0.4]
        at 
com.accusoft.pdfps.redaction.utils.pdfbox.PrintImageLocations.main(PrintImageLocations.java:88)
 ~[classes/:?]
        at 
com.accusoft.pdfps.redaction.method.RedactMethod.handleRequest(RedactMethod.java:26)
 ~[classes/:?]
        ... 8 more
Caused by: java.io.EOFException
        at 
javax.imageio.stream.ImageInputStreamImpl.readBit(ImageInputStreamImpl.java:652)
 ~[?:1.8.0_101]
        at com.levigo.jbig2.SegmentHeader.e(gn:75) 
~[pdfone-5.3.17.507.jar:5.3.17.507]
        at com.levigo.jbig2.SegmentHeader.D(gn:208) 
~[pdfone-5.3.17.507.jar:5.3.17.507]
        at com.levigo.jbig2.SegmentHeader.<init>(gn:67) 
~[pdfone-5.3.17.507.jar:5.3.17.507]
        at com.levigo.jbig2.e.k(hm:148) ~[pdfone-5.3.17.507.jar:5.3.17.507]
        at com.levigo.jbig2.e.<init>(hm:204) ~[pdfone-5.3.17.507.jar:5.3.17.507]
        at com.levigo.jbig2.JBIG2ImageReader.D(uf:275) 
~[pdfone-5.3.17.507.jar:5.3.17.507]
        at com.levigo.jbig2.JBIG2ImageReader.D(uf:233) 
~[pdfone-5.3.17.507.jar:5.3.17.507]
        at com.levigo.jbig2.JBIG2ImageReader.read(uf:29) 
~[pdfone-5.3.17.507.jar:5.3.17.507]
        at org.apache.pdfbox.filter.JBIG2Filter.decode(JBIG2Filter.java:85) 
~[pdfbox-2.0.4.jar:2.0.4]
        at org.apache.pdfbox.cos.COSInputStream.create(COSInputStream.java:69) 
~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.cos.COSStream.createInputStream(COSStream.java:162) 
~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.pdmodel.common.PDStream.createInputStream(PDStream.java:235) 
~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.<init>(PDImageXObject.java:160)
 ~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.pdmodel.graphics.PDXObject.createXObject(PDXObject.java:70) 
~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.pdmodel.PDResources.getXObject(PDResources.java:409) 
~[pdfbox-2.0.4.jar:2.0.4]
        at 
com.accusoft.pdfps.redaction.utils.pdfbox.PrintImageLocations.processOperator(PrintImageLocations.java:116)
 ~[classes/:?]
        at 
org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:486)
 ~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:460)
 ~[pdfbox-2.0.4.jar:2.0.4]
        at 
org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:150)
 ~[pdfbox-2.0.4.jar:2.0.4]
        at 
com.accusoft.pdfps.redaction.utils.pdfbox.PrintImageLocations.main(PrintImageLocations.java:88)
 ~[classes/:?]
        at 
com.accusoft.pdfps.redaction.method.RedactMethod.handleRequest(RedactMethod.java:26)
 ~[classes/:?]
{code}

Also I found that if I go inside pdfone-5.3.17.507.jar archive, and edit 
\META-INF\services\javax.imageio.spi.ImageReaderSpi, changing line
{code}
com.levigo.jbig2.JBIG2ImageReaderSpi
{code}

to

{code}
org.jpedal.jbig2.jai.JBIG2ImageReaderSpi
{code}

then, error goes away. JBIG2ImageReader is used from jbig2-5.5.1.jar in this 
case.

Ok, now its clear this bug is not inside pdfbox. But could you recomend 
alternative ways, how to prevent wrong decoder to be loaded? Could this be done 
without editing contents of pdfone.jar file?

> JBIG2 decoding error in 2.0
> ---------------------------
>
>                 Key: PDFBOX-3678
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-3678
>             Project: PDFBox
>          Issue Type: Bug
>            Reporter: Roman
>         Attachments: BTB0010010004.1-Bit_Jbig2.pdf
>
>
> After migration from PdfBox 1.8 to 2.0, we started to get the following 
> error, when processing attached PDF (on 1.8 it was working fine):
> {code}
> java.io.IOException: Could not read JBIG2 image
>       at org.apache.pdfbox.filter.JBIG2Filter.decode(JBIG2Filter.java:91) 
> ~[pdfbox-2.0.3.jar:2.0.3]
>       at org.apache.pdfbox.cos.COSInputStream.create(COSInputStream.java:69) 
> ~[pdfbox-2.0.3.jar:2.0.3]
>       at 
> org.apache.pdfbox.cos.COSStream.createInputStream(COSStream.java:162) 
> ~[pdfbox-2.0.3.jar:2.0.3]
>       at 
> org.apache.pdfbox.pdmodel.common.PDStream.createInputStream(PDStream.java:235)
>  ~[pdfbox-2.0.3.jar:2.0.3]
>       at 
> org.apache.pdfbox.pdmodel.graphics.image.PDImageXObject.<init>(PDImageXObject.java:147)
>  ~[pdfbox-2.0.3.jar:2.0.3]
>       at 
> org.apache.pdfbox.pdmodel.graphics.PDXObject.createXObject(PDXObject.java:70) 
> ~[pdfbox-2.0.3.jar:2.0.3]
>       at 
> org.apache.pdfbox.pdmodel.PDResources.getXObject(PDResources.java:409) 
> ~[pdfbox-2.0.3.jar:2.0.3]
>       at 
> com.accusoft.pdfps.redaction.utils.pdfbox.ImageTransformsCalculator.processOperator(ImageTransformsCalculator.java:78)
>  ~[classes/:?]
>       at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:472)
>  ~[pdfbox-2.0.3.jar:2.0.3]
>       at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:446)
>  ~[pdfbox-2.0.3.jar:2.0.3]
>       at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:149)
>  ~[pdfbox-2.0.3.jar:2.0.3]
> Caused by: java.io.EOFException
>       at 
> javax.imageio.stream.ImageInputStreamImpl.readBit(ImageInputStreamImpl.java:652)
>  ~[?:1.8.0_101]
>       at com.levigo.jbig2.SegmentHeader.e(gn:75) 
> ~[pdfone-5.3.17.507.jar:5.3.17.507]
>       at com.levigo.jbig2.SegmentHeader.D(gn:208) 
> ~[pdfone-5.3.17.507.jar:5.3.17.507]
>       at com.levigo.jbig2.SegmentHeader.<init>(gn:67) 
> ~[pdfone-5.3.17.507.jar:5.3.17.507]
>       at com.levigo.jbig2.e.k(hm:148) ~[pdfone-5.3.17.507.jar:5.3.17.507]
>       at com.levigo.jbig2.e.<init>(hm:204) ~[pdfone-5.3.17.507.jar:5.3.17.507]
>       at com.levigo.jbig2.JBIG2ImageReader.D(uf:275) 
> ~[pdfone-5.3.17.507.jar:5.3.17.507]
>       at com.levigo.jbig2.JBIG2ImageReader.D(uf:233) 
> ~[pdfone-5.3.17.507.jar:5.3.17.507]
>       at com.levigo.jbig2.JBIG2ImageReader.read(uf:29) 
> ~[pdfone-5.3.17.507.jar:5.3.17.507]
>       at org.apache.pdfbox.filter.JBIG2Filter.decode(JBIG2Filter.java:86) 
> ~[pdfbox-2.0.3.jar:2.0.3]
> {code}



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to