Program: 44375
Project: 44375
Buggy source:
private void registerReward(Player player,Reward reward,String weaponName){
  double amount=reward.hasCoin() ? reward.getCoin().getAmount() * getGainMultiplier(player) : 0.0;
  List<Player> party=new ArrayList<Player>();
  if (isHeroesPartyShare && DependencyUtils.hasHeroes() && DependencyUtils.getHeroes().getCharacterManager().getHero(player).hasParty()) {
    for (    Hero hero : DependencyUtils.getHeroes().getCharacterManager().getHero(player).getParty().getMembers()) {
      party.add(hero.getPlayer());
    }
    amount/=(double)party.size();
  }
 else   if (isMcMMOPartyShare && DependencyUtils.hasMcMMO() && PartyAPI.inParty(player)) {
    party.addAll(PartyAPI.getOnlineMembers(player));
    amount/=(double)party.size();
  }
 else   if (isMobArenaShare && DependencyUtils.hasMobArena() && DependencyUtils.getMobArenaHandler().isPlayerInArena(player)) {
    party.addAll(DependencyUtils.getMobArenaHandler().getArenaWithPlayer(player).getAllPlayers());
    amount/=(double)party.size();
  }
 else {
    party.add(player);
  }
  for (  Player member : party) {
    if (amount > 0.0D && DependencyUtils.hasEconomy()) {
      DependencyUtils.getEconomy().depositPlayer(member.getName(),amount);
      messageManager.rewardMessage(reward.getRewardMessage(),member,amount,reward.getName(),weaponName);
    }
 else     if (amount < 0.0D && DependencyUtils.hasEconomy()) {
      DependencyUtils.getEconomy().withdrawPlayer(member.getName(),Math.abs(amount));
      messageManager.penaltyMessage(reward.getPenaltyMessage(),member,amount,reward.getName(),weaponName);
    }
 else {
      messageManager.noRewardMessage(reward.getNoRewardMessage(),member,reward.getName(),weaponName);
    }
  }
  metricsManager.addCount(reward.getType());
}

Fixed version (ground truth):
private void registerReward(Player player,Reward reward,String weaponName){
  double amount=reward.hasCoin() ? reward.getCoin().getAmount() * getGainMultiplier(player) : 0.0;
  List<Player> party=new ArrayList<Player>();
  if (isHeroesPartyShare && DependencyUtils.hasHeroes() && DependencyUtils.getHeroes().getCharacterManager().getHero(player).hasParty()) {
    for (    Hero hero : DependencyUtils.getHeroes().getCharacterManager().getHero(player).getParty().getMembers()) {
      party.add(hero.getPlayer());
    }
    amount/=(double)party.size();
  }
 else   if (isMcMMOPartyShare && DependencyUtils.hasMcMMO() && PartyAPI.inParty(player)) {
    party.addAll(PartyAPI.getOnlineMembers(player));
    amount/=(double)party.size();
  }
 else   if (isMobArenaShare && DependencyUtils.hasMobArena() && DependencyUtils.getMobArenaHandler().isPlayerInArena(player)) {
    party.addAll(DependencyUtils.getMobArenaHandler().getArenaWithPlayer(player).getAllPlayers());
    amount/=(double)party.size();
  }
 else {
    party.add(player);
  }
  if (isIntegerCurrency) {
    amount=Math.round(amount);
  }
  for (  Player member : party) {
    if (amount > 0.0D && DependencyUtils.hasEconomy()) {
      DependencyUtils.getEconomy().depositPlayer(member.getName(),amount);
      messageManager.rewardMessage(reward.getRewardMessage(),member,amount,reward.getName(),weaponName);
    }
 else     if (amount < 0.0D && DependencyUtils.hasEconomy()) {
      DependencyUtils.getEconomy().withdrawPlayer(member.getName(),Math.abs(amount));
      messageManager.penaltyMessage(reward.getPenaltyMessage(),member,amount,reward.getName(),weaponName);
    }
 else {
      messageManager.noRewardMessage(reward.getNoRewardMessage(),member,reward.getName(),weaponName);
    }
  }
  metricsManager.addCount(reward.getType());
}