@Override
        public ResourceBundle newBundle(String baseName, Locale locale, String format, ClassLoader classLoader,
                    boolean reload) throws IllegalAccessException, InstantiationException, IOException {

            ResourceBundle resourceBundle = createUnicodeBundle(baseName, locale, format, classLoader, reload);

            // If the ResourceBundle cannot be found with the default class loader (usually the thread context class
            // loader or TCCL), try to find it with the OSGi bundle's class loader. Since default i18n files are
            // included inside of the jar/bundle that provides them, default i18n files are not visible to the TCCL in
            // an OSGi environment. Instead, i18n files are only visible to the class loader of the OSGi bundle that
            // they are included in.
            if (resourceBundle == null && !osgiBundleClassLoader.equals(classLoader)) {
                resourceBundle = createUnicodeBundle(baseName, locale, format, osgiBundleClassLoader, reload);
            }

            return resourceBundle;
        }
Custom ResourceBundle.Control to handle loading resources as UTF-8 in Java8 and OSGI classloader issues.
primefaces/src/main/java/org/primefaces/util/MessageFactory.java