Index: modules/awt/src/main/java/common/java/awt/ToolkitImpl.java =================================================================== --- modules/awt/src/main/java/common/java/awt/ToolkitImpl.java (revision 551529) +++ modules/awt/src/main/java/common/java/awt/ToolkitImpl.java (working copy) @@ -31,6 +31,7 @@ import java.util.Hashtable; import java.util.Map; import java.util.Properties; +import org.apache.harmony.awt.gl.font.FontMetricsImpl; import org.apache.harmony.awt.datatransfer.DTK; import org.apache.harmony.awt.gl.*; import org.apache.harmony.awt.gl.image.*; @@ -38,6 +39,8 @@ class ToolkitImpl extends Toolkit { static final Hashtable imageCache = new Hashtable(); + static final FontMetrics cacheFM[] = new FontMetrics[10]; + @Override public void sync() { lockAWT(); @@ -126,13 +129,37 @@ } } + /** + * Returns FontMetrics object that keeps metrics of the specified font. + * + * @param font specified Font + * @return FontMetrics object corresponding to the specified Font object + */ @SuppressWarnings("deprecation") @Override @Deprecated public FontMetrics getFontMetrics(Font font) { lockAWT(); try { - return getGraphicsFactory().getFontMetrics(font); + FontMetrics fm; + for (FontMetrics element : cacheFM) { + fm = element; + if (fm == null){ + break; + } + + if (fm.getFont().equals(font)){ + return fm; + } + } + fm = new FontMetricsImpl(font); + + System.arraycopy(cacheFM, 0, cacheFM, 1, cacheFM.length -1); + cacheFM[0] = fm; + + return fm; + +// return getGraphicsFactory().getFontMetrics(font); } finally { unlockAWT(); } Index: modules/awt/src/main/java/common/org/apache/harmony/awt/gl/CommonGraphics2DFactory.java =================================================================== --- modules/awt/src/main/java/common/org/apache/harmony/awt/gl/CommonGraphics2DFactory.java (revision 551512) +++ modules/awt/src/main/java/common/org/apache/harmony/awt/gl/CommonGraphics2DFactory.java (working copy) @@ -24,7 +24,6 @@ import java.awt.FontMetrics; import java.awt.peer.FontPeer; -import org.apache.harmony.awt.gl.font.FontMetricsImpl; import org.apache.harmony.awt.wtk.GraphicsFactory; /** @@ -36,33 +35,7 @@ // static instance of CommonGraphics2DFactory public static CommonGraphics2DFactory inst; - /** - * Returns FontMetrics object that keeps metrics of the specified font. - * - * @param font specified Font - * @return FontMetrics object corresponding to the specified Font object - */ - public FontMetrics getFontMetrics(Font font) { - FontMetrics fm; - for (FontMetrics element : cacheFM) { - fm = element; - if (fm == null){ - break; - } - - if (fm.getFont().equals(font)){ - return fm; - } - } - fm = new FontMetricsImpl(font); - - System.arraycopy(cacheFM, 0, cacheFM, 1, cacheFM.length -1); - cacheFM[0] = fm; - - return fm; - } // Font methods - public FontPeer getFontPeer(Font font) { return getFontManager().getFontPeer(font.getName(), font.getStyle(), font.getSize()); } Index: modules/awt/src/main/java/common/org/apache/harmony/awt/wtk/GraphicsFactory.java =================================================================== --- modules/awt/src/main/java/common/org/apache/harmony/awt/wtk/GraphicsFactory.java (revision 551512) +++ modules/awt/src/main/java/common/org/apache/harmony/awt/wtk/GraphicsFactory.java (working copy) @@ -34,7 +34,6 @@ * and font stuff instances factories. */ public interface GraphicsFactory { - static final FontMetrics cacheFM[] = new FontMetrics[10]; /** * This method creates Graphics2D instance for specified native window. @@ -70,7 +69,6 @@ GraphicsEnvironment createGraphicsEnvironment(WindowFactory wf); // Font methods - FontMetrics getFontMetrics(Font font); FontManager getFontManager(); FontPeer getFontPeer(Font font); Font embedFont(String fontFilePath);