}
    private static EncodingInfo[] loadEncodingInfo()    {        URL url = null;        try        {            String urlString = null;            InputStream is = null;            try            {                urlString = System.getProperty(ENCODINGS_PROP, "");            }            catch (SecurityException e)            {            }            if (urlString != null && urlString.length() > 0) {                url = new URL(urlString);                is = url.openStream();            }            if (is == null) {                SecuritySupport ss = SecuritySupport.getInstance();                is = ss.getResourceAsStream(ObjectFactory.findClassLoader(),                                            ENCODINGS_FILE);            }            Properties props = new Properties();            if (is != null) {                props.load(is);                is.close();            } else {                // Seems to be no real need to force failure here, let the                // system do its best... The issue is not really very critical,                // and the output will be in any case _correct_ though maybe not                // always human-friendly... :)                // But maybe report/log the resource problem?                // Any standard ways to report/log errors (in static context)?            }            int totalEntries = props.size();            int totalMimeNames = 0;            Enumeration keys = props.keys();            for (int i = 0; i < totalEntries; ++i)            {                String javaName = (String) keys.nextElement();                String val = props.getProperty(javaName);                totalMimeNames++;                int pos = val.indexOf(' ');                for (int j = 0; j < pos; ++j)                    if (val.charAt(j) == ',')                        totalMimeNames++;            }            EncodingInfo[] ret = new EncodingInfo[totalMimeNames];            int j = 0;            keys = props.keys();            for (int i = 0; i < totalEntries; ++i)            {                String javaName = (String) keys.nextElement();                String val = props.getProperty(javaName);                int pos = val.indexOf(' ');                String mimeName;                //int lastPrintable;                if (pos < 0)                {                    // Maybe report/log this problem?                    //  "Last printable character not defined for encoding " +                    //  mimeName + " (" + val + ")" ...                    mimeName = val;                   // lastPrintable = 0x00FF;                }                else                {//                    lastPrintable =//                        Integer.decode(val.substring(pos).trim()).intValue();                    StringTokenizer st =                        new StringTokenizer(val.substring(0, pos), ",");                    for (boolean first = true;                        st.hasMoreTokens();                        first = false)                    {                        mimeName = st.nextToken();                        ret[j] =                            new EncodingInfo(mimeName, javaName);                        _encodingTableKeyMime.put(                            mimeName.toUpperCase(),                            ret[j]);                        if (first)                            _encodingTableKeyJava.put(                                javaName.toUpperCase(),                                ret[j]);                        j++;                    }                }            }            return ret;        }        catch (java.net.MalformedURLException mue)        {            throw new org.apache.xml.serializer.utils.WrappedRuntimeException(mue);        }        catch (java.io.IOException ioe)        {            throw new org.apache.xml.serializer.utils.WrappedRuntimeException(ioe);        }    }