Program: 44379
Project: 44379
Buggy source:
private double computeReward(Player player,ecoReward reward){
  double amount=reward.getRewardAmount();
  try {
    if (ecoCreature.permission.getPrimaryGroup(player.getWorld().getName(),player.getName()) != null) {
      String group=ecoCreature.permission.getPrimaryGroup(player.getWorld().getName(),player.getName()).toLowerCase();
      if (hasPermission(player,"String_Node_Str") && groupMultiplier.containsKey(group)) {
        amount*=groupMultiplier.get(group);
      }
    }
  }
 catch (  UnsupportedOperationException e) {
    if (warnGroupMultiplierSupport) {
      ecoCreature.getEcoLogger().warning(e.getMessage());
      warnGroupMultiplierSupport=false;
    }
  }
  if (hasPermission(player,"String_Node_Str") && timeMultiplier.containsKey(ecoEntityUtil.getTimePeriod(player))) {
    amount*=timeMultiplier.get(ecoEntityUtil.getTimePeriod(player));
  }
  if (hasPermission(player,"String_Node_Str") && envMultiplier.containsKey(player.getWorld().getEnvironment())) {
    amount*=envMultiplier.get(player.getWorld().getEnvironment());
  }
  if (ecoCreature.worldGuardPlugin != null) {
    Map<String,ProtectedRegion> regions=ecoCreature.worldGuardPlugin.getRegionManager(player.getWorld()).getRegions();
    for (    String regionName : regions.keySet()) {
      if (hasPermission(player,"String_Node_Str") && worldGuardRegionMultiplier.containsKey(regionName)) {
        amount*=worldGuardRegionMultiplier.get(regionName);
      }
    }
  }
  if (hasPermission(player,"String_Node_Str") && ecoCreature.heroesPlugin != null && ecoCreature.heroesPlugin.getCharacterManager().getHero(player).hasParty()) {
    amount*=heroesPartyMultiplier;
  }
  if (hasMobArenaRewards && hasPermission(player,"String_Node_Str") && ecoCreature.mobArenaHandler != null && ecoCreature.mobArenaHandler.isPlayerInArena(player)) {
    amount*=mobArenaMultiplier;
  }
  return isIntegerCurrency ? (double)Math.round(amount) : amount;
}

Fixed version (ground truth):
private double computeReward(Player player,ecoReward reward){
  double amount=reward.getRewardAmount();
  try {
    if (ecoCreature.permission.getPrimaryGroup(player.getWorld().getName(),player.getName()) != null) {
      String group=ecoCreature.permission.getPrimaryGroup(player.getWorld().getName(),player.getName()).toLowerCase();
      if (hasPermission(player,"String_Node_Str") && groupMultiplier.containsKey(group)) {
        amount*=groupMultiplier.get(group);
      }
    }
  }
 catch (  UnsupportedOperationException e) {
    if (warnGroupMultiplierSupport) {
      ecoCreature.getEcoLogger().warning(e.getMessage());
      warnGroupMultiplierSupport=false;
    }
  }
  if (hasPermission(player,"String_Node_Str") && timeMultiplier.containsKey(ecoEntityUtil.getTimePeriod(player))) {
    amount*=timeMultiplier.get(ecoEntityUtil.getTimePeriod(player));
  }
  if (hasPermission(player,"String_Node_Str") && envMultiplier.containsKey(player.getWorld().getEnvironment())) {
    amount*=envMultiplier.get(player.getWorld().getEnvironment());
  }
  if (ecoCreature.worldGuardPlugin != null) {
    Iterator<ProtectedRegion> regionSet=ecoCreature.worldGuardPlugin.getRegionManager(player.getWorld()).getApplicableRegions(player.getLocation()).iterator();
    while (regionSet.hasNext()) {
      String regionName=regionSet.next().getId();
      if (hasPermission(player,"String_Node_Str") && worldGuardRegionMultiplier.containsKey(regionName)) {
        amount*=worldGuardRegionMultiplier.get(regionName);
      }
    }
  }
  if (hasPermission(player,"String_Node_Str") && ecoCreature.heroesPlugin != null && ecoCreature.heroesPlugin.getCharacterManager().getHero(player).hasParty()) {
    amount*=heroesPartyMultiplier;
  }
  if (hasMobArenaRewards && hasPermission(player,"String_Node_Str") && ecoCreature.mobArenaHandler != null && ecoCreature.mobArenaHandler.isPlayerInArena(player)) {
    amount*=mobArenaMultiplier;
  }
  return isIntegerCurrency ? (double)Math.round(amount) : amount;
}