class UTF8Control extends ResourceBundle.Control {
    public ResourceBundle newBundle
            (String baseName, Locale locale, String format, ClassLoader loader, boolean reload)
            throws IllegalAccessException, InstantiationException, IOException
    {<FILL_FUNCTION_BODY>}
}

        // The below is a copy of the default implementation.
        String bundleName = toBundleName(baseName, locale);
        String resourceName = toResourceName(bundleName, "properties");
        ResourceBundle bundle = null;
        InputStream stream = null;
        if (reload) {
            URL url = loader.getResource(resourceName);
            if (url != null) {
                URLConnection connection = url.openConnection();
                if (connection != null) {
                    connection.setUseCaches(false);
                    stream = connection.getInputStream();
                }
            }
        } else {
            stream = loader.getResourceAsStream(resourceName);
        }
        if (stream != null) {
            try {
                // Only this line is changed to make it to read properties files as UTF-8.
                bundle = new PropertyResourceBundle(new InputStreamReader(stream, "UTF-8"));
            } finally {
                stream.close();
            }
        }
        return bundle;
    
<methods>public List<java.util.Locale> getCandidateLocales(java.lang.String, java.util.Locale) ,public static final java.util.ResourceBundle.Control getControl(List<java.lang.String>) ,public java.util.Locale getFallbackLocale(java.lang.String, java.util.Locale) ,public List<java.lang.String> getFormats(java.lang.String) ,public static final java.util.ResourceBundle.Control getNoFallbackControl(List<java.lang.String>) ,public long getTimeToLive(java.lang.String, java.util.Locale) ,public boolean needsReload(java.lang.String, java.util.Locale, java.lang.String, java.lang.ClassLoader, java.util.ResourceBundle, long) ,public java.util.ResourceBundle newBundle(java.lang.String, java.util.Locale, java.lang.String, java.lang.ClassLoader, boolean) throws java.lang.IllegalAccessException, java.lang.InstantiationException, java.io.IOException,public java.lang.String toBundleName(java.lang.String, java.util.Locale) ,public final java.lang.String toResourceName(java.lang.String, java.lang.String) <variables>static final boolean $assertionsDisabled,private static final java.util.ResourceBundle.Control.CandidateListCache CANDIDATES_CACHE,public static final List<java.lang.String> FORMAT_CLASS,public static final List<java.lang.String> FORMAT_DEFAULT,public static final List<java.lang.String> FORMAT_PROPERTIES,private static final java.util.ResourceBundle.Control INSTANCE,public static final long TTL_DONT_CACHE,public static final long TTL_NO_EXPIRATION_CONTROL