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

Andreas Lehmkühler resolved PDFBOX-5369.
----------------------------------------
    Resolution: Fixed

I'm not sure which change fixes the issue, however it works now.

> PDDocument.saveIncremental () and stack exhaustion
> --------------------------------------------------
>
>                 Key: PDFBOX-5369
>                 URL: https://issues.apache.org/jira/browse/PDFBOX-5369
>             Project: PDFBox
>          Issue Type: Bug
>          Components: Writing
>    Affects Versions: 3.0.0 PDFBox
>            Reporter: the blue mountain
>            Assignee: Andreas Lehmkühler
>            Priority: Major
>             Fix For: 3.0.7 PDFBox, 4.0.0
>
>         Attachments: PDFBOX-20220126.zip, PDFBOX-20220130.zip
>
>
> Merge of fdf annotations into pdf file exhausts stack
> attempting to merge an fdf file in a pdf file, using the 
> PDDocument.saveIncremental () method, program stack is exhausted because of 
> infinite recursion.
> looking further in the code, it seems the infinite recursion is being started 
> from the private boolean COSIncremental.collect(COSBase base) method.
> i have attached a zip file carrying:
> - mini.pdf: a minimal pdf file to reproduce the issue
> - mini.fdf: an fdf annotation file carrying a /Text annotation and related 
> /Popup to reproduce the issue
> - COSIncrement.java: a modified source that generate extra traces (+ possible 
> work-around)
> - COSIncrement-fix.java: a modified source to avoid the problem
> - Sample.java: a sample program that loads pdf, copies annotations and saves 
> incrementally.
> - sample_run.xlsx: an extract of the Sample output to compare a working vs 
> non-working
>  
> notes:
> 1- I was not able to reproduce the problem using annotations created 
> dynamically in the code.
>  
> 2- It is possible to avoid this issue by altering the COSIncrement.java class 
> (COSIncrement-fix.java):
> it records objects beING collected through enter () method ensuring object is 
> not being collected multiple times
>  



--
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