Program: 57321
Project: 57321
Buggy source:
@Override protected void init(){
  pickingListener=new APickingListener(){
    @Override public void clicked(    Pick pick){
      ALinearizableNode branchNode=node;
      while (branchNode.getParentNode() != null) {
        branchNode=branchNode.getParentNode();
      }
      EventBasedSelectionManager selectionManager=pathwayPathRenderer.getGeneSelectionManager();
      for (      Integer davidId : node.getPrimaryPathwayVertexRep().getDavidIDs()) {
        selectionManager.removeFromType(SelectionType.MOUSE_OVER,davidId);
      }
      selectionManager.triggerSelectionUpdateEvent();
      pathwayPathRenderer.selectBranch(branchNode);
    }
    @Override public void mouseOver(    Pick pick){
      EventBasedSelectionManager selectionManager=pathwayPathRenderer.getGeneSelectionManager();
      EventBasedSelectionManager metaboliteSelectionManager=pathwayPathRenderer.getMetaboliteSelectionManager();
      metaboliteSelectionManager.clearSelection(SelectionType.MOUSE_OVER);
      selectionManager.clearSelection(SelectionType.MOUSE_OVER);
      for (      Integer davidId : node.getPrimaryPathwayVertexRep().getDavidIDs()) {
        selectionManager.addToType(SelectionType.MOUSE_OVER,davidId);
      }
      selectionManager.triggerSelectionUpdateEvent();
      pathwayPathRenderer.setDisplayListDirty();
    }
    @Override public void mouseOut(    Pick pick){
      EventBasedSelectionManager selectionManager=pathwayPathRenderer.getGeneSelectionManager();
      for (      Integer davidId : node.getPrimaryPathwayVertexRep().getDavidIDs()) {
        selectionManager.removeFromType(SelectionType.MOUSE_OVER,davidId);
      }
      selectionManager.triggerSelectionUpdateEvent();
      pathwayPathRenderer.setDisplayListDirty();
    }
  }
;
  view.addIDPickingListener(pickingListener,EPickingType.LINEARIZABLE_NODE.name(),node.hashCode());
}

Fixed version (ground truth):
@Override protected void init(){
  pickingListener=new APickingListener(){
    @Override public void clicked(    Pick pick){
      if (!node.isPickable())       return;
      ALinearizableNode branchNode=node;
      while (branchNode.getParentNode() != null) {
        branchNode=branchNode.getParentNode();
      }
      EventBasedSelectionManager selectionManager=pathwayPathRenderer.getGeneSelectionManager();
      for (      Integer davidId : node.getPrimaryPathwayVertexRep().getDavidIDs()) {
        selectionManager.removeFromType(SelectionType.MOUSE_OVER,davidId);
      }
      selectionManager.triggerSelectionUpdateEvent();
      pathwayPathRenderer.selectBranch(branchNode);
    }
    @Override public void mouseOver(    Pick pick){
      if (!node.isPickable())       return;
      EventBasedSelectionManager selectionManager=pathwayPathRenderer.getGeneSelectionManager();
      EventBasedSelectionManager metaboliteSelectionManager=pathwayPathRenderer.getMetaboliteSelectionManager();
      metaboliteSelectionManager.clearSelection(SelectionType.MOUSE_OVER);
      selectionManager.clearSelection(SelectionType.MOUSE_OVER);
      for (      Integer davidId : node.getPrimaryPathwayVertexRep().getDavidIDs()) {
        selectionManager.addToType(SelectionType.MOUSE_OVER,davidId);
      }
      selectionManager.triggerSelectionUpdateEvent();
      pathwayPathRenderer.setDisplayListDirty();
    }
    @Override public void mouseOut(    Pick pick){
      if (!node.isPickable())       return;
      EventBasedSelectionManager selectionManager=pathwayPathRenderer.getGeneSelectionManager();
      for (      Integer davidId : node.getPrimaryPathwayVertexRep().getDavidIDs()) {
        selectionManager.removeFromType(SelectionType.MOUSE_OVER,davidId);
      }
      selectionManager.triggerSelectionUpdateEvent();
      pathwayPathRenderer.setDisplayListDirty();
    }
  }
;
  view.addIDPickingListener(pickingListener,EPickingType.LINEARIZABLE_NODE.name(),node.hashCode());
}