# HG changeset patch # User prr # Date 1339616762 25200 # Node ID 98899b2d514cb2460a23db6fadadcc4b218fe10c # Parent 8e4ff85cdd16aafaa980329a6ff80cf2fc801b0e 7027300: Unsynchronized HashMap access causes endless loop Reviewed-by: bae, jgodinez diff -r 8e4ff85cdd16 -r 98899b2d514c jdk/src/share/classes/sun/font/SunLayoutEngine.java --- a/jdk/src/share/classes/sun/font/SunLayoutEngine.java Thu Jun 07 18:08:28 2012 -0700 +++ b/jdk/src/share/classes/sun/font/SunLayoutEngine.java Wed Jun 13 12:46:02 2012 -0700 @@ -33,7 +33,7 @@ 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 @@ // !!! 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); }