diff src/org/eclipse/jetty/http/MimeTypes.java @ 1020:6be43ef1eb96

HttpHeaderValues uses StringCache
author Franklin Schmidt <fschmidt@gmail.com>
date Mon, 31 Oct 2016 22:24:41 -0600
parents 8e9db0bbf4f9
children 27f3dc761452
line wrap: on
line diff
--- a/src/org/eclipse/jetty/http/MimeTypes.java	Mon Oct 31 03:33:42 2016 -0600
+++ b/src/org/eclipse/jetty/http/MimeTypes.java	Mon Oct 31 22:24:41 2016 -0600
@@ -39,338 +39,338 @@
  */
 public class MimeTypes
 {
-    private static final Logger LOG = LoggerFactory.getLogger(MimeTypes.class);
+	private static final Logger LOG = LoggerFactory.getLogger(MimeTypes.class);
 
-    public final static String
-      FORM_ENCODED="application/x-www-form-urlencoded",
-      MESSAGE_HTTP="message/http",
-      MULTIPART_BYTERANGES="multipart/byteranges",
-      
-      TEXT_HTML="text/html",
-      TEXT_PLAIN="text/plain",
-      TEXT_XML="text/xml",
-      TEXT_JSON="text/json",
-      
-      TEXT_HTML_8859_1="text/html;charset=ISO-8859-1",
-      TEXT_PLAIN_8859_1="text/plain;charset=ISO-8859-1",
-      TEXT_XML_8859_1="text/xml;charset=ISO-8859-1",
-      
-      TEXT_HTML_UTF_8="text/html;charset=UTF-8",
-      TEXT_PLAIN_UTF_8="text/plain;charset=UTF-8",
-      TEXT_XML_UTF_8="text/xml;charset=UTF-8",
-      TEXT_JSON_UTF_8="text/json;charset=UTF-8";
+	public final static String
+	  FORM_ENCODED="application/x-www-form-urlencoded",
+	  MESSAGE_HTTP="message/http",
+	  MULTIPART_BYTERANGES="multipart/byteranges",
+	  
+	  TEXT_HTML="text/html",
+	  TEXT_PLAIN="text/plain",
+	  TEXT_XML="text/xml",
+	  TEXT_JSON="text/json",
+	  
+	  TEXT_HTML_8859_1="text/html;charset=ISO-8859-1",
+	  TEXT_PLAIN_8859_1="text/plain;charset=ISO-8859-1",
+	  TEXT_XML_8859_1="text/xml;charset=ISO-8859-1",
+	  
+	  TEXT_HTML_UTF_8="text/html;charset=UTF-8",
+	  TEXT_PLAIN_UTF_8="text/plain;charset=UTF-8",
+	  TEXT_XML_UTF_8="text/xml;charset=UTF-8",
+	  TEXT_JSON_UTF_8="text/json;charset=UTF-8";
 
-    private final static String
-      TEXT_HTML__8859_1="text/html; charset=ISO-8859-1",
-      TEXT_PLAIN__8859_1="text/plain; charset=ISO-8859-1",
-      TEXT_XML__8859_1="text/xml; charset=ISO-8859-1",
-      TEXT_HTML__UTF_8="text/html; charset=UTF-8",
-      TEXT_PLAIN__UTF_8="text/plain; charset=UTF-8",
-      TEXT_XML__UTF_8="text/xml; charset=UTF-8",
-      TEXT_JSON__UTF_8="text/json; charset=UTF-8";
+	private final static String
+	  TEXT_HTML__8859_1="text/html; charset=ISO-8859-1",
+	  TEXT_PLAIN__8859_1="text/plain; charset=ISO-8859-1",
+	  TEXT_XML__8859_1="text/xml; charset=ISO-8859-1",
+	  TEXT_HTML__UTF_8="text/html; charset=UTF-8",
+	  TEXT_PLAIN__UTF_8="text/plain; charset=UTF-8",
+	  TEXT_XML__UTF_8="text/xml; charset=UTF-8",
+	  TEXT_JSON__UTF_8="text/json; charset=UTF-8";
 
-    private final static int
+	private final static int
 	FORM_ENCODED_ORDINAL=1,
-    	MESSAGE_HTTP_ORDINAL=2,
-    	MULTIPART_BYTERANGES_ORDINAL=3,
-    	
-    	TEXT_HTML_ORDINAL=4,
+		MESSAGE_HTTP_ORDINAL=2,
+		MULTIPART_BYTERANGES_ORDINAL=3,
+		
+		TEXT_HTML_ORDINAL=4,
 	TEXT_PLAIN_ORDINAL=5,
 	TEXT_XML_ORDINAL=6,
-        TEXT_JSON_ORDINAL=7,
+		TEXT_JSON_ORDINAL=7,
 	
-        TEXT_HTML_8859_1_ORDINAL=8,
-        TEXT_PLAIN_8859_1_ORDINAL=9,
-        TEXT_XML_8859_1_ORDINAL=10,
-        
-        TEXT_HTML_UTF_8_ORDINAL=11,
-        TEXT_PLAIN_UTF_8_ORDINAL=12,
-        TEXT_XML_UTF_8_ORDINAL=13,
-        TEXT_JSON_UTF_8_ORDINAL=14;
-    
-    private static int __index=15;
-    
-    public final static BufferCache CACHE = new BufferCache(); 
+		TEXT_HTML_8859_1_ORDINAL=8,
+		TEXT_PLAIN_8859_1_ORDINAL=9,
+		TEXT_XML_8859_1_ORDINAL=10,
+		
+		TEXT_HTML_UTF_8_ORDINAL=11,
+		TEXT_PLAIN_UTF_8_ORDINAL=12,
+		TEXT_XML_UTF_8_ORDINAL=13,
+		TEXT_JSON_UTF_8_ORDINAL=14;
+	
+	private static int __index=15;
+	
+	public final static BufferCache CACHE = new BufferCache(); 
 
-    public final static CachedBuffer
-    	FORM_ENCODED_BUFFER=CACHE.add(FORM_ENCODED,FORM_ENCODED_ORDINAL),
-    	MESSAGE_HTTP_BUFFER=CACHE.add(MESSAGE_HTTP, MESSAGE_HTTP_ORDINAL),
-    	MULTIPART_BYTERANGES_BUFFER=CACHE.add(MULTIPART_BYTERANGES,MULTIPART_BYTERANGES_ORDINAL),
-        
-        TEXT_HTML_BUFFER=CACHE.add(TEXT_HTML,TEXT_HTML_ORDINAL),
-        TEXT_PLAIN_BUFFER=CACHE.add(TEXT_PLAIN,TEXT_PLAIN_ORDINAL),
-        TEXT_XML_BUFFER=CACHE.add(TEXT_XML,TEXT_XML_ORDINAL),
-        TEXT_JSON_BUFFER=CACHE.add(TEXT_JSON,TEXT_JSON_ORDINAL),
+	public final static CachedBuffer
+		FORM_ENCODED_BUFFER=CACHE.add(FORM_ENCODED,FORM_ENCODED_ORDINAL),
+		MESSAGE_HTTP_BUFFER=CACHE.add(MESSAGE_HTTP, MESSAGE_HTTP_ORDINAL),
+		MULTIPART_BYTERANGES_BUFFER=CACHE.add(MULTIPART_BYTERANGES,MULTIPART_BYTERANGES_ORDINAL),
+		
+		TEXT_HTML_BUFFER=CACHE.add(TEXT_HTML,TEXT_HTML_ORDINAL),
+		TEXT_PLAIN_BUFFER=CACHE.add(TEXT_PLAIN,TEXT_PLAIN_ORDINAL),
+		TEXT_XML_BUFFER=CACHE.add(TEXT_XML,TEXT_XML_ORDINAL),
+		TEXT_JSON_BUFFER=CACHE.add(TEXT_JSON,TEXT_JSON_ORDINAL),
 
-        TEXT_HTML_8859_1_BUFFER=CACHE.add(TEXT_HTML_8859_1,TEXT_HTML_8859_1_ORDINAL),
-        TEXT_PLAIN_8859_1_BUFFER=CACHE.add(TEXT_PLAIN_8859_1,TEXT_PLAIN_8859_1_ORDINAL),
-        TEXT_XML_8859_1_BUFFER=CACHE.add(TEXT_XML_8859_1,TEXT_XML_8859_1_ORDINAL),
-        
-        TEXT_HTML_UTF_8_BUFFER=CACHE.add(TEXT_HTML_UTF_8,TEXT_HTML_UTF_8_ORDINAL),
-        TEXT_PLAIN_UTF_8_BUFFER=CACHE.add(TEXT_PLAIN_UTF_8,TEXT_PLAIN_UTF_8_ORDINAL),
-        TEXT_XML_UTF_8_BUFFER=CACHE.add(TEXT_XML_UTF_8,TEXT_XML_UTF_8_ORDINAL),
-        TEXT_JSON_UTF_8_BUFFER=CACHE.add(TEXT_JSON_UTF_8,TEXT_JSON_UTF_8_ORDINAL),
+		TEXT_HTML_8859_1_BUFFER=CACHE.add(TEXT_HTML_8859_1,TEXT_HTML_8859_1_ORDINAL),
+		TEXT_PLAIN_8859_1_BUFFER=CACHE.add(TEXT_PLAIN_8859_1,TEXT_PLAIN_8859_1_ORDINAL),
+		TEXT_XML_8859_1_BUFFER=CACHE.add(TEXT_XML_8859_1,TEXT_XML_8859_1_ORDINAL),
+		
+		TEXT_HTML_UTF_8_BUFFER=CACHE.add(TEXT_HTML_UTF_8,TEXT_HTML_UTF_8_ORDINAL),
+		TEXT_PLAIN_UTF_8_BUFFER=CACHE.add(TEXT_PLAIN_UTF_8,TEXT_PLAIN_UTF_8_ORDINAL),
+		TEXT_XML_UTF_8_BUFFER=CACHE.add(TEXT_XML_UTF_8,TEXT_XML_UTF_8_ORDINAL),
+		TEXT_JSON_UTF_8_BUFFER=CACHE.add(TEXT_JSON_UTF_8,TEXT_JSON_UTF_8_ORDINAL),
 
-        TEXT_HTML__8859_1_BUFFER=CACHE.add(TEXT_HTML__8859_1,TEXT_HTML_8859_1_ORDINAL),
-        TEXT_PLAIN__8859_1_BUFFER=CACHE.add(TEXT_PLAIN__8859_1,TEXT_PLAIN_8859_1_ORDINAL),
-        TEXT_XML__8859_1_BUFFER=CACHE.add(TEXT_XML__8859_1,TEXT_XML_8859_1_ORDINAL),
-        
-        TEXT_HTML__UTF_8_BUFFER=CACHE.add(TEXT_HTML__UTF_8,TEXT_HTML_UTF_8_ORDINAL),
-        TEXT_PLAIN__UTF_8_BUFFER=CACHE.add(TEXT_PLAIN__UTF_8,TEXT_PLAIN_UTF_8_ORDINAL),
-        TEXT_XML__UTF_8_BUFFER=CACHE.add(TEXT_XML__UTF_8,TEXT_XML_UTF_8_ORDINAL),
-        TEXT_JSON__UTF_8_BUFFER=CACHE.add(TEXT_JSON__UTF_8,TEXT_JSON_UTF_8_ORDINAL);
+		TEXT_HTML__8859_1_BUFFER=CACHE.add(TEXT_HTML__8859_1,TEXT_HTML_8859_1_ORDINAL),
+		TEXT_PLAIN__8859_1_BUFFER=CACHE.add(TEXT_PLAIN__8859_1,TEXT_PLAIN_8859_1_ORDINAL),
+		TEXT_XML__8859_1_BUFFER=CACHE.add(TEXT_XML__8859_1,TEXT_XML_8859_1_ORDINAL),
+		
+		TEXT_HTML__UTF_8_BUFFER=CACHE.add(TEXT_HTML__UTF_8,TEXT_HTML_UTF_8_ORDINAL),
+		TEXT_PLAIN__UTF_8_BUFFER=CACHE.add(TEXT_PLAIN__UTF_8,TEXT_PLAIN_UTF_8_ORDINAL),
+		TEXT_XML__UTF_8_BUFFER=CACHE.add(TEXT_XML__UTF_8,TEXT_XML_UTF_8_ORDINAL),
+		TEXT_JSON__UTF_8_BUFFER=CACHE.add(TEXT_JSON__UTF_8,TEXT_JSON_UTF_8_ORDINAL);
 
-    
-    /* ------------------------------------------------------------ */
-    /* ------------------------------------------------------------ */
-    private final static Map __dftMimeMap = new HashMap();
-    private final static Map __encodings = new HashMap();
-    static
-    {
-        try
-        {
-            ResourceBundle mime = ResourceBundle.getBundle("org/eclipse/jetty/http/mime");
-            Enumeration i = mime.getKeys();
-            while(i.hasMoreElements())
-            {
-                String ext = (String)i.nextElement();
-                String m = mime.getString(ext);
-                __dftMimeMap.put(StringUtil.asciiToLowerCase(ext),normalizeMimeType(m));
-            }
-        }
-        catch(MissingResourceException e)
-        {
-            LOG.warn(e.toString());
-            LOG.debug("",e);
-        }
+	
+	/* ------------------------------------------------------------ */
+	/* ------------------------------------------------------------ */
+	private final static Map __dftMimeMap = new HashMap();
+	private final static Map __encodings = new HashMap();
+	static
+	{
+		try
+		{
+			ResourceBundle mime = ResourceBundle.getBundle("org/eclipse/jetty/http/mime");
+			Enumeration i = mime.getKeys();
+			while(i.hasMoreElements())
+			{
+				String ext = (String)i.nextElement();
+				String m = mime.getString(ext);
+				__dftMimeMap.put(StringUtil.asciiToLowerCase(ext),normalizeMimeType(m));
+			}
+		}
+		catch(MissingResourceException e)
+		{
+			LOG.warn(e.toString());
+			LOG.debug("",e);
+		}
 
-        try
-        {
-            ResourceBundle encoding = ResourceBundle.getBundle("org/eclipse/jetty/http/encoding");
-            Enumeration i = encoding.getKeys();
-            while(i.hasMoreElements())
-            {
-                Buffer type = normalizeMimeType((String)i.nextElement());
-                __encodings.put(type,encoding.getString(type.toString()));
-            }
-        }
-        catch(MissingResourceException e)
-        {
-            LOG.warn(e.toString());
-            LOG.debug("",e);
-        }
+		try
+		{
+			ResourceBundle encoding = ResourceBundle.getBundle("org/eclipse/jetty/http/encoding");
+			Enumeration i = encoding.getKeys();
+			while(i.hasMoreElements())
+			{
+				Buffer type = normalizeMimeType((String)i.nextElement());
+				__encodings.put(type,encoding.getString(type.toString()));
+			}
+		}
+		catch(MissingResourceException e)
+		{
+			LOG.warn(e.toString());
+			LOG.debug("",e);
+		}
 
-        
-        TEXT_HTML_BUFFER.setAssociate("ISO-8859-1",TEXT_HTML_8859_1_BUFFER);
-        TEXT_HTML_BUFFER.setAssociate("ISO_8859_1",TEXT_HTML_8859_1_BUFFER);
-        TEXT_HTML_BUFFER.setAssociate("iso-8859-1",TEXT_HTML_8859_1_BUFFER);
-        TEXT_PLAIN_BUFFER.setAssociate("ISO-8859-1",TEXT_PLAIN_8859_1_BUFFER);
-        TEXT_PLAIN_BUFFER.setAssociate("ISO_8859_1",TEXT_PLAIN_8859_1_BUFFER);
-        TEXT_PLAIN_BUFFER.setAssociate("iso-8859-1",TEXT_PLAIN_8859_1_BUFFER);
-        TEXT_XML_BUFFER.setAssociate("ISO-8859-1",TEXT_XML_8859_1_BUFFER);
-        TEXT_XML_BUFFER.setAssociate("ISO_8859_1",TEXT_XML_8859_1_BUFFER);
-        TEXT_XML_BUFFER.setAssociate("iso-8859-1",TEXT_XML_8859_1_BUFFER);
+		
+		TEXT_HTML_BUFFER.setAssociate("ISO-8859-1",TEXT_HTML_8859_1_BUFFER);
+		TEXT_HTML_BUFFER.setAssociate("ISO_8859_1",TEXT_HTML_8859_1_BUFFER);
+		TEXT_HTML_BUFFER.setAssociate("iso-8859-1",TEXT_HTML_8859_1_BUFFER);
+		TEXT_PLAIN_BUFFER.setAssociate("ISO-8859-1",TEXT_PLAIN_8859_1_BUFFER);
+		TEXT_PLAIN_BUFFER.setAssociate("ISO_8859_1",TEXT_PLAIN_8859_1_BUFFER);
+		TEXT_PLAIN_BUFFER.setAssociate("iso-8859-1",TEXT_PLAIN_8859_1_BUFFER);
+		TEXT_XML_BUFFER.setAssociate("ISO-8859-1",TEXT_XML_8859_1_BUFFER);
+		TEXT_XML_BUFFER.setAssociate("ISO_8859_1",TEXT_XML_8859_1_BUFFER);
+		TEXT_XML_BUFFER.setAssociate("iso-8859-1",TEXT_XML_8859_1_BUFFER);
 
-        TEXT_HTML_BUFFER.setAssociate("UTF-8",TEXT_HTML_UTF_8_BUFFER);
-        TEXT_HTML_BUFFER.setAssociate("UTF8",TEXT_HTML_UTF_8_BUFFER);
-        TEXT_HTML_BUFFER.setAssociate("utf8",TEXT_HTML_UTF_8_BUFFER);
-        TEXT_HTML_BUFFER.setAssociate("utf-8",TEXT_HTML_UTF_8_BUFFER);
-        TEXT_PLAIN_BUFFER.setAssociate("UTF-8",TEXT_PLAIN_UTF_8_BUFFER);
-        TEXT_PLAIN_BUFFER.setAssociate("UTF8",TEXT_PLAIN_UTF_8_BUFFER);
-        TEXT_PLAIN_BUFFER.setAssociate("utf8",TEXT_PLAIN_UTF_8_BUFFER);
-        TEXT_PLAIN_BUFFER.setAssociate("utf-8",TEXT_PLAIN_UTF_8_BUFFER);
-        TEXT_XML_BUFFER.setAssociate("UTF-8",TEXT_XML_UTF_8_BUFFER);
-        TEXT_XML_BUFFER.setAssociate("UTF8",TEXT_XML_UTF_8_BUFFER);
-        TEXT_XML_BUFFER.setAssociate("utf8",TEXT_XML_UTF_8_BUFFER);
-        TEXT_XML_BUFFER.setAssociate("utf-8",TEXT_XML_UTF_8_BUFFER);
-        TEXT_JSON_BUFFER.setAssociate("UTF-8",TEXT_JSON_UTF_8_BUFFER);
-        TEXT_JSON_BUFFER.setAssociate("UTF8",TEXT_JSON_UTF_8_BUFFER);
-        TEXT_JSON_BUFFER.setAssociate("utf8",TEXT_JSON_UTF_8_BUFFER);
-        TEXT_JSON_BUFFER.setAssociate("utf-8",TEXT_JSON_UTF_8_BUFFER);
-    }
+		TEXT_HTML_BUFFER.setAssociate("UTF-8",TEXT_HTML_UTF_8_BUFFER);
+		TEXT_HTML_BUFFER.setAssociate("UTF8",TEXT_HTML_UTF_8_BUFFER);
+		TEXT_HTML_BUFFER.setAssociate("utf8",TEXT_HTML_UTF_8_BUFFER);
+		TEXT_HTML_BUFFER.setAssociate("utf-8",TEXT_HTML_UTF_8_BUFFER);
+		TEXT_PLAIN_BUFFER.setAssociate("UTF-8",TEXT_PLAIN_UTF_8_BUFFER);
+		TEXT_PLAIN_BUFFER.setAssociate("UTF8",TEXT_PLAIN_UTF_8_BUFFER);
+		TEXT_PLAIN_BUFFER.setAssociate("utf8",TEXT_PLAIN_UTF_8_BUFFER);
+		TEXT_PLAIN_BUFFER.setAssociate("utf-8",TEXT_PLAIN_UTF_8_BUFFER);
+		TEXT_XML_BUFFER.setAssociate("UTF-8",TEXT_XML_UTF_8_BUFFER);
+		TEXT_XML_BUFFER.setAssociate("UTF8",TEXT_XML_UTF_8_BUFFER);
+		TEXT_XML_BUFFER.setAssociate("utf8",TEXT_XML_UTF_8_BUFFER);
+		TEXT_XML_BUFFER.setAssociate("utf-8",TEXT_XML_UTF_8_BUFFER);
+		TEXT_JSON_BUFFER.setAssociate("UTF-8",TEXT_JSON_UTF_8_BUFFER);
+		TEXT_JSON_BUFFER.setAssociate("UTF8",TEXT_JSON_UTF_8_BUFFER);
+		TEXT_JSON_BUFFER.setAssociate("utf8",TEXT_JSON_UTF_8_BUFFER);
+		TEXT_JSON_BUFFER.setAssociate("utf-8",TEXT_JSON_UTF_8_BUFFER);
+	}
 
 
-    /* ------------------------------------------------------------ */
-    private Map _mimeMap;
-    
-    /* ------------------------------------------------------------ */
-    /** Constructor.
-     */
-    public MimeTypes()
-    {
-    }
+	/* ------------------------------------------------------------ */
+	private Map _mimeMap;
+	
+	/* ------------------------------------------------------------ */
+	/** Constructor.
+	 */
+	public MimeTypes()
+	{
+	}
 
-    /* ------------------------------------------------------------ */
-    public synchronized Map getMimeMap()
-    {
-        return _mimeMap;
-    }
+	/* ------------------------------------------------------------ */
+	public synchronized Map getMimeMap()
+	{
+		return _mimeMap;
+	}
 
-    /* ------------------------------------------------------------ */
-    /**
-     * @param mimeMap A Map of file extension to mime-type.
-     */
-    public void setMimeMap(Map mimeMap)
-    {
-        if (mimeMap==null)
-        {
-            _mimeMap=null;
-            return;
-        }
-        
-        Map m=new HashMap();
-        Iterator i=mimeMap.entrySet().iterator();
-        while (i.hasNext())
-        {
-            Map.Entry entry = (Map.Entry)i.next();
-            m.put(entry.getKey(),normalizeMimeType(entry.getValue().toString()));
-        }
-        _mimeMap=m;
-    }
+	/* ------------------------------------------------------------ */
+	/**
+	 * @param mimeMap A Map of file extension to mime-type.
+	 */
+	public void setMimeMap(Map mimeMap)
+	{
+		if (mimeMap==null)
+		{
+			_mimeMap=null;
+			return;
+		}
+		
+		Map m=new HashMap();
+		Iterator i=mimeMap.entrySet().iterator();
+		while (i.hasNext())
+		{
+			Map.Entry entry = (Map.Entry)i.next();
+			m.put(entry.getKey(),normalizeMimeType(entry.getValue().toString()));
+		}
+		_mimeMap=m;
+	}
 
-    /* ------------------------------------------------------------ */
-    /** Get the MIME type by filename extension.
-     * @param filename A file name
-     * @return MIME type matching the longest dot extension of the
-     * file name.
-     */
-    public Buffer getMimeByExtension(String filename)
-    {
-        Buffer type=null;
+	/* ------------------------------------------------------------ */
+	/** Get the MIME type by filename extension.
+	 * @param filename A file name
+	 * @return MIME type matching the longest dot extension of the
+	 * file name.
+	 */
+	public Buffer getMimeByExtension(String filename)
+	{
+		Buffer type=null;
 
-        if (filename!=null)
-        {
-            int i=-1;
-            while(type==null)
-            {
-                i=filename.indexOf(".",i+1);
+		if (filename!=null)
+		{
+			int i=-1;
+			while(type==null)
+			{
+				i=filename.indexOf(".",i+1);
 
-                if (i<0 || i>=filename.length())
-                    break;
+				if (i<0 || i>=filename.length())
+					break;
 
-                String ext=StringUtil.asciiToLowerCase(filename.substring(i+1));
-                if (_mimeMap!=null)
-                    type = (Buffer)_mimeMap.get(ext);
-                if (type==null)
-                    type=(Buffer)__dftMimeMap.get(ext);
-            }
-        }
+				String ext=StringUtil.asciiToLowerCase(filename.substring(i+1));
+				if (_mimeMap!=null)
+					type = (Buffer)_mimeMap.get(ext);
+				if (type==null)
+					type=(Buffer)__dftMimeMap.get(ext);
+			}
+		}
 
-        if (type==null)
-        {
-            if (_mimeMap!=null)
-                type=(Buffer)_mimeMap.get("*");
-             if (type==null)
-                 type=(Buffer)__dftMimeMap.get("*");
-        }
+		if (type==null)
+		{
+			if (_mimeMap!=null)
+				type=(Buffer)_mimeMap.get("*");
+			 if (type==null)
+				 type=(Buffer)__dftMimeMap.get("*");
+		}
 
-        return type;
-    }
+		return type;
+	}
 
-    /* ------------------------------------------------------------ */
-    /** Set a mime mapping
-     * @param extension
-     * @param type
-     */
-    public void addMimeMapping(String extension,String type)
-    {
-        if (_mimeMap==null)
-            _mimeMap=new HashMap();
-        
-        _mimeMap.put(StringUtil.asciiToLowerCase(extension),normalizeMimeType(type));
-    }
+	/* ------------------------------------------------------------ */
+	/** Set a mime mapping
+	 * @param extension
+	 * @param type
+	 */
+	public void addMimeMapping(String extension,String type)
+	{
+		if (_mimeMap==null)
+			_mimeMap=new HashMap();
+		
+		_mimeMap.put(StringUtil.asciiToLowerCase(extension),normalizeMimeType(type));
+	}
 
-    /* ------------------------------------------------------------ */
-    private static synchronized Buffer normalizeMimeType(String type)
-    {
-        Buffer b =CACHE.get(type);
-        if (b==null)
-            b=CACHE.add(type,__index++);
-        return b;
-    }
+	/* ------------------------------------------------------------ */
+	private static synchronized Buffer normalizeMimeType(String type)
+	{
+		Buffer b =CACHE.get(type);
+		if (b==null)
+			b=CACHE.add(type,__index++);
+		return b;
+	}
 
-    /* ------------------------------------------------------------ */
-    public static String getCharsetFromContentType(Buffer value)
-    {
-        if (value instanceof CachedBuffer)
-        {
-            switch(((CachedBuffer)value).getOrdinal())
-            {
-                case TEXT_HTML_8859_1_ORDINAL:
-                case TEXT_PLAIN_8859_1_ORDINAL:
-                case TEXT_XML_8859_1_ORDINAL:
-                    return StringUtil.__ISO_8859_1;
+	/* ------------------------------------------------------------ */
+	public static String getCharsetFromContentType(Buffer value)
+	{
+		if (value instanceof CachedBuffer)
+		{
+			switch(((CachedBuffer)value).getOrdinal())
+			{
+				case TEXT_HTML_8859_1_ORDINAL:
+				case TEXT_PLAIN_8859_1_ORDINAL:
+				case TEXT_XML_8859_1_ORDINAL:
+					return StringUtil.__ISO_8859_1;
 
-                case TEXT_HTML_UTF_8_ORDINAL:
-                case TEXT_PLAIN_UTF_8_ORDINAL:
-                case TEXT_XML_UTF_8_ORDINAL:
-                case TEXT_JSON_UTF_8_ORDINAL:
-                    return StringUtil.__UTF8;
-            }
-        }
-        
-        int i=value.getIndex();
-        int end=value.putIndex();
-        int state=0;
-        int start=0;
-        boolean quote=false;
-        for (;i<end;i++)
-        {
-            byte b = value.peek(i);
-            
-            if (quote && state!=10)
-            {
-                if ('"'==b)
-                    quote=false;
-                continue;
-            }
-                
-            switch(state)
-            {
-                case 0:
-                    if ('"'==b)
-                    {
-                        quote=true;
-                        break;
-                    }
-                    if (';'==b)
-                        state=1;
-                    break;
+				case TEXT_HTML_UTF_8_ORDINAL:
+				case TEXT_PLAIN_UTF_8_ORDINAL:
+				case TEXT_XML_UTF_8_ORDINAL:
+				case TEXT_JSON_UTF_8_ORDINAL:
+					return StringUtil.__UTF8;
+			}
+		}
+		
+		int i=value.getIndex();
+		int end=value.putIndex();
+		int state=0;
+		int start=0;
+		boolean quote=false;
+		for (;i<end;i++)
+		{
+			byte b = value.peek(i);
+			
+			if (quote && state!=10)
+			{
+				if ('"'==b)
+					quote=false;
+				continue;
+			}
+				
+			switch(state)
+			{
+				case 0:
+					if ('"'==b)
+					{
+						quote=true;
+						break;
+					}
+					if (';'==b)
+						state=1;
+					break;
 
-                case 1: if ('c'==b) state=2; else if (' '!=b) state=0; break;
-                case 2: if ('h'==b) state=3; else state=0;break;
-                case 3: if ('a'==b) state=4; else state=0;break;
-                case 4: if ('r'==b) state=5; else state=0;break;
-                case 5: if ('s'==b) state=6; else state=0;break;
-                case 6: if ('e'==b) state=7; else state=0;break;
-                case 7: if ('t'==b) state=8; else state=0;break;
+				case 1: if ('c'==b) state=2; else if (' '!=b) state=0; break;
+				case 2: if ('h'==b) state=3; else state=0;break;
+				case 3: if ('a'==b) state=4; else state=0;break;
+				case 4: if ('r'==b) state=5; else state=0;break;
+				case 5: if ('s'==b) state=6; else state=0;break;
+				case 6: if ('e'==b) state=7; else state=0;break;
+				case 7: if ('t'==b) state=8; else state=0;break;
 
-                case 8: if ('='==b) state=9; else if (' '!=b) state=0; break;
-                
-                case 9: 
-                    if (' '==b) 
-                        break;
-                    if ('"'==b) 
-                    {
-                        quote=true;
-                        start=i+1;
-                        state=10;
-                        break;
-                    }
-                    start=i;
-                    state=10;
-                    break;
-                    
-                case 10:
-                    if (!quote && (';'==b || ' '==b )||
-                        (quote && '"'==b ))
-                        return CACHE.lookup(value.peek(start,i-start)).toString(StringUtil.__UTF8);
-            }
-        }    
-        
-        if (state==10)
-            return CACHE.lookup(value.peek(start,i-start)).toString(StringUtil.__UTF8);
-        
-        return (String)__encodings.get(value);
-    }
+				case 8: if ('='==b) state=9; else if (' '!=b) state=0; break;
+				
+				case 9: 
+					if (' '==b) 
+						break;
+					if ('"'==b) 
+					{
+						quote=true;
+						start=i+1;
+						state=10;
+						break;
+					}
+					start=i;
+					state=10;
+					break;
+					
+				case 10:
+					if (!quote && (';'==b || ' '==b )||
+						(quote && '"'==b ))
+						return CACHE.lookup(value.peek(start,i-start)).toString(StringUtil.__UTF8);
+			}
+		}    
+		
+		if (state==10)
+			return CACHE.lookup(value.peek(start,i-start)).toString(StringUtil.__UTF8);
+		
+		return (String)__encodings.get(value);
+	}
 }