Program: 78048
Project: 78048
Buggy source:
/** 
 * add Jar Page to the Dialog
 * @param tabFolder
 */
private void addJarPage(TabFolder tabFolder){
  final Composite page=new Composite(tabFolder,SWT.NONE);
  GridLayout layout=new GridLayout();
  layout.marginHeight=10;
  layout.marginWidth=10;
  layout.verticalSpacing=5;
  page.setLayout(layout);
  page.setLayoutData(new GridData(GridData.FILL_BOTH));
  final Table table=new Table(page,SWT.BORDER | SWT.FULL_SELECTION);
  GridData data=new GridData(GridData.FILL_BOTH);
  table.setLayoutData(data);
  table.setHeaderVisible(true);
  table.setLinesVisible(true);
  TableLayout tableLayout=new TableLayout();
  table.setLayout(tableLayout);
  final TableColumn column0=new TableColumn(table,SWT.NONE);
  column0.setWidth(20);
  final TableColumn column1=new TableColumn(table,SWT.NONE);
  column1.setText(JdbcPlugin.getResourceString("String_Node_Str"));
  column1.setWidth(150);
  column1.addSelectionListener(new SelectionListener(){
    private boolean asc=false;
    public void widgetSelected(    SelectionEvent e){
      sortJar(1,asc);
      asc=!asc;
    }
    public void widgetDefaultSelected(    SelectionEvent e){
      widgetSelected(e);
    }
  }
);
  final TableColumn column2=new TableColumn(table,SWT.NONE);
  column2.setText(JdbcPlugin.getResourceString("String_Node_Str"));
  column2.setWidth(280);
  column2.addSelectionListener(new SelectionListener(){
    private boolean asc=false;
    public void widgetSelected(    SelectionEvent e){
      sortJar(2,asc);
      asc=!asc;
    }
    public void widgetDefaultSelected(    SelectionEvent e){
      widgetSelected(e);
    }
  }
);
  jarViewer=new TableViewer(table);
  jarViewer.setContentProvider(new IStructuredContentProvider(){
    public Object[] getElements(    Object inputElement){
      if (inputElement instanceof Map) {
        return ((Map)inputElement).entrySet().toArray();
      }
      return new Object[0];
    }
    public void inputChanged(    Viewer viewer,    Object oldInput,    Object newInput){
    }
    public void dispose(){
    }
  }
);
  jarViewer.setSorter(null);
  jarViewer.addSelectionChangedListener(new ISelectionChangedListener(){
    public void selectionChanged(    SelectionChangedEvent event){
      updateJarButtons();
    }
  }
);
  Label lb=new Label(page,SWT.NONE);
  lb.setText(JdbcPlugin.getResourceString("String_Node_Str"));
  lb=new Label(page,SWT.NONE);
  lb.setText(JdbcPlugin.getResourceString("String_Node_Str"));
  lb=new Label(page,SWT.NONE);
  lb.setText(JdbcPlugin.getResourceString("String_Node_Str"));
  Composite buttons=new Composite(page,SWT.NONE);
  buttons.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
  layout=new GridLayout();
  layout.numColumns=4;
  layout.marginHeight=0;
  layout.marginWidth=0;
  buttons.setLayout(layout);
  addButton=new Button(buttons,SWT.PUSH);
  addButton.setText(JdbcPlugin.getResourceString("String_Node_Str"));
  data=new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
  data.widthHint=btnWidth;
  data.heightHint=btnHeight;
  addButton.setLayoutData(data);
  addButton.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      addJar();
    }
  }
);
  restoreButton=new Button(buttons,SWT.PUSH);
  restoreButton.setText(JdbcPlugin.getResourceString("String_Node_Str"));
  data=new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
  data.widthHint=btnWidth;
  data.heightHint=btnHeight;
  restoreButton.setLayoutData(data);
  restoreButton.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      restoreJar();
    }
  }
);
  deleteButton=new Button(buttons,SWT.PUSH);
  deleteButton.setText(JdbcPlugin.getResourceString("String_Node_Str"));
  data=new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
  data.widthHint=btnWidth;
  data.heightHint=btnHeight;
  deleteButton.setLayoutData(data);
  deleteButton.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      deleteJar();
    }
  }
);
  TabItem tabItem=new TabItem(tabFolder,SWT.NONE);
  tabItem.setControl(page);
  tabItem.setText(JdbcPlugin.getResourceString("String_Node_Str"));
}

Fixed version (ground truth):
/** 
 * add Jar Page to the Dialog
 * @param tabFolder
 */
private void addJarPage(TabFolder tabFolder){
  final Composite page=new Composite(tabFolder,SWT.NONE);
  GridLayout layout=new GridLayout();
  layout.marginHeight=10;
  layout.marginWidth=10;
  layout.verticalSpacing=5;
  page.setLayout(layout);
  page.setLayoutData(new GridData(GridData.FILL_BOTH));
  final Table table=new Table(page,SWT.BORDER | SWT.FULL_SELECTION);
  GridData data=new GridData(GridData.FILL_BOTH);
  table.setLayoutData(data);
  table.setHeaderVisible(true);
  table.setLinesVisible(true);
  TableLayout tableLayout=new TableLayout();
  table.setLayout(tableLayout);
  final TableColumn column0=new TableColumn(table,SWT.NONE);
  column0.setWidth(20);
  final TableColumn column1=new TableColumn(table,SWT.NONE);
  column1.setText(JdbcPlugin.getResourceString("String_Node_Str"));
  column1.setWidth(150);
  column1.addSelectionListener(new SelectionListener(){
    private boolean asc=false;
    public void widgetSelected(    SelectionEvent e){
      sortJar(1,asc);
      asc=!asc;
    }
    public void widgetDefaultSelected(    SelectionEvent e){
      widgetSelected(e);
    }
  }
);
  final TableColumn column2=new TableColumn(table,SWT.NONE);
  column2.setText(JdbcPlugin.getResourceString("String_Node_Str"));
  column2.setWidth(280);
  column2.addSelectionListener(new SelectionListener(){
    private boolean asc=false;
    public void widgetSelected(    SelectionEvent e){
      sortJar(2,asc);
      asc=!asc;
    }
    public void widgetDefaultSelected(    SelectionEvent e){
      widgetSelected(e);
    }
  }
);
  jarViewer=new TableViewer(table);
  jarViewer.setContentProvider(new IStructuredContentProvider(){
    public Object[] getElements(    Object inputElement){
      if (inputElement instanceof Map) {
        return ((Map)inputElement).entrySet().toArray();
      }
      return new Object[0];
    }
    public void inputChanged(    Viewer viewer,    Object oldInput,    Object newInput){
    }
    public void dispose(){
    }
  }
);
  jarViewer.setSorter(null);
  jarViewer.addSelectionChangedListener(new ISelectionChangedListener(){
    public void selectionChanged(    SelectionChangedEvent event){
      updateJarButtons();
    }
  }
);
  Label lb=new Label(page,SWT.NONE);
  lb.setText(JdbcPlugin.getResourceString("String_Node_Str"));
  lb=new Label(page,SWT.NONE);
  lb.setText(JdbcPlugin.getResourceString("String_Node_Str"));
  lb=new Label(page,SWT.NONE);
  lb.setText(JdbcPlugin.getResourceString("String_Node_Str"));
  Composite buttons=new Composite(page,SWT.NONE);
  buttons.setLayoutData(new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING));
  layout=new GridLayout();
  layout.numColumns=4;
  layout.marginHeight=0;
  layout.marginWidth=0;
  buttons.setLayout(layout);
  addButton=new Button(buttons,SWT.PUSH);
  addButton.setText(TEXT_ADDBUTTON);
  data=new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
  data.widthHint=btnWidth;
  addButton.setLayoutData(data);
  addButton.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      addJar();
    }
  }
);
  restoreButton=new Button(buttons,SWT.PUSH);
  restoreButton.setText(TEXT_RESTOREBUTTON);
  data=new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
  data.widthHint=btnWidth;
  restoreButton.setLayoutData(data);
  restoreButton.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      restoreJar();
    }
  }
);
  deleteButton=new Button(buttons,SWT.PUSH);
  deleteButton.setText(TEXT_DELETEBUTTON);
  data=new GridData(GridData.HORIZONTAL_ALIGN_BEGINNING);
  data.widthHint=btnWidth;
  deleteButton.setLayoutData(data);
  deleteButton.addSelectionListener(new SelectionAdapter(){
    public void widgetSelected(    SelectionEvent e){
      deleteJar();
    }
  }
);
  TabItem tabItem=new TabItem(tabFolder,SWT.NONE);
  tabItem.setControl(page);
  tabItem.setText(JdbcPlugin.getResourceString("String_Node_Str"));
}