[Demonstration 1]

[Buggy Method]
public LanguageProperties get(String languageId) {
    LanguageProperties languageProperties = null;
    LOGGER.info("try to get language with id \"" + languageId + "\"");
    if (languagePropertiesMap.containsKey(languageId)) {
        LOGGER.info("from caching");
        languageProperties = languagePropertiesMap.get(languageId);
    } else {
        File file = new File(languageFolder.getAbsolutePath() + "\\" + languageId + ".properties");
        LOGGER.info("from properties file\"" + file.getAbsolutePath() + "\"");
        languageProperties = languagePropertiesFileHandler.read(file);
        languagePropertiesMap.put(languageId, languageProperties);
    }
    return languageProperties;
}

[Buggy Hunk]
File file = new File(languageFolder.getAbsolutePath()+"\\"+languageId+".properties");

[Patch]
File file = new File(languageFolder.getAbsolutePath()+File.separator+languageId+".properties");

[Demonstration 2]

[Buggy Method]
@SuppressWarnings("nls")
private static final void refresh(final Locale locale) {
    if (NAMES.isEmpty()) {
        ResourceBundleManager.locale = locale;
    }
    for (Class<? extends IBundle> bundleClass : NAMES.keySet()) {
        final ResourceBundle bundle = ResourceBundle.getBundle(NAMES.get(bundleClass), locale);
        if (bundle != null && bundle.getLocale().getLanguage() != locale.getLanguage()) {
            log.error("Bundle cannot be found [name=" + NAMES.get(bundleClass) + ", locale=" + locale.toString() + "]. Using default one [name=" + NAMES.get(bundleClass) + ", locale=" + getLocale().toString() + "]");
            ResourceBundleManager.locale = english;
        } else {
            ResourceBundleManager.locale = locale;
        }
        BUNDLES.clear();
        register(bundleClass, bundle);
    }
}

[Buggy Hunk]
if (bundle != null && bundle.getLocale().getLanguage() != locale.getLanguage())

[Patch]
if (bundle != null && !bundle.getLocale().getLanguage().equals(locale.getLanguage()))

[Demonstration 3]

[Buggy Method]
@Override
public Fragment getItem(int idx) {
    Fragment retval = null;
    this.index = idx;
    try {
        int numItems = jsonList.size();
        String json = null;
        if ((numItems == 0) && endOfItems) {
            retval = new NoneAvailableFragment();
            provision(retval);
        } else if ((numItems > 0) && (numItems > idx)) {
            retval = new EntityFragment();
            provision(retval, idx);
        } else {
            final Fragment f = new LoadFailureFragment();
            final int i = idx;
            retval = f;
            ((LoadFailureFragment) retval).set(new LoadFailureFragment.Callback() {

                public void handle() {
                    replace(f, i);
                }
            });
            loadMap.put(idx, retval);
        }
    } catch (Exception e) {
        logger.warn("" + e, e);
    }
    fragmentManager.beginTransaction().add(retval, "" + entityType + idx).commit();
    return (retval);
}

[Buggy Hunk]
provision(retval, idx);

[Patch]
provision(retval, jsonList.get(idx));