The fontCache member of AWTGVTFont is a static non-synchronized HashMap and access to the AWTGlyphGeometryCache is also non-synchronized.

 

My test runs 50 threads each using one SVG Transcoder to produce jpeg out of 20 svg files (for each thread). At some point, the glyph geometry cache which contains a list of glyph geometry is corrupted. One of the list becomes circular and some threads enter an infinite loop when AWTGlyphGeometryCache.get() or AWTGlyphGeometryCache.rehash() is called.

 

Did anybody experience something similar? Is there something to be done before using the SVG Transcoder in a multi-threaded environment?

 

Nicolas

Reply via email to