[
https://issues.apache.org/jira/browse/PDFBOX-5731?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17796295#comment-17796295
]
Axel Howind commented on PDFBOX-5731:
-------------------------------------
[~lycheng] I updated the patch. Instead of doing a sweep each time a new
COSName instance is created, I use a
[Cleaner|https://docs.oracle.com/en/java/javase/11/docs/api/java.base/java/lang/ref/Cleaner.html]
instance to automatically remove the key once the value is garbage collected.
This works from Java 9 onwards and looks a lot cleaner (sic!) and easier to
maintain than the reference queue.
I have tested that entries get removed, and while doing so have seen that
apparently PDFDebugger has a memory leak because the WeakReferences never went
stale (also when sweeping the map manually and even running System.gc() after
loading different documents).
Please try and comment.
> org.apache.pdfbox.cos.COSName#nameMap There is a memory leak problem.
> ---------------------------------------------------------------------
>
> Key: PDFBOX-5731
> URL: https://issues.apache.org/jira/browse/PDFBOX-5731
> Project: PDFBox
> Issue Type: Bug
> Affects Versions: 2.0.30, 3.0.1 PDFBox
> Reporter: liu
> Priority: Major
> Attachments:
> attempted_fix_for_PDFBOX-5731__clear_out_unused_COSName_instances_automatically.patch,
>
> attempted_fix_for_PDFBOX-5731__clear_out_unused_COSName_instances_automatically_2.patch,
> image-2023-12-08-16-02-12-293.png, image-2023-12-13-17-04-22-073.png,
> screenshot-1.png, screenshot-2.png, screenshot-3.png, screenshot-4.png,
> screenshot-5.png
>
>
> !image-2023-12-08-16-02-12-293.png!
> !screenshot-1.png!
--
This message was sent by Atlassian Jira
(v8.20.10#820010)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]