diff -r 295640d080fd javafx-ui-webnode/src/com/sun/webpane/platform/Utilities.java --- a/javafx-ui-webnode/src/com/sun/webpane/platform/Utilities.java Tue Sep 06 20:55:14 2011 +0400 +++ b/javafx-ui-webnode/src/com/sun/webpane/platform/Utilities.java Wed Sep 07 17:49:44 2011 +0400 @@ -2,6 +2,8 @@ import com.sun.webpane.platform.graphics.WCImage; import com.sun.webpane.platform.graphics.WCRectangle; +import java.util.HashMap; +import java.util.Map; public abstract class Utilities { @@ -15,20 +17,45 @@ return instance; } - public abstract String getMIMETypeForExtension(String ext); - public abstract WCImage getIconImage(String iconURL); public abstract Object toPlatformImage(WCImage image); - + private static String fwkGetMIMETypeForExtension(String ext) { - if (instance == null) { - return ""; - } - return instance.getMIMETypeForExtension(ext); + return MimeTypeMapHolder.MIME_TYPE_MAP.get(ext); } + private static Map createMimeTypeMap() { + Map mimeTypeMap = new HashMap(20); + mimeTypeMap.put("txt", "text/plain"); + mimeTypeMap.put("html", "text/html"); + mimeTypeMap.put("htm", "text/html"); + mimeTypeMap.put("css", "text/css"); + mimeTypeMap.put("xml", "text/xml"); + mimeTypeMap.put("xsl", "text/xsl"); + mimeTypeMap.put("js", "application/x-javascript"); + mimeTypeMap.put("xhtml", "application/xhtml+xml"); + mimeTypeMap.put("svg", "image/svg+xml"); + mimeTypeMap.put("svgz", "image/svg+xml"); + mimeTypeMap.put("gif", "image/gif"); + mimeTypeMap.put("jpg", "image/jpeg"); + mimeTypeMap.put("jpeg", "image/jpeg"); + mimeTypeMap.put("png", "image/png"); + mimeTypeMap.put("tif", "image/tiff"); + mimeTypeMap.put("tiff", "image/tiff"); + mimeTypeMap.put("ico", "image/ico"); + mimeTypeMap.put("cur", "image/ico"); + mimeTypeMap.put("bmp", "image/bmp"); + return mimeTypeMap; + } + + // Initialization on Demand Holder + private static final class MimeTypeMapHolder { + private static final Map MIME_TYPE_MAP = + createMimeTypeMap(); + } + private static String[] fwkGetExtensionsForMIMEType(String type) { if ("application/x-shockwave-flash".equalsIgnoreCase(type)) { return new String[] {"swf", "flv"}; diff -r 295640d080fd webnode-prism/src/com/sun/webpane/sg/prism/UtilitiesImpl.java --- a/webnode-prism/src/com/sun/webpane/sg/prism/UtilitiesImpl.java Tue Sep 06 20:55:14 2011 +0400 +++ b/webnode-prism/src/com/sun/webpane/sg/prism/UtilitiesImpl.java Wed Sep 07 17:49:44 2011 +0400 @@ -2,13 +2,11 @@ import com.sun.webpane.platform.Utilities; import com.sun.webpane.platform.graphics.WCImage; -import java.util.HashMap; import java.util.logging.Logger; public class UtilitiesImpl extends Utilities { private final static Logger log = Logger.getLogger("com.sun.webpane.sg.prism.UtilitiesImpl"); - private static HashMap mimetypeMap = null; @Override public WCImage getIconImage(String iconURL) { @@ -17,33 +15,6 @@ } @Override - public String getMIMETypeForExtension(String ext) { - if (mimetypeMap == null) { - mimetypeMap = new HashMap(20); - mimetypeMap.put("txt", "text/plain"); - mimetypeMap.put("html", "text/html"); - mimetypeMap.put("htm", "text/html"); - mimetypeMap.put("css", "text/css"); - mimetypeMap.put("xml", "text/xml"); - mimetypeMap.put("xsl", "text/xsl"); - mimetypeMap.put("js", "application/x-javascript"); - mimetypeMap.put("xhtml", "application/xhtml+xml"); - mimetypeMap.put("svg", "image/svg+xml"); - mimetypeMap.put("svgz", "image/svg+xml"); - mimetypeMap.put("gif", "image/gif"); - mimetypeMap.put("jpg", "image/jpeg"); - mimetypeMap.put("jpeg", "image/jpeg"); - mimetypeMap.put("png", "image/png"); - mimetypeMap.put("tif", "image/tiff"); - mimetypeMap.put("tiff", "image/tiff"); - mimetypeMap.put("ico", "image/ico"); - mimetypeMap.put("cur", "image/ico"); - mimetypeMap.put("bmp", "image/bmp"); - } - return mimetypeMap.get(ext); - } - - @Override public Object toPlatformImage(WCImage image) { return ((WCImageImpl) image).getImage(); }