Program: 119927
Project: 119927
Buggy source:
/** 
 * Create the composite
 * @param parent
 * @param style
 */
public TestComposite(Composite parent,int style){
  super(parent,style);
  setLayout(new FillLayout());
  final Group group=new Group(this,SWT.NONE);
  group.setLayout(new GridLayout());
  group.setText(Messages.getString("String_Node_Str"));
  final Composite composite=new Composite(group,SWT.NONE);
  composite.setLayoutData(new GridData(SWT.RIGHT,SWT.CENTER,false,false));
  final FillLayout fillLayout=new FillLayout();
  fillLayout.spacing=8;
  composite.setLayout(fillLayout);
  testButton=new Button(composite,SWT.NONE);
  testButton.setText(Messages.getString("String_Node_Str"));
  clearButton=new Button(composite,SWT.NONE);
  clearButton.setText(Messages.getString("String_Node_Str"));
  final SashForm sashForm=new SashForm(group,SWT.NONE);
  sashForm.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
  Composite tablePart=new Composite(sashForm,SWT.NONE);
  GridLayout layout=new GridLayout();
  layout.verticalSpacing=0;
  layout.marginTop=0;
  layout.marginHeight=0;
  tablePart.setLayout(layout);
  variableTableViewer=new TableViewer(tablePart,SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI);
  VariableTableViewerProvider provider=new VariableTableViewerProvider();
  variableTableViewer.setContentProvider(provider);
  variableTableViewer.setLabelProvider(provider);
  variableTableViewer.setCellModifier(new ICellModifier(){
    public boolean canModify(    Object element,    String property){
      return true;
    }
    public Object getValue(    Object element,    String property){
      if (NAME_PROPERTY.equals(property)) {
        return ((Variable)element).getName();
      }
 else       if (VALUE_PROPERTY.equals(property)) {
        return ((Variable)element).getValue();
      }
      return "String_Node_Str";
    }
    public void modify(    Object element,    String property,    Object value){
      Variable var=(Variable)((TableItem)element).getData();
      if (NAME_PROPERTY.equals(property)) {
        List<String> nameList=new ArrayList<String>();
        TableItem[] items=table.getItems();
        for (        TableItem item : items) {
          if (item == (TableItem)element) {
            continue;
          }
          nameList.add(((Variable)item.getData()).getName());
        }
        if (nameList.contains(value)) {
          MessageDialog.openError(getShell(),Messages.getString("String_Node_Str"),Messages.getString("String_Node_Str"));
          return;
        }
 else {
          var.setName((String)value);
        }
      }
 else       if (VALUE_PROPERTY.equals(property)) {
        var.setValue((String)value);
      }
      variableTableViewer.refresh();
    }
  }
);
  table=variableTableViewer.getTable();
  variableTableViewer.setCellEditors(new CellEditor[]{new DoubleClickTextCellEditor(table),new TextCellEditor(table)});
  variableTableViewer.setColumnProperties(new String[]{NAME_PROPERTY,VALUE_PROPERTY});
  variableTableViewer.setInput(new LinkedList<Variable>());
  variableTableViewer.addDoubleClickListener(new IDoubleClickListener(){
    public void doubleClick(    DoubleClickEvent event){
      Variable var=(Variable)(((IStructuredSelection)event.getSelection()).getFirstElement());
      ExpressionComposite expressionComposite=ExpressionBuilderDialog.getExpressionComposite();
      expressionComposite.setExpression(var.getName(),true);
    }
  }
);
  DragSource source=new DragSource(table,DND.DROP_MOVE | DND.DROP_COPY);
  source.setTransfer(new Transfer[]{textTransfer});
  source.addDragListener(new DragSourceListener(){
    public void dragStart(    DragSourceEvent event){
      if (table.getSelectionCount() == 0)       event.doit=false;
    }
    public void dragSetData(    DragSourceEvent event){
      if (textTransfer.isSupportedType(event.dataType)) {
        event.data=table.getSelection()[0].getText();
      }
    }
    public void dragFinished(    DragSourceEvent event){
    }
  }
);
  table.setHeaderVisible(true);
  GridData gd=new GridData(GridData.FILL_BOTH);
  gd.horizontalSpan=2;
  table.setLayoutData(gd);
  final TableColumn varColumn=new TableColumn(table,SWT.NONE);
  varColumn.setWidth(100);
  varColumn.setText(Messages.getString("String_Node_Str"));
  final TableColumn valueColumn=new TableColumn(table,SWT.NONE);
  valueColumn.setWidth(100);
  valueColumn.setText(Messages.getString("String_Node_Str"));
  testResultText=new StyledText(sashForm,SWT.MULTI | SWT.BORDER | SWT.WRAP);
  Composite buttonPart=new Composite(tablePart,SWT.NONE);
  buttonPart.setLayout(new GridLayout(2,false));
  buttonPart.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
  buttonAddVar=new Button(buttonPart,SWT.NONE);
  buttonAddVar.setText(Messages.getString("String_Node_Str"));
  buttonAddVar.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
  buttonRemoveVar=new Button(buttonPart,SWT.NONE);
  buttonRemoveVar.setText(Messages.getString("String_Node_Str"));
  buttonRemoveVar.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
  sashForm.setWeights(new int[]{1,1});
  shadow=new JavaTestShadow();
  installListener();
}

Fixed version (ground truth):
/** 
 * Create the composite
 * @param parent
 * @param style
 */
public TestComposite(Composite parent,int style){
  super(parent,style);
  setLayout(new FillLayout());
  final Group group=new Group(this,SWT.NONE);
  group.setLayout(new GridLayout());
  group.setText(Messages.getString("String_Node_Str"));
  final Composite composite=new Composite(group,SWT.NONE);
  composite.setLayoutData(new GridData(SWT.RIGHT,SWT.CENTER,false,false));
  final FillLayout fillLayout=new FillLayout();
  fillLayout.spacing=8;
  composite.setLayout(fillLayout);
  testButton=new Button(composite,SWT.NONE);
  testButton.setText(Messages.getString("String_Node_Str"));
  clearButton=new Button(composite,SWT.NONE);
  clearButton.setText(Messages.getString("String_Node_Str"));
  final SashForm sashForm=new SashForm(group,SWT.NONE);
  sashForm.setLayoutData(new GridData(SWT.FILL,SWT.FILL,true,true));
  Composite tablePart=new Composite(sashForm,SWT.NONE);
  GridLayout layout=new GridLayout();
  layout.verticalSpacing=0;
  layout.marginTop=0;
  layout.marginHeight=0;
  tablePart.setLayout(layout);
  variableTableViewer=new TableViewer(tablePart,SWT.BORDER | SWT.FULL_SELECTION | SWT.MULTI);
  VariableTableViewerProvider provider=new VariableTableViewerProvider();
  variableTableViewer.setContentProvider(provider);
  variableTableViewer.setLabelProvider(provider);
  variableTableViewer.setCellModifier(new ICellModifier(){
    public boolean canModify(    Object element,    String property){
      return true;
    }
    public Object getValue(    Object element,    String property){
      if (NAME_PROPERTY.equals(property)) {
        return ((Variable)element).getName();
      }
 else       if (VALUE_PROPERTY.equals(property)) {
        return ((Variable)element).getValue();
      }
      return "String_Node_Str";
    }
    public void modify(    Object element,    String property,    Object value){
      Variable var=(Variable)((TableItem)element).getData();
      if (NAME_PROPERTY.equals(property)) {
        List<String> nameList=new ArrayList<String>();
        TableItem[] items=table.getItems();
        for (        TableItem item : items) {
          if (item == (TableItem)element) {
            continue;
          }
          nameList.add(((Variable)item.getData()).getName());
        }
        if (nameList.contains(value)) {
          MessageDialog.openError(getShell(),Messages.getString("String_Node_Str"),Messages.getString("String_Node_Str"));
          return;
        }
 else {
          var.setName((String)value);
        }
      }
 else       if (VALUE_PROPERTY.equals(property)) {
        var.setValue((String)value);
      }
      variableTableViewer.refresh();
    }
  }
);
  table=variableTableViewer.getTable();
  variableTableViewer.setCellEditors(new CellEditor[]{new DoubleClickTextCellEditor(table),new TextCellEditor(table)});
  variableTableViewer.setColumnProperties(new String[]{NAME_PROPERTY,VALUE_PROPERTY});
  variableTableViewer.setInput(new LinkedList<Variable>());
  variableTableViewer.addDoubleClickListener(new IDoubleClickListener(){
    public void doubleClick(    DoubleClickEvent event){
      Variable var=(Variable)(((IStructuredSelection)event.getSelection()).getFirstElement());
      ExpressionComposite expressionComposite=ExpressionBuilderDialog.getExpressionComposite();
      expressionComposite.setExpression(var.getName(),true);
      expressionComposite.modificationRecord.pushRecored(expressionComposite.getExpression());
    }
  }
);
  DragSource source=new DragSource(table,DND.DROP_MOVE | DND.DROP_COPY);
  source.setTransfer(new Transfer[]{textTransfer});
  source.addDragListener(new DragSourceListener(){
    public void dragStart(    DragSourceEvent event){
      if (table.getSelectionCount() == 0)       event.doit=false;
    }
    public void dragSetData(    DragSourceEvent event){
      if (textTransfer.isSupportedType(event.dataType)) {
        event.data=table.getSelection()[0].getText();
      }
    }
    public void dragFinished(    DragSourceEvent event){
    }
  }
);
  table.setHeaderVisible(true);
  GridData gd=new GridData(GridData.FILL_BOTH);
  gd.horizontalSpan=2;
  table.setLayoutData(gd);
  final TableColumn varColumn=new TableColumn(table,SWT.NONE);
  varColumn.setWidth(100);
  varColumn.setText(Messages.getString("String_Node_Str"));
  final TableColumn valueColumn=new TableColumn(table,SWT.NONE);
  valueColumn.setWidth(100);
  valueColumn.setText(Messages.getString("String_Node_Str"));
  testResultText=new StyledText(sashForm,SWT.MULTI | SWT.BORDER | SWT.WRAP);
  Composite buttonPart=new Composite(tablePart,SWT.NONE);
  buttonPart.setLayout(new GridLayout(2,false));
  buttonPart.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
  buttonAddVar=new Button(buttonPart,SWT.NONE);
  buttonAddVar.setText(Messages.getString("String_Node_Str"));
  buttonAddVar.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
  buttonRemoveVar=new Button(buttonPart,SWT.NONE);
  buttonRemoveVar.setText(Messages.getString("String_Node_Str"));
  buttonRemoveVar.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_END));
  sashForm.setWeights(new int[]{1,1});
  shadow=new JavaTestShadow();
  installListener();
}