Henry Iguaro created PDFBOX-5471:
------------------------------------

             Summary: 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
         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]

 



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

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

Reply via email to