Program: 137366
Project: 137366
Buggy source:
private void createTableItems(final Table resultTable){
  Long columnSetARows=rowMatchingIndicatorA.getMatchingValueCount() + rowMatchingIndicatorA.getNotMatchingValueCount();
  TableItem item1=new TableItem(resultTable,SWT.NULL);
  item1.setText(0,DefaultMessagesImpl.getString("String_Node_Str"));
  setAMatchPercent=StringFormatUtil.format((rowMatchingIndicatorA.getMatchingValueCount().doubleValue()) / columnSetARows.doubleValue(),StringFormatUtil.PERCENT).toString();
  item1.setText(1,setAMatchPercent);
  TableItem item2=new TableItem(resultTable,SWT.NULL);
  item2.setText(0,DefaultMessagesImpl.getString("String_Node_Str"));
  item2.setText(1,StringFormatUtil.format((rowMatchingIndicatorA.getNotMatchingValueCount().doubleValue()) / columnSetARows.doubleValue(),StringFormatUtil.PERCENT).toString());
  TableItem item3=new TableItem(resultTable,SWT.NULL);
  item3.setText(0,DefaultMessagesImpl.getString("String_Node_Str"));
  item3.setText(1,rowMatchingIndicatorA.getMatchingValueCount().toString());
  TableItem item4=new TableItem(resultTable,SWT.NULL);
  item4.setText(0,DefaultMessagesImpl.getString("String_Node_Str"));
  item4.setText(1,rowMatchingIndicatorA.getNotMatchingValueCount().toString());
  TableItem item5=new TableItem(resultTable,SWT.NULL);
  item5.setText(0,DefaultMessagesImpl.getString("String_Node_Str"));
  item5.setText(1,columnSetARows.toString());
  if (!isHasDeactivatedIndicator) {
    Long columnSetBRows=rowMatchingIndicatorB.getMatchingValueCount() + rowMatchingIndicatorB.getNotMatchingValueCount();
    setBMatchPercent=StringFormatUtil.format((rowMatchingIndicatorB.getMatchingValueCount().doubleValue()) / columnSetBRows.doubleValue(),StringFormatUtil.PERCENT).toString();
    item1.setText(2,setBMatchPercent);
    item2.setText(2,StringFormatUtil.format((rowMatchingIndicatorB.getNotMatchingValueCount().doubleValue()) / columnSetBRows.doubleValue(),StringFormatUtil.PERCENT).toString());
    item3.setText(2,rowMatchingIndicatorB.getMatchingValueCount().toString());
    item4.setText(2,rowMatchingIndicatorB.getNotMatchingValueCount().toString());
    item5.setText(2,columnSetBRows.toString());
  }
  final TableCursor cursor=new TableCursor(resultTable,SWT.NONE);
  cursor.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      int column=cursor.getColumn();
      if (column == 1) {
        resultTable.setMenu(createMenu(resultTable,rowMatchingIndicatorA));
      }
      if (column == 2) {
        resultTable.setMenu(createMenu(resultTable,rowMatchingIndicatorB));
      }
      if (e.widget instanceof TableCursor) {
        ((TableCursor)e.widget).setForeground(new Color(null,0,0,0));
      }
    }
  }
);
}

Fixed version (ground truth):
private void createTableItems(final Table resultTable){
  Long columnSetARows=rowMatchingIndicatorA.getMatchingValueCount() + rowMatchingIndicatorA.getNotMatchingValueCount();
  TableItem item1=new TableItem(resultTable,SWT.NULL);
  item1.setText(0,DefaultMessagesImpl.getString("String_Node_Str"));
  double matchPerA=(rowMatchingIndicatorA.getMatchingValueCount().doubleValue()) / columnSetARows.doubleValue();
  if (Double.isNaN(matchPerA) || Double.isInfinite(matchPerA)) {
    setAMatchPercent=org.talend.dataquality.PluginConstant.NA_STRING;
  }
 else {
    setAMatchPercent=StringFormatUtil.format(matchPerA,StringFormatUtil.PERCENT).toString();
  }
  item1.setText(1,setAMatchPercent);
  TableItem item2=new TableItem(resultTable,SWT.NULL);
  item2.setText(0,DefaultMessagesImpl.getString("String_Node_Str"));
  double notMatchPerA=(rowMatchingIndicatorA.getNotMatchingValueCount().doubleValue()) / columnSetARows.doubleValue();
  if (Double.isNaN(notMatchPerA) || Double.isInfinite(notMatchPerA)) {
    item2.setText(1,org.talend.dataquality.PluginConstant.NA_STRING);
  }
 else {
    item2.setText(1,StringFormatUtil.format(notMatchPerA,StringFormatUtil.PERCENT).toString());
  }
  TableItem item3=new TableItem(resultTable,SWT.NULL);
  item3.setText(0,DefaultMessagesImpl.getString("String_Node_Str"));
  item3.setText(1,rowMatchingIndicatorA.getMatchingValueCount().toString());
  TableItem item4=new TableItem(resultTable,SWT.NULL);
  item4.setText(0,DefaultMessagesImpl.getString("String_Node_Str"));
  item4.setText(1,rowMatchingIndicatorA.getNotMatchingValueCount().toString());
  TableItem item5=new TableItem(resultTable,SWT.NULL);
  item5.setText(0,DefaultMessagesImpl.getString("String_Node_Str"));
  item5.setText(1,columnSetARows.toString());
  if (!isHasDeactivatedIndicator) {
    Long columnSetBRows=rowMatchingIndicatorB.getMatchingValueCount() + rowMatchingIndicatorB.getNotMatchingValueCount();
    double matchPerB=rowMatchingIndicatorB.getMatchingValueCount().doubleValue() / columnSetBRows.doubleValue();
    if (Double.isNaN(matchPerB) || Double.isInfinite(matchPerB)) {
      setBMatchPercent=org.talend.dataquality.PluginConstant.NA_STRING;
    }
 else {
      setBMatchPercent=StringFormatUtil.format(matchPerB,StringFormatUtil.PERCENT).toString();
    }
    item1.setText(2,setBMatchPercent);
    double notMatchPerB=(rowMatchingIndicatorB.getNotMatchingValueCount().doubleValue()) / columnSetBRows.doubleValue();
    if (Double.isNaN(notMatchPerB) || Double.isInfinite(notMatchPerB)) {
      item2.setText(2,org.talend.dataquality.PluginConstant.NA_STRING);
    }
 else {
      item2.setText(2,StringFormatUtil.format(notMatchPerB,StringFormatUtil.PERCENT).toString());
    }
    item3.setText(2,rowMatchingIndicatorB.getMatchingValueCount().toString());
    item4.setText(2,rowMatchingIndicatorB.getNotMatchingValueCount().toString());
    item5.setText(2,columnSetBRows.toString());
  }
  final TableCursor cursor=new TableCursor(resultTable,SWT.NONE);
  cursor.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      int column=cursor.getColumn();
      if (column == 1) {
        resultTable.setMenu(createMenu(resultTable,rowMatchingIndicatorA));
      }
      if (column == 2) {
        resultTable.setMenu(createMenu(resultTable,rowMatchingIndicatorB));
      }
      if (e.widget instanceof TableCursor) {
        ((TableCursor)e.widget).setForeground(new Color(null,0,0,0));
      }
    }
  }
);
}