[
https://issues.apache.org/jira/browse/FOP-2525?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15137618#comment-15137618
]
David Geleyn edited comment on FOP-2525 at 2/8/16 8:25 PM:
-----------------------------------------------------------
The relevant code starts with a static (!) unbounded hashmap of
ScriptProcessors. Someway along the children (of the children of the
children...), there is a hash map with a GlyphTable as key. Because the
instances weren't equal, new instances were added to the map all the time,
although there were already similar entries.
I noticed a lot of HashMaps without any bounderies. For me it is hard to judge
(because i'm not an expert in FOP code) whether it is acceptable or not. I can
imagine that using a kind of LRUMap would be a more safe approach.
was (Author: [email protected]):
The relevant code contains a hash map with a GlyphTable as a key. Because the
instances weren't equal, new instances were added to the map all the time,
although there were already similar entries.
I noticed a lot of HashMaps without any bounderies. For me it is hard to
understand (because i'm not an expert in FOP code) whether it is acceptable or
not. I can imagine that using a kind of LRUMap would be a more safe approach.
> Memory leak present when using Truetype Collection (.ttc)
> ---------------------------------------------------------
>
> Key: FOP-2525
> URL: https://issues.apache.org/jira/browse/FOP-2525
> Project: FOP
> Issue Type: Bug
> Affects Versions: 2.0
> Environment: At least Mac and Linux, both Oracle VM and OpenJDK
> Reporter: Jeremy Smith
> Priority: Minor
>
> When a TrueType Collection file is used to specify custom fonts, and a
> long-running FopFactory is used to create FOP instances to process many FO
> input documents, millions of
> org.apache.fop.complexscripts.fonts.GlyphPositioningTable$PairValues and
> org.apache.fop.complexscripts.fonts.GlyphPositioningTable$Values instances
> get created which are never collected. Thus the heap continues to grow,
> leading to eventual GC thrashing or crash.
> When the same fonts are used, but extracted from the TTC file, the issue does
> not occur, and the instances of those classes are collected normally.
> The issue can be seen by repeatedly processing a document with a config.xml
> which specifies fonts inside of a Truetype Collection file. Attaching
> VisualVM to such a process will show continuous heap growth and millions of
> aforementioned instances whose numbers never decrease.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)