[ 
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

Reply via email to