Program: 44354
Project: 44354
Buggy source:
private static Map<CustomType,List<AbstractRewardSource>> loadCustomSources(FileConfiguration config){
  Map<CustomType,List<AbstractRewardSource>> sources=new HashMap<CustomType,List<AbstractRewardSource>>();
  ConfigurationSection tableConfig=config.getConfigurationSection("String_Node_Str");
  ConfigurationSection setConfig=config.getConfigurationSection("String_Node_Str");
  if (tableConfig != null) {
    for (    String customName : tableConfig.getKeys(false)) {
      CustomType customType=CustomType.fromName(customName);
      if (customType != CustomType.INVALID) {
        AbstractRewardSource source=configureRewardSource(RewardSourceFactory.createSource(customName,tableConfig.getConfigurationSection(customName)),config);
        if (!sources.containsKey(customType)) {
          sources.put(customType,new ArrayList<AbstractRewardSource>());
        }
        List<String> setList=tableConfig.getConfigurationSection(customName).getStringList("String_Node_Str");
        if (!setList.isEmpty()) {
          for (          String setName : setList) {
            if (setConfig != null && setConfig.getConfigurationSection(setName) != null) {
              AbstractRewardSource setSource=RewardSourceFactory.createSource(CustomType.SET.getName(),setConfig.getConfigurationSection(setName));
              sources.get(customType).add(mergeRewardSource(source,setSource));
            }
          }
        }
 else {
          sources.get(customType).add(source);
        }
      }
      if (config.getBoolean("String_Node_Str",false)) {
        AbstractRewardSource source=configureRewardSource(RewardSourceFactory.createSource(CustomType.DEATH_PENALTY.getName(),config),config);
        if (!sources.containsKey(CustomType.DEATH_PENALTY)) {
          sources.put(CustomType.DEATH_PENALTY,new ArrayList<AbstractRewardSource>());
        }
        sources.get(CustomType.DEATH_PENALTY).add(source);
      }
      if (config.getBoolean("String_Node_Str",false)) {
        AbstractRewardSource source=configureRewardSource(RewardSourceFactory.createSource(CustomType.LEGACY_PVP.getName(),config),config);
        if (!sources.containsKey(CustomType.LEGACY_PVP)) {
          sources.put(CustomType.LEGACY_PVP,new ArrayList<AbstractRewardSource>());
        }
        sources.get(CustomType.LEGACY_PVP).add(source);
      }
    }
  }
  return sources;
}

Fixed version (ground truth):
private static Map<CustomType,List<AbstractRewardSource>> loadCustomSources(FileConfiguration config){
  Map<CustomType,List<AbstractRewardSource>> sources=new HashMap<CustomType,List<AbstractRewardSource>>();
  ConfigurationSection tableConfig=config.getConfigurationSection("String_Node_Str");
  ConfigurationSection setConfig=config.getConfigurationSection("String_Node_Str");
  if (tableConfig != null) {
    for (    String customName : tableConfig.getKeys(false)) {
      CustomType customType=CustomType.fromName(customName);
      if (customType != CustomType.INVALID) {
        AbstractRewardSource source=configureRewardSource(RewardSourceFactory.createSource(customName,tableConfig.getConfigurationSection(customName)),config);
        if (!sources.containsKey(customType)) {
          sources.put(customType,new ArrayList<AbstractRewardSource>());
        }
        List<String> setList=tableConfig.getConfigurationSection(customName).getStringList("String_Node_Str");
        if (!setList.isEmpty()) {
          for (          String setName : setList) {
            if (setConfig != null && setConfig.getConfigurationSection(setName) != null) {
              AbstractRewardSource setSource=RewardSourceFactory.createSource(CustomType.SET.getName(),setConfig.getConfigurationSection(setName));
              sources.get(customType).add(mergeRewardSource(source,setSource));
            }
          }
        }
 else {
          sources.get(customType).add(source);
        }
      }
    }
    if (config.getBoolean("String_Node_Str",false)) {
      AbstractRewardSource source=configureRewardSource(RewardSourceFactory.createSource(CustomType.DEATH_PENALTY.getName(),config),config);
      if (!sources.containsKey(CustomType.DEATH_PENALTY)) {
        sources.put(CustomType.DEATH_PENALTY,new ArrayList<AbstractRewardSource>());
      }
      sources.get(CustomType.DEATH_PENALTY).add(source);
    }
    if (config.getBoolean("String_Node_Str",false)) {
      AbstractRewardSource source=configureRewardSource(RewardSourceFactory.createSource(CustomType.LEGACY_PVP.getName(),config),config);
      if (!sources.containsKey(CustomType.LEGACY_PVP)) {
        sources.put(CustomType.LEGACY_PVP,new ArrayList<AbstractRewardSource>());
      }
      sources.get(CustomType.LEGACY_PVP).add(source);
    }
  }
  return sources;
}