You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@pdfbox.apache.org by "Henry Iguaro (Jira)" <ji...@apache.org> on 2022/07/04 05:19:00 UTC

[jira] [Updated] (PDFBOX-5471) NPE when Transparency Group is missing the BBox

     [ https://issues.apache.org/jira/browse/PDFBOX-5471?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Henry Iguaro updated PDFBOX-5471:
---------------------------------
    Description: 
Some files contain transparency groups with no {{{}BBox{}}}. When this happens, PDFBox rendering code throws a {{NullPointerException}} in the {{TransparencyGroup}} constructor:

 
{code:java}
// transform the bbox
GeneralPath transformedBox = form.getBBox().transform(transform);
                                  \_______/ 
                               NPE when its null{code}
The following is a screenshot taken from {{pdf-debugger}} when trying to open a file with has this issue:

!image-2022-07-04-14-55-28-527.png!

The stack trace:
{code:java}
java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NullPointerException: Cannot invoke "org.apache.pdfbox.pdmodel.common.PDRectangle.transform(org.apache.pdfbox.util.Matrix)" because the return value of "org.apache.pdfbox.pdmodel.graphics.form.PDTransparencyGroup.getBBox()" is null
    org.apache.pdfbox.debugger.pagepane.PagePane$RenderWorker.done(PagePane.java:485)
    java.desktop/sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112)
    java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
Caused by: java.util.concurrent.ExecutionException: java.lang.NullPointerException: Cannot invoke "org.apache.pdfbox.pdmodel.common.PDRectangle.transform(org.apache.pdfbox.util.Matrix)" because the return value of "org.apache.pdfbox.pdmodel.graphics.form.PDTransparencyGroup.getBBox()" is null
    org.apache.pdfbox.debugger.pagepane.PagePane$RenderWorker.done(PagePane.java:465)
    java.desktop/sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112)
    java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
Caused by: java.lang.NullPointerException: Cannot invoke "org.apache.pdfbox.pdmodel.common.PDRectangle.transform(org.apache.pdfbox.util.Matrix)" because the return value of "org.apache.pdfbox.pdmodel.graphics.form.PDTransparencyGroup.getBBox()" is null
    org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1672)
    org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1637)
    org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroupOnGraphics(PageDrawer.java:1575)
    org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroup(PageDrawer.java:1553)
    org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:81)
    org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:966)
    org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:541)
    org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:516)
    org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:155)
    org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:279)
    org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:355)
    org.apache.pdfbox.debugger.pagepane.PagePane$RenderWorker.doInBackground(PagePane.java:453)
    org.apache.pdfbox.debugger.pagepane.PagePane$RenderWorker.doInBackground(PagePane.java:435)
    java.base/java.lang.Thread.run(Thread.java:832)
 {code}
The following is an example file that reproduces this problem:

[^getbbox-null.pdf]

 

A potential fix PR: https://github.com/apache/pdfbox/pull/145

  was:
Some files contain transparency groups with no {{{}BBox{}}}. When this happens, PDFBox rendering code throws a {{NullPointerException}} in the {{TransparencyGroup}} constructor:

 
{code:java}
// transform the bbox
GeneralPath transformedBox = form.getBBox().transform(transform);
                                  \_______/ 
                               NPE when its null{code}
The following is a screenshot taken from {{pdf-debugger}} when trying to open a file with has this issue:

!image-2022-07-04-14-55-28-527.png!

The stack trace:
{code:java}
java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NullPointerException: Cannot invoke "org.apache.pdfbox.pdmodel.common.PDRectangle.transform(org.apache.pdfbox.util.Matrix)" because the return value of "org.apache.pdfbox.pdmodel.graphics.form.PDTransparencyGroup.getBBox()" is null
    org.apache.pdfbox.debugger.pagepane.PagePane$RenderWorker.done(PagePane.java:485)
    java.desktop/sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112)
    java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
Caused by: java.util.concurrent.ExecutionException: java.lang.NullPointerException: Cannot invoke "org.apache.pdfbox.pdmodel.common.PDRectangle.transform(org.apache.pdfbox.util.Matrix)" because the return value of "org.apache.pdfbox.pdmodel.graphics.form.PDTransparencyGroup.getBBox()" is null
    org.apache.pdfbox.debugger.pagepane.PagePane$RenderWorker.done(PagePane.java:465)
    java.desktop/sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112)
    java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
    java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
Caused by: java.lang.NullPointerException: Cannot invoke "org.apache.pdfbox.pdmodel.common.PDRectangle.transform(org.apache.pdfbox.util.Matrix)" because the return value of "org.apache.pdfbox.pdmodel.graphics.form.PDTransparencyGroup.getBBox()" is null
    org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1672)
    org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1637)
    org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroupOnGraphics(PageDrawer.java:1575)
    org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroup(PageDrawer.java:1553)
    org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:81)
    org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:966)
    org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:541)
    org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:516)
    org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:155)
    org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:279)
    org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:355)
    org.apache.pdfbox.debugger.pagepane.PagePane$RenderWorker.doInBackground(PagePane.java:453)
    org.apache.pdfbox.debugger.pagepane.PagePane$RenderWorker.doInBackground(PagePane.java:435)
    java.base/java.lang.Thread.run(Thread.java:832)
 {code}
The following is an example file that reproduces this problem:

[^getbbox-null.pdf]

 


> NPE when Transparency Group is missing the BBox
> -----------------------------------------------
>
>                 Key: PDFBOX-5471
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-5471
>             Project: PDFBox
>          Issue Type: Bug
>          Components: Rendering
>    Affects Versions: 2.0.26
>            Reporter: Henry Iguaro
>            Priority: Major
>         Attachments: getbbox-null.pdf, image-2022-07-04-14-55-28-527.png
>
>
> Some files contain transparency groups with no {{{}BBox{}}}. When this happens, PDFBox rendering code throws a {{NullPointerException}} in the {{TransparencyGroup}} constructor:
>  
> {code:java}
> // transform the bbox
> GeneralPath transformedBox = form.getBBox().transform(transform);
>                                   \_______/ 
>                                NPE when its null{code}
> The following is a screenshot taken from {{pdf-debugger}} when trying to open a file with has this issue:
> !image-2022-07-04-14-55-28-527.png!
> The stack trace:
> {code:java}
> java.lang.RuntimeException: java.util.concurrent.ExecutionException: java.lang.NullPointerException: Cannot invoke "org.apache.pdfbox.pdmodel.common.PDRectangle.transform(org.apache.pdfbox.util.Matrix)" because the return value of "org.apache.pdfbox.pdmodel.graphics.form.PDTransparencyGroup.getBBox()" is null
>     org.apache.pdfbox.debugger.pagepane.PagePane$RenderWorker.done(PagePane.java:485)
>     java.desktop/sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112)
>     java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
>     java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
> Caused by: java.util.concurrent.ExecutionException: java.lang.NullPointerException: Cannot invoke "org.apache.pdfbox.pdmodel.common.PDRectangle.transform(org.apache.pdfbox.util.Matrix)" because the return value of "org.apache.pdfbox.pdmodel.graphics.form.PDTransparencyGroup.getBBox()" is null
>     org.apache.pdfbox.debugger.pagepane.PagePane$RenderWorker.done(PagePane.java:465)
>     java.desktop/sun.swing.AccumulativeRunnable.run(AccumulativeRunnable.java:112)
>     java.base/java.security.AccessController.doPrivileged(AccessController.java:391)
>     java.base/java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:85)
> Caused by: java.lang.NullPointerException: Cannot invoke "org.apache.pdfbox.pdmodel.common.PDRectangle.transform(org.apache.pdfbox.util.Matrix)" because the return value of "org.apache.pdfbox.pdmodel.graphics.form.PDTransparencyGroup.getBBox()" is null
>     org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1672)
>     org.apache.pdfbox.rendering.PageDrawer$TransparencyGroup.<init>(PageDrawer.java:1637)
>     org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroupOnGraphics(PageDrawer.java:1575)
>     org.apache.pdfbox.rendering.PageDrawer.showTransparencyGroup(PageDrawer.java:1553)
>     org.apache.pdfbox.contentstream.operator.graphics.DrawObject.process(DrawObject.java:81)
>     org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:966)
>     org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:541)
>     org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:516)
>     org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:155)
>     org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:279)
>     org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:355)
>     org.apache.pdfbox.debugger.pagepane.PagePane$RenderWorker.doInBackground(PagePane.java:453)
>     org.apache.pdfbox.debugger.pagepane.PagePane$RenderWorker.doInBackground(PagePane.java:435)
>     java.base/java.lang.Thread.run(Thread.java:832)
>  {code}
> The following is an example file that reproduces this problem:
> [^getbbox-null.pdf]
>  
> A potential fix PR: https://github.com/apache/pdfbox/pull/145



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@pdfbox.apache.org
For additional commands, e-mail: dev-help@pdfbox.apache.org