Program: 190021
Project: 190021
Buggy source:
public EdgeDataTable(){
  attributeColumnsController=Lookup.getDefault().lookup(AttributeColumnsController.class);
  table=new JXTable();
  prepareRenderers();
  table.setHighlighters(HighlighterFactory.createAlternateStriping());
  table.setColumnControlVisible(true);
  table.setSortable(true);
  table.setRowFilter(rowFilter);
  propertiesColumns=new PropertyEdgeDataColumn[FAKE_COLUMNS_COUNT];
  propertiesColumns[0]=new PropertyEdgeDataColumn(NbBundle.getMessage(EdgeDataTable.class,"String_Node_Str")){
    @Override public Class getColumnClass(){
      return String.class;
    }
    @Override public Object getValueFor(    Edge edge){
      if (showEdgesNodesLabels) {
        return edge.getSource().getNodeData().getId() + "String_Node_Str" + edge.getSource().getNodeData().getLabel();
      }
 else {
        return edge.getSource().getNodeData().getId();
      }
    }
  }
;
  propertiesColumns[1]=new PropertyEdgeDataColumn(NbBundle.getMessage(EdgeDataTable.class,"String_Node_Str")){
    @Override public Class getColumnClass(){
      return String.class;
    }
    @Override public Object getValueFor(    Edge edge){
      if (showEdgesNodesLabels) {
        return edge.getTarget().getNodeData().getId() + "String_Node_Str" + edge.getTarget().getNodeData().getLabel();
      }
 else {
        return edge.getTarget().getNodeData().getId();
      }
    }
  }
;
  propertiesColumns[2]=new PropertyEdgeDataColumn(NbBundle.getMessage(EdgeDataTable.class,"String_Node_Str")){
    @Override public Class getColumnClass(){
      return String.class;
    }
    @Override public Object getValueFor(    Edge edge){
      if (edge.isDirected()) {
        return NbBundle.getMessage(EdgeDataTable.class,"String_Node_Str");
      }
 else {
        return NbBundle.getMessage(EdgeDataTable.class,"String_Node_Str");
      }
    }
  }
;
  table.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
    public void valueChanged(    ListSelectionEvent e){
      if (!refreshingTable) {
        EditWindowController edc=Lookup.getDefault().lookup(EditWindowController.class);
        if (edc.isOpen()) {
          if (table.getSelectedRow() != -1) {
            edc.editEdges(getEdgesFromSelectedRows());
          }
 else {
            edc.disableEdit();
          }
        }
      }
    }
  }
);
  table.addMouseListener(new PopupAdapter());
  table.addKeyListener(new KeyAdapter(){
    @Override public void keyReleased(    KeyEvent e){
      if (e.getKeyCode() == KeyEvent.VK_DELETE) {
        Edge[] selectedEdges=getEdgesFromSelectedRows();
        if (selectedEdges.length > 0) {
          DataLaboratoryHelper dlh=new DataLaboratoryHelper();
          EdgesManipulator del=dlh.getDeleEdgesManipulator();
          if (del != null) {
            del.setup(selectedEdges,null);
            if (del.canExecute()) {
              dlh.executeManipulator(del);
            }
          }
        }
      }
    }
  }
);
}

Fixed version (ground truth):
public EdgeDataTable(){
  attributeUtils=AttributeUtils.getDefault();
  attributeColumnsController=Lookup.getDefault().lookup(AttributeColumnsController.class);
  table=new JXTable();
  prepareRenderers();
  table.setHighlighters(HighlighterFactory.createAlternateStriping());
  table.setColumnControlVisible(true);
  table.setSortable(true);
  table.setRowFilter(rowFilter);
  propertiesColumns=new PropertyEdgeDataColumn[FAKE_COLUMNS_COUNT];
  propertiesColumns[0]=new PropertyEdgeDataColumn(NbBundle.getMessage(EdgeDataTable.class,"String_Node_Str")){
    @Override public Class getColumnClass(){
      return String.class;
    }
    @Override public Object getValueFor(    Edge edge){
      if (showEdgesNodesLabels) {
        return edge.getSource().getNodeData().getId() + "String_Node_Str" + edge.getSource().getNodeData().getLabel();
      }
 else {
        return edge.getSource().getNodeData().getId();
      }
    }
  }
;
  propertiesColumns[1]=new PropertyEdgeDataColumn(NbBundle.getMessage(EdgeDataTable.class,"String_Node_Str")){
    @Override public Class getColumnClass(){
      return String.class;
    }
    @Override public Object getValueFor(    Edge edge){
      if (showEdgesNodesLabels) {
        return edge.getTarget().getNodeData().getId() + "String_Node_Str" + edge.getTarget().getNodeData().getLabel();
      }
 else {
        return edge.getTarget().getNodeData().getId();
      }
    }
  }
;
  propertiesColumns[2]=new PropertyEdgeDataColumn(NbBundle.getMessage(EdgeDataTable.class,"String_Node_Str")){
    @Override public Class getColumnClass(){
      return String.class;
    }
    @Override public Object getValueFor(    Edge edge){
      if (edge.isDirected()) {
        return NbBundle.getMessage(EdgeDataTable.class,"String_Node_Str");
      }
 else {
        return NbBundle.getMessage(EdgeDataTable.class,"String_Node_Str");
      }
    }
  }
;
  table.getSelectionModel().addListSelectionListener(new ListSelectionListener(){
    public void valueChanged(    ListSelectionEvent e){
      if (!refreshingTable) {
        EditWindowController edc=Lookup.getDefault().lookup(EditWindowController.class);
        if (edc.isOpen()) {
          if (table.getSelectedRow() != -1) {
            edc.editEdges(getEdgesFromSelectedRows());
          }
 else {
            edc.disableEdit();
          }
        }
      }
    }
  }
);
  table.addMouseListener(new PopupAdapter());
  table.addKeyListener(new KeyAdapter(){
    @Override public void keyReleased(    KeyEvent e){
      if (e.getKeyCode() == KeyEvent.VK_DELETE) {
        Edge[] selectedEdges=getEdgesFromSelectedRows();
        if (selectedEdges.length > 0) {
          DataLaboratoryHelper dlh=new DataLaboratoryHelper();
          EdgesManipulator del=dlh.getDeleEdgesManipulator();
          if (del != null) {
            del.setup(selectedEdges,null);
            if (del.canExecute()) {
              dlh.executeManipulator(del);
            }
          }
        }
      }
    }
  }
);
}