Program: 159984
Project: 159984
Buggy source:
@Override public void mouseEntered(MouseEvent arg0){
  if (!popupShowing) {
    if (popup != null)     popup.hide();
    PopupFactory factory=PopupFactory.getSharedInstance();
    popup=factory.getPopup(this,popupText,(int)this.getLocationOnScreen().getX() + Config.dimensions.frameWidth,(int)this.getLocationOnScreen().getY() + 40);
    popup.show();
    popup.hide();
    popup=factory.getPopup(this,popupText,(int)this.getLocationOnScreen().getX() + Config.dimensions.frameWidth,(int)this.getLocationOnScreen().getY() + 40);
    popup.show();
    popupShowing=true;
    List<UUID> targets=card.getTargets();
    if (targets != null) {
      for (      UUID uuid : targets) {
        PlayAreaPanel p=MageFrame.getGame(gameId).getPlayers().get(uuid);
        if (p != null) {
          Point target=p.getLocationOnScreen();
          Point me=this.getLocationOnScreen();
          ArrowBuilder.addArrow((int)me.getX() + 35,(int)me.getY(),(int)target.getX() + 40,(int)target.getY() - 40,Color.red,ArrowBuilder.Type.TARGET);
        }
 else {
          for (          PlayAreaPanel pa : MageFrame.getGame(gameId).getPlayers().values()) {
            MagePermanent permanent=pa.getBattlefieldPanel().getPermanents().get(uuid);
            if (permanent != null) {
              Point target=permanent.getLocationOnScreen();
              Point me=this.getLocationOnScreen();
              ArrowBuilder.addArrow((int)me.getX() + 35,(int)me.getY(),(int)target.getX() + 40,(int)target.getY() + 10,Color.red,ArrowBuilder.Type.TARGET);
            }
          }
        }
      }
    }
  }
}

Fixed version (ground truth):
@Override public void mouseEntered(MouseEvent arg0){
  if (!popupShowing) {
    if (popup != null)     popup.hide();
    PopupFactory factory=PopupFactory.getSharedInstance();
    popup=factory.getPopup(this,popupText,(int)this.getLocationOnScreen().getX() + Config.dimensions.frameWidth,(int)this.getLocationOnScreen().getY() + 40);
    popup.show();
    popup.hide();
    popup=factory.getPopup(this,popupText,(int)this.getLocationOnScreen().getX() + Config.dimensions.frameWidth,(int)this.getLocationOnScreen().getY() + 40);
    popup.show();
    popupShowing=true;
    List<UUID> targets=card.getTargets();
    if (targets != null) {
      for (      UUID uuid : targets) {
        PlayAreaPanel p=MageFrame.getGame(gameId).getPlayers().get(uuid);
        if (p != null) {
          Point target=p.getLocationOnScreen();
          Point me=this.getLocationOnScreen();
          ArrowBuilder.getBuilder().addArrow(gameId,(int)me.getX() + 35,(int)me.getY(),(int)target.getX() + 40,(int)target.getY() - 40,Color.red,ArrowBuilder.Type.TARGET);
        }
 else {
          for (          PlayAreaPanel pa : MageFrame.getGame(gameId).getPlayers().values()) {
            MagePermanent permanent=pa.getBattlefieldPanel().getPermanents().get(uuid);
            if (permanent != null) {
              Point target=permanent.getLocationOnScreen();
              Point me=this.getLocationOnScreen();
              ArrowBuilder.getBuilder().addArrow(gameId,(int)me.getX() + 35,(int)me.getY(),(int)target.getX() + 40,(int)target.getY() + 10,Color.red,ArrowBuilder.Type.TARGET);
            }
          }
        }
      }
    }
  }
}