7027300: Unsynchronized HashMap access causes endless loop

Reviewed-by: bae, jgodinez
This commit is contained in:
Phil Race 2012-06-13 12:46:02 -07:00
parent 623934b5e1
commit a8072dc2a0

View File

@ -33,7 +33,7 @@ package sun.font;
import sun.font.GlyphLayout.*;
import java.awt.geom.Point2D;
import java.lang.ref.SoftReference;
import java.util.HashMap;
import java.util.concurrent.ConcurrentHashMap;
import java.util.Locale;
/*
@ -129,9 +129,9 @@ public final class SunLayoutEngine implements LayoutEngine, LayoutEngineFactory
// !!! don't need this unless we have more than one sun layout engine...
public LayoutEngine getEngine(LayoutEngineKey key) {
HashMap cache = (HashMap)cacheref.get();
ConcurrentHashMap cache = (ConcurrentHashMap)cacheref.get();
if (cache == null) {
cache = new HashMap();
cache = new ConcurrentHashMap();
cacheref = new SoftReference(cache);
}