Program: 107923
Project: 107923
Buggy source:
/** 
 * Creates the content of   {@link #compositeLocal}This adds a file chooser and an appropriate combo to select files. Selecting a file from the combo will trigger a read of the tables. If everything is fine, the tables from the database will be read.
 * @see {@link #readTables()}
 */
private void createCompositeLocal(){
  compositeLocal=new Composite(compositeSwap,SWT.NONE);
  compositeLocal.setLayout(new GridLayout(3,false));
  lblLocation=new Label(compositeLocal,SWT.NONE);
  lblLocation.setLayoutData(new GridData(SWT.RIGHT,SWT.CENTER,false,false,1,1));
  lblLocation.setText(Resources.getMessage("String_Node_Str"));
  comboLocation=new Combo(compositeLocal,SWT.READ_ONLY);
  comboLocation.setLayoutData(new GridData(SWT.FILL,SWT.CENTER,true,false,1,1));
  comboLocation.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      setPageComplete(false);
      setErrorMessage(null);
      connect();
      readTables();
    }
  }
);
  btnChoose=new Button(compositeLocal,SWT.NONE);
  btnChoose.setText(Resources.getMessage("String_Node_Str"));
  btnChoose.addSelectionListener(new SelectionAdapter(){
    /** 
 * Opens a file selection dialog for "*.db" files If a valid file was selected, it is added to   {@link #comboLocation} when it wasn't already there. It is thenpreselected within  {@link #comboLocation}.
 */
    @Override public void widgetSelected(    SelectionEvent arg0){
      final String path=wizardImport.getController().actionShowOpenFileDialog(getShell(),"String_Node_Str");
      if (path == null) {
        return;
      }
      if (comboLocation.indexOf(path) == -1) {
        comboLocation.add(path,0);
      }
      comboLocation.select(comboLocation.indexOf(path));
      comboLocation.notifyListeners(SWT.Selection,null);
    }
  }
);
}

Fixed version (ground truth):
/** 
 * Creates the content of   {@link #compositeLocal}This adds a file chooser and an appropriate combo to select files. Selecting a file from the combo will trigger a read of the tables. If everything is fine, the tables from the database will be read.
 * @see {@link #readTables()}
 */
private void createCompositeLocal(){
  compositeLocal=new Composite(compositeSwap,SWT.NONE);
  compositeLocal.setLayout(new GridLayout(3,false));
  lblLocation=new Label(compositeLocal,SWT.NONE);
  lblLocation.setLayoutData(new GridData(SWT.RIGHT,SWT.CENTER,false,false,1,1));
  lblLocation.setText(Resources.getMessage("String_Node_Str"));
  comboLocation=new Combo(compositeLocal,SWT.READ_ONLY);
  comboLocation.setLayoutData(new GridData(SWT.FILL,SWT.CENTER,true,false,1,1));
  comboLocation.addSelectionListener(new SelectionAdapter(){
    @Override public void widgetSelected(    SelectionEvent e){
      setErrorMessage(null);
      connect();
      boolean ok=readTables();
      setPageComplete(ok);
      if (ok) {
        setMessage(Resources.getMessage("String_Node_Str"),INFORMATION);
      }
    }
  }
);
  btnChoose=new Button(compositeLocal,SWT.NONE);
  btnChoose.setText(Resources.getMessage("String_Node_Str"));
  btnChoose.addSelectionListener(new SelectionAdapter(){
    /** 
 * Opens a file selection dialog for "*.db" files If a valid file was selected, it is added to   {@link #comboLocation} when it wasn't already there. It is thenpreselected within  {@link #comboLocation}.
 */
    @Override public void widgetSelected(    SelectionEvent arg0){
      final String path=wizardImport.getController().actionShowOpenFileDialog(getShell(),"String_Node_Str");
      if (path == null) {
        return;
      }
      if (comboLocation.indexOf(path) == -1) {
        comboLocation.add(path,0);
      }
      comboLocation.select(comboLocation.indexOf(path));
      comboLocation.notifyListeners(SWT.Selection,null);
    }
  }
);
}