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

Andreas Lehmkühler commented on PDFBOX-4718:
--------------------------------------------

I've reverted the problematic part of the optimization: Maybe it wasn't useful 
at all. However, now the files from PDFBOX-2557 and PDFBOX-3182 are back to the 
former rendering.

I couldn't check the file from PDFBOPX-3182 as it isn't available any more. The 
origin link is dead.

The file from PDFBOX-3116 is tricky and it took me some time to find the root 
cause. My changes are OK but they reveal an issue with very large values for a 
rectangle. The file contains a form object with a malformed bounding box. The 
first value of the COSArray leads to a very huge value and the calculation of 
the bounding box using getBounds2D results in a wrong width value so that the 
clipping path is to small a some of the output is cut.

{code}
14 0 obj <</Type /XObject /Subtype /Form /FormType 1
/BBox 
[-89884656743115785407263711865852178399035283762922498299458738401578630390014269380294779316383439085770229476757191232117160663444732091384233773351768758493024955288275641038122745045194664472037934254227566971152291618451611474082904279666061674137398913102072361584369088590459649940625202013092062429184
 0 2480 3508] /Matrix [1 0 0 1 0 0]
/Length 933 /Filter[/A85 /Fl]>>
{code}

I've fixed the issue by limiting the float values of a rectangle to 
Integer.MAX_VALUE when calling the constructor 
org.apache.pdfbox.pdmodel.common.PDRectangle.PDRectangle(COSArray)

WDYT? Is that a suitable way to fix such corner case?

> OutOfMemoryError - during renderImageWithDPI
> --------------------------------------------
>
>                 Key: PDFBOX-4718
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-4718
>             Project: PDFBox
>          Issue Type: Bug
>          Components: Rendering
>    Affects Versions: 2.0.17, 3.0.3 PDFBox, 4.0.0
>         Environment: macOS Mojave (10.14.6)
> Java 11.0.2 -Xmx10G -Xms10G
>            Reporter: Serhii Kolesnyk
>            Assignee: Andreas Lehmkühler
>            Priority: Blocker
>             Fix For: 2.0.33, 3.0.4 PDFBox, 4.0.0
>
>         Attachments: PDFBOX-4718-reduced.pdf, PDFBox4718Intersect.java, 
> example.pdf, image-2019-12-19-05-55-57-648.png
>
>
> During rendering pdf we receive _java.lang.OutOfMemoryError: Java heap space_
> {code:java}
> Exception in thread "AWT-Shutdown" java.lang.OutOfMemoryError: Java heap 
> spaceException in thread "AWT-Shutdown" java.lang.OutOfMemoryError: Java heap 
> space at java.desktop/sun.awt.AppContext.getAppContexts(AppContext.java:167) 
> at 
> java.desktop/sun.awt.AppContext.stopEventDispatchThreads(AppContext.java:610) 
> at java.desktop/sun.awt.AWTAutoShutdown.run(AWTAutoShutdown.java:322) at 
> java.base/java.lang.Thread.run(Thread.java:834)
> java.lang.OutOfMemoryError: Java heap space
>  at java.desktop/sun.awt.geom.AreaOp.pruneEdges(AreaOp.java:362) at 
> java.desktop/sun.awt.geom.AreaOp.calculate(AreaOp.java:159) at 
> java.desktop/java.awt.geom.Area.intersect(Area.java:293) at 
> org.apache.pdfbox.pdmodel.graphics.state.PDGraphicsState.intersectClippingPath(PDGraphicsState.java:618)
>  at 
> org.apache.pdfbox.pdmodel.graphics.state.PDGraphicsState.intersectClippingPath(PDGraphicsState.java:597)
>  at org.apache.pdfbox.rendering.PageDrawer.endPath(PageDrawer.java:936) at 
> org.apache.pdfbox.contentstream.operator.graphics.EndPath.process(EndPath.java:35)
>  at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processOperator(PDFStreamEngine.java:869)
>  at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processStreamOperators(PDFStreamEngine.java:505)
>  at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processStream(PDFStreamEngine.java:479)
>  at 
> org.apache.pdfbox.contentstream.PDFStreamEngine.processPage(PDFStreamEngine.java:152)
>  at org.apache.pdfbox.rendering.PageDrawer.drawPage(PageDrawer.java:262) at 
> org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:314) at 
> org.apache.pdfbox.rendering.PDFRenderer.renderImage(PDFRenderer.java:243) at 
> org.apache.pdfbox.rendering.PDFRenderer.renderImageWithDPI(PDFRenderer.java:229){code}
> We check the different setting of MemoryUsageSetting (TempFileOnly, 
> MainMemoryOnly), settings of DPI.



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

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

Reply via email to