class ResourceBundleUtf8Control extends ResourceBundle.Control {

    private static final String JAVA_CLASS = "java.class";
    private static final String JAVA_PROPERTIES = "java.properties";
    private static final String SPILT = "://";

    @Override
    public ResourceBundle newBundle(String baseName, Locale locale, String format, ClassLoader loader, boolean reload)
            throws IllegalAccessException, InstantiationException, IOException {<FILL_FUNCTION_BODY>}

    private String toResourceName0(String bundleName, String suffix) {
        // application protocol check
        if (bundleName.contains(SPILT)) {
            return null;
        } else {
            return toResourceName(bundleName, suffix);
        }
    }
}

        String bundleName = toBundleName(baseName, locale);
        ResourceBundle bundle = null;
        if (JAVA_CLASS.equals(format)) {
            try {
                @SuppressWarnings("unchecked")
                Class<? extends ResourceBundle> bundleClass
                        = (Class<? extends ResourceBundle>) loader.loadClass(bundleName);

                // If the class isn't a ResourceBundle subclass, throw a
                // ClassCastException.
                if (ResourceBundle.class.isAssignableFrom(bundleClass)) {
                    bundle = bundleClass.newInstance();
                } else {
                    throw new ClassCastException(bundleClass.getName()
                            + " cannot be cast to ResourceBundle");
                }
            } catch (ClassNotFoundException ignored) {}
        } else if (JAVA_PROPERTIES.equals(format)) {
            final String resourceName = toResourceName0(bundleName, "properties");
            if (resourceName == null) {
                return null;
            }
            final ClassLoader classLoader = loader;
            final boolean reloadFlag = reload;
            InputStream stream;
            try {
                stream = AccessController.doPrivileged(
                        (PrivilegedExceptionAction<InputStream>) () -> {
                            InputStream is = null;
                            if (reloadFlag) {
                                URL url = classLoader.getResource(resourceName);
                                if (url != null) {
                                    URLConnection connection = url.openConnection();
                                    if (connection != null) {
                                        // Disable caches to get fresh data for
                                        // reloading.
                                        connection.setUseCaches(false);
                                        is = connection.getInputStream();
                                    }
                                }
                            } else {
                                is = classLoader.getResourceAsStream(resourceName);
                            }
                            return is;
                        });
            } catch (PrivilegedActionException e) {
                throw (IOException) e.getException();
            }
            if (stream != null) {
                try {
                    bundle = new PropertyResourceBundle(new InputStreamReader(stream, StandardCharsets.UTF_8));
                } finally {
                    stream.close();
                }
            }
        } else {
            throw new IllegalArgumentException("unknown format: " + format);
        }
        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