Program: 44407
Project: 44407
Buggy source:
public ecoRewardManager loadRewardConfig(Configuration config){
  ecoRewardManager rewardManager=new ecoRewardManager(plugin);
  isEnabled=config.getBoolean("String_Node_Str",true);
  debug=config.getBoolean("String_Node_Str",false) || debug;
  rewardManager.isIntegerCurrency=config.getBoolean("String_Node_Str",false);
  rewardManager.canCampSpawner=config.getBoolean("String_Node_Str",false);
  rewardManager.shouldClearCampDrops=config.getBoolean("String_Node_Str",true);
  rewardManager.shouldOverrideDrops=config.getBoolean("String_Node_Str",true);
  rewardManager.isFixedDrops=config.getBoolean("String_Node_Str",false);
  rewardManager.campRadius=config.getInt("String_Node_Str",7);
  rewardManager.hasBowRewards=config.getBoolean("String_Node_Str",true);
  rewardManager.hasDeathPenalty=config.getBoolean("String_Node_Str",false);
  rewardManager.hasPVPReward=config.getBoolean("String_Node_Str",true);
  rewardManager.isPercentPenalty=config.getBoolean("String_Node_Str",true);
  rewardManager.isPercentPvpReward=config.getBoolean("String_Node_Str",true);
  rewardManager.penaltyAmount=config.getDouble("String_Node_Str",0.05D);
  rewardManager.pvpRewardAmount=config.getDouble("String_Node_Str",0.05D);
  rewardManager.canHuntUnderSeaLevel=config.getBoolean("String_Node_Str",true);
  rewardManager.isWolverineMode=config.getBoolean("String_Node_Str",true);
  rewardManager.hasDTPRewards=config.getBoolean("String_Node_Str",true);
  rewardManager.dtpPenaltyAmount=config.getDouble("String_Node_Str",5.0D);
  rewardManager.dtpPenaltyAmount=config.getDouble("String_Node_Str",10.0D);
  rewardManager.noFarm=config.getBoolean("String_Node_Str",false);
  if (config.getKeys("String_Node_Str") != null) {
    for (    String group : config.getKeys("String_Node_Str")) {
      rewardManager.groupMultiplier.put(group.toLowerCase(),Double.valueOf(config.getDouble("String_Node_Str" + group + "String_Node_Str",0.0D)));
    }
  }
  if (config.getKeys("String_Node_Str") != null) {
    for (    String period : config.getKeys("String_Node_Str")) {
      rewardManager.timeMultiplier.put(TimePeriod.fromName(period),Double.valueOf(config.getDouble("String_Node_Str" + period + "String_Node_Str",1.0D)));
    }
  }
  if (config.getKeys("String_Node_Str") != null) {
    for (    String environment : config.getKeys("String_Node_Str")) {
      rewardManager.envMultiplier.put(Environment.valueOf(environment.toUpperCase()),Double.valueOf(config.getDouble("String_Node_Str" + environment + "String_Node_Str",1.0D)));
    }
  }
  if (config.getKeys("String_Node_Str") != null) {
    for (    String creatureName : config.getKeys("String_Node_Str")) {
      ecoReward reward=new ecoReward();
      reward.setCreatureName(creatureName);
      reward.setCreatureType(CreatureType.fromName(creatureName));
      String root="String_Node_Str" + creatureName;
      reward.setDrops(parseDrops(config.getString(root + "String_Node_Str"),rewardManager.isFixedDrops));
      reward.setCoinMax(config.getDouble(root + "String_Node_Str",0));
      reward.setCoinMin(config.getDouble(root + "String_Node_Str",5));
      reward.setCoinPercentage(config.getDouble(root + "String_Node_Str",50));
      reward.setNoRewardMessage(new ecoMessage(convertMessage(config.getString(root + "String_Node_Str",ecoMessageManager.NO_REWARD_MESSAGE)),config.getBoolean("String_Node_Str",false)));
      reward.setRewardMessage(new ecoMessage(convertMessage(config.getString(root + "String_Node_Str",ecoMessageManager.REWARD_MESSAGE)),true));
      reward.setPenaltyMessage(new ecoMessage(convertMessage(config.getString(root + "String_Node_Str",ecoMessageManager.PENALTY_MESSAGE)),true));
      if (creatureName.equals("String_Node_Str")) {
        rewardManager.spawnerReward=reward;
      }
 else {
        rewardManager.rewards.put(reward.getCreatureType(),reward);
      }
    }
  }
  return rewardManager;
}

Fixed version (ground truth):
public ecoRewardManager loadRewardConfig(Configuration config){
  ecoRewardManager rewardManager=new ecoRewardManager(plugin);
  isEnabled=config.getBoolean("String_Node_Str",true);
  debug=config.getBoolean("String_Node_Str",false) || debug;
  rewardManager.isIntegerCurrency=config.getBoolean("String_Node_Str",false);
  rewardManager.canCampSpawner=config.getBoolean("String_Node_Str",false);
  rewardManager.shouldClearCampDrops=config.getBoolean("String_Node_Str",true);
  rewardManager.shouldOverrideDrops=config.getBoolean("String_Node_Str",true);
  rewardManager.isFixedDrops=config.getBoolean("String_Node_Str",false);
  rewardManager.campRadius=config.getInt("String_Node_Str",7);
  rewardManager.hasBowRewards=config.getBoolean("String_Node_Str",true);
  rewardManager.hasDeathPenalty=config.getBoolean("String_Node_Str",false);
  rewardManager.hasPVPReward=config.getBoolean("String_Node_Str",true);
  rewardManager.isPercentPenalty=config.getBoolean("String_Node_Str",true);
  rewardManager.isPercentPvpReward=config.getBoolean("String_Node_Str",true);
  rewardManager.penaltyAmount=config.getDouble("String_Node_Str",0.05D);
  rewardManager.pvpRewardAmount=config.getDouble("String_Node_Str",0.05D);
  rewardManager.canHuntUnderSeaLevel=config.getBoolean("String_Node_Str",true);
  rewardManager.isWolverineMode=config.getBoolean("String_Node_Str",true);
  rewardManager.hasDTPRewards=config.getBoolean("String_Node_Str",true);
  rewardManager.dtpPenaltyAmount=config.getDouble("String_Node_Str",5.0D);
  rewardManager.dtpRewardAmount=config.getDouble("String_Node_Str",10.0D);
  rewardManager.noFarm=config.getBoolean("String_Node_Str",false);
  if (config.getKeys("String_Node_Str") != null) {
    for (    String group : config.getKeys("String_Node_Str")) {
      rewardManager.groupMultiplier.put(group.toLowerCase(),Double.valueOf(config.getDouble("String_Node_Str" + group + "String_Node_Str",0.0D)));
    }
  }
  if (config.getKeys("String_Node_Str") != null) {
    for (    String period : config.getKeys("String_Node_Str")) {
      rewardManager.timeMultiplier.put(TimePeriod.fromName(period),Double.valueOf(config.getDouble("String_Node_Str" + period + "String_Node_Str",1.0D)));
    }
  }
  if (config.getKeys("String_Node_Str") != null) {
    for (    String environment : config.getKeys("String_Node_Str")) {
      rewardManager.envMultiplier.put(Environment.valueOf(environment.toUpperCase()),Double.valueOf(config.getDouble("String_Node_Str" + environment + "String_Node_Str",1.0D)));
    }
  }
  if (config.getKeys("String_Node_Str") != null) {
    for (    String creatureName : config.getKeys("String_Node_Str")) {
      ecoReward reward=new ecoReward();
      reward.setCreatureName(creatureName);
      reward.setCreatureType(CreatureType.fromName(creatureName));
      String root="String_Node_Str" + creatureName;
      reward.setDrops(parseDrops(config.getString(root + "String_Node_Str"),rewardManager.isFixedDrops));
      reward.setCoinMax(config.getDouble(root + "String_Node_Str",0));
      reward.setCoinMin(config.getDouble(root + "String_Node_Str",5));
      reward.setCoinPercentage(config.getDouble(root + "String_Node_Str",50));
      reward.setNoRewardMessage(new ecoMessage(convertMessage(config.getString(root + "String_Node_Str",ecoMessageManager.NO_REWARD_MESSAGE)),config.getBoolean("String_Node_Str",false)));
      reward.setRewardMessage(new ecoMessage(convertMessage(config.getString(root + "String_Node_Str",ecoMessageManager.REWARD_MESSAGE)),true));
      reward.setPenaltyMessage(new ecoMessage(convertMessage(config.getString(root + "String_Node_Str",ecoMessageManager.PENALTY_MESSAGE)),true));
      if (creatureName.equals("String_Node_Str")) {
        rewardManager.spawnerReward=reward;
      }
 else {
        rewardManager.rewards.put(reward.getCreatureType(),reward);
      }
    }
  }
  return rewardManager;
}