Program: 139094
Project: 139094
Buggy source:
/** 
 * DOC zshen Comment method "createButtonSection".
 * @param topComp create the button with delButton,moveUpButton,moveDownButton
 */
private void createButtonSection(Composite topComp){
  Composite buttonsComp=masterPage.getEditor().getToolkit().createComposite(topComp,SWT.NONE);
  buttonsComp.setLayout(new GridLayout(3,true));
  buttonsComp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
  GridData buttonGridData=new GridData();
  buttonGridData.heightHint=25;
  buttonGridData.horizontalAlignment=GridData.CENTER;
  buttonGridData.verticalAlignment=GridData.FILL;
  buttonGridData.grabExcessHorizontalSpace=true;
  buttonGridData.grabExcessVerticalSpace=true;
  final Button delButton=new Button(buttonsComp,SWT.NULL);
  delButton.setImage(ImageLib.getImage(ImageLib.DELETE_ACTION));
  delButton.setLayoutData(buttonGridData);
  final Button moveUpButton=new Button(buttonsComp,SWT.NULL);
  moveUpButton.setText(DefaultMessagesImpl.getString("String_Node_Str"));
  moveUpButton.setLayoutData(buttonGridData);
  final Button moveDownButton=new Button(buttonsComp,SWT.NULL);
  moveDownButton.setText(DefaultMessagesImpl.getString("String_Node_Str"));
  moveDownButton.setLayoutData(buttonGridData);
  buttons=new Button[]{delButton,moveUpButton,moveDownButton};
  enabledButtons(false);
  moveUpButton.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      moveElement(masterPage.getTreeViewer(),false);
    }
  }
);
  moveDownButton.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      moveElement(masterPage.getTreeViewer(),true);
    }
  }
);
  delButton.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      Tree currentTree=tree;
      Object[] selectItem=currentTree.getSelection();
      List<Column> columnList=masterPage.getTreeViewer().getColumnSetMultiValueList();
      for (int i=0; i < selectItem.length; i++) {
        Object removeElement=((TreeItem)selectItem[i]).getData(AnalysisColumnNominalIntervalTreeViewer.COLUMN_INDICATOR_KEY);
        columnList.remove(removeElement);
      }
      masterPage.getTreeViewer().setInput(convertList(columnList).toArray());
      enabledButtons(false);
    }
  }
);
}

Fixed version (ground truth):
/** 
 * DOC zshen Comment method "createButtonSection".
 * @param topComp create the button with delButton,moveUpButton,moveDownButton
 */
private void createButtonSection(Composite topComp){
  Composite buttonsComp=masterPage.getEditor().getToolkit().createComposite(topComp,SWT.NONE);
  buttonsComp.setLayout(new GridLayout(3,true));
  buttonsComp.setLayoutData(new GridData(GridData.FILL_HORIZONTAL));
  GridData buttonGridData=new GridData();
  buttonGridData.heightHint=25;
  buttonGridData.horizontalAlignment=GridData.CENTER;
  buttonGridData.verticalAlignment=GridData.FILL;
  buttonGridData.grabExcessHorizontalSpace=true;
  buttonGridData.grabExcessVerticalSpace=true;
  final Button delButton=new Button(buttonsComp,SWT.NULL);
  delButton.setImage(ImageLib.getImage(ImageLib.DELETE_ACTION));
  delButton.setLayoutData(buttonGridData);
  final Button moveUpButton=new Button(buttonsComp,SWT.NULL);
  moveUpButton.setText(DefaultMessagesImpl.getString("String_Node_Str"));
  moveUpButton.setLayoutData(buttonGridData);
  final Button moveDownButton=new Button(buttonsComp,SWT.NULL);
  moveDownButton.setText(DefaultMessagesImpl.getString("String_Node_Str"));
  moveDownButton.setLayoutData(buttonGridData);
  buttons=new Button[]{delButton,moveUpButton,moveDownButton};
  enabledButtons(false);
  moveUpButton.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      moveElement(masterPage.getTreeViewer(),-1);
    }
  }
);
  moveDownButton.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      moveElement(masterPage.getTreeViewer(),1);
    }
  }
);
  delButton.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      Tree currentTree=tree;
      Object[] selectItem=currentTree.getSelection();
      List<Column> columnList=masterPage.getTreeViewer().getColumnSetMultiValueList();
      for (int i=0; i < selectItem.length; i++) {
        Object removeElement=((TreeItem)selectItem[i]).getData(AnalysisColumnNominalIntervalTreeViewer.COLUMN_INDICATOR_KEY);
        columnList.remove(removeElement);
      }
      masterPage.getTreeViewer().setInput(convertList(columnList).toArray());
      enabledButtons(false);
    }
  }
);
}