Program: 85434
Project: 85434
Buggy source:
@Override public void mouseClicked(MouseEvent event){
  Hashtable<HighlightStatus,List<Arrow>> currentArrowStatus=new Hashtable<HighlightStatus,List<Arrow>>();
  for (  HighlightStatus status : HighlightStatus.values()) {
    currentArrowStatus.put(status,arrowsByStatus(status));
  }
  if (selectedArrow != null) {
    selectedArrow.setSelected(false);
    detailsListener.showDetails(null);
    selectedArrow=null;
  }
  if (!event.isShiftDown() && !event.isControlDown()) {
    for (    LabeledRectangle component : targetComponents) {
      component.setSelected(false);
    }
    for (    LabeledRectangle component : sourceComponents) {
      component.setSelected(false);
    }
  }
  if (event.getX() > sourceX && event.getX() < sourceX + ITEM_WIDTH) {
    LabeledRectangleClicked(event,getVisibleSourceComponents());
  }
 else   if (event.getX() > targetX && event.getX() < targetX + ITEM_WIDTH) {
    LabeledRectangleClicked(event,getVisibleTargetComponents());
  }
 else   if (event.getX() > sourceX + ITEM_WIDTH && event.getX() < targetX) {
    Arrow clickedArrow=null;
    for (    HighlightStatus status : HighlightStatus.values()) {
      for (      Arrow arrow : currentArrowStatus.get(status)) {
        if (arrow.contains(event.getPoint())) {
          clickedArrow=arrow;
          break;
        }
      }
      if (clickedArrow != null) {
        break;
      }
    }
    if (clickedArrow != null) {
      if (event.getClickCount() == 2) {
        zoomArrow=clickedArrow;
        if (slaveMappingPanel != null) {
          slaveMappingPanel.setMapping(ObjectExchange.etl.getFieldToFieldMapping((Table)zoomArrow.getSource().getItem(),(Table)zoomArrow.getTarget().getItem()));
          new AnimateThread(true).start();
          slaveMappingPanel.filterComponents("String_Node_Str",false);
          slaveMappingPanel.filterComponents("String_Node_Str",true);
        }
      }
 else {
        if (!clickedArrow.isSelected()) {
          clickedArrow.setSelected(true);
          selectedArrow=clickedArrow;
          detailsListener.showDetails(mapping.getSourceToTargetMap(selectedArrow.getSource().getItem(),selectedArrow.getTarget().getItem()));
        }
        repaint();
      }
    }
 else {
      detailsListener.showDetails(null);
    }
  }
 else {
    detailsListener.showDetails(null);
  }
}

Fixed version (ground truth):
@Override public void mouseClicked(MouseEvent event){
  Hashtable<HighlightStatus,List<Arrow>> currentArrowStatus=new Hashtable<HighlightStatus,List<Arrow>>();
  for (  HighlightStatus status : HighlightStatus.values()) {
    currentArrowStatus.put(status,arrowsByStatus(status));
  }
  if (selectedArrow != null) {
    selectedArrow.setSelected(false);
    detailsListener.showDetails(null);
    selectedArrow=null;
  }
  if (!event.isShiftDown() && !event.isControlDown()) {
    for (    LabeledRectangle component : cdmComponents) {
      component.setSelected(false);
    }
    for (    LabeledRectangle component : sourceComponents) {
      component.setSelected(false);
    }
  }
  if (event.getX() > sourceX && event.getX() < sourceX + ITEM_WIDTH) {
    LabeledRectangleClicked(event,getVisibleSourceComponents());
  }
 else   if (event.getX() > cdmX && event.getX() < cdmX + ITEM_WIDTH) {
    LabeledRectangleClicked(event,getVisibleTargetComponents());
  }
 else   if (event.getX() > sourceX + ITEM_WIDTH && event.getX() < cdmX) {
    Arrow clickedArrow=null;
    for (    HighlightStatus status : HighlightStatus.values()) {
      for (      Arrow arrow : currentArrowStatus.get(status)) {
        if (arrow.contains(event.getPoint())) {
          clickedArrow=arrow;
          break;
        }
      }
      if (clickedArrow != null) {
        break;
      }
    }
    if (clickedArrow != null) {
      if (event.getClickCount() == 2) {
        zoomArrow=clickedArrow;
        if (slaveMappingPanel != null) {
          slaveMappingPanel.setMapping(ObjectExchange.etl.getFieldToFieldMapping((Table)zoomArrow.getSource().getItem(),(Table)zoomArrow.getTarget().getItem()));
          new AnimateThread(true).start();
          slaveMappingPanel.filterComponents("String_Node_Str",false);
          slaveMappingPanel.filterComponents("String_Node_Str",true);
        }
      }
 else {
        if (!clickedArrow.isSelected()) {
          clickedArrow.setSelected(true);
          selectedArrow=clickedArrow;
          detailsListener.showDetails(mapping.getSourceToTargetMap(selectedArrow.getSource().getItem(),selectedArrow.getTarget().getItem()));
        }
        repaint();
      }
    }
 else {
      detailsListener.showDetails(null);
    }
  }
 else {
    detailsListener.showDetails(null);
  }
}