[ https://issues.apache.org/jira/browse/BATIK-1271?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17731597#comment-17731597 ]
Chris Plaskasovitis commented on BATIK-1271: -------------------------------------------- We have been facing the exact same issue in our production environment. We are currently on batik 1.16. Are there any updates with this? > Thread-safety issue in AWTGlyphGeometryCache causing infinite loop > ------------------------------------------------------------------ > > Key: BATIK-1271 > URL: https://issues.apache.org/jira/browse/BATIK-1271 > Project: Batik > Issue Type: Bug > Components: GVT > Affects Versions: 1.9 > Reporter: Fabien Leroy > Priority: Major > Attachments: AWTGlyphGeometryCache.diff, heap dump.png, partial > thread dump.txt > > > Hello, > > Running Batik in a multi-threaded environment (JAVA EE application server), > we are sometimes having threads stuck in infinite loop. > Thread dump shows we are stucked in AWTGlyphGeometryCache.get() method. > Heap dump shows we have an AWTGlyphGeometryCache$Entry instance that is > referencing itself as ".next" item, resulting in an infinite loop when trying > to run through the collection in AWTGlyphGeometryCache.get(). > Looking at the code, we found that the AWTGlyphGeometryCache.rehash() method > is probably causing the problem : it is working on the 'table' class > attribute and not on a copy. So if multiple threads enter this method > concurrently, the following line may result in 'e.next = e' : > {code:java} > e.next = table[index];{code} > > > Possible solutions that should work : > # make the method synchronized > # work on a local 'tmpTable', and assign it to the class attribute 'table' > at the end of the method (cf suggested patch) > > -- This message was sent by Atlassian Jira (v8.20.10#820010) --------------------------------------------------------------------- To unsubscribe, e-mail: batik-dev-unsubscr...@xmlgraphics.apache.org For additional commands, e-mail: batik-dev-h...@xmlgraphics.apache.org