Program: 108211
Project: 108211
Buggy source:
/** 
 * Creates the design of this page This adds all the controls to the page along with their listeners.
 * @param parent the parent
 * @note {@link #tablePreview} is not visible until a file is loaded.
 */
public void createControl(Composite parent){
  Composite container=new Composite(parent,SWT.NULL);
  setControl(container);
  container.setLayout(new GridLayout(3,false));
  lblLocation=new Label(container,SWT.NONE);
  lblLocation.setLayoutData(new GridData(SWT.RIGHT,SWT.CENTER,false,false,1,1));
  lblLocation.setText("String_Node_Str");
  comboLocation=new Combo(container,SWT.READ_ONLY);
  comboLocation.setLayoutData(new GridData(SWT.FILL,SWT.CENTER,true,false,1,1));
  comboLocation.addSelectionListener(new SelectionAdapter(){
    /** 
 * Resets   {@link customSeparator} and evaluates page
 */
    @Override public void widgetSelected(    SelectionEvent arg0){
      lblSeparator.setVisible(true);
      comboSeparator.setVisible(true);
      lblDelimiter.setVisible(true);
      comboDelimiter.setVisible(true);
      lblLinebreak.setVisible(true);
      comboLinebreak.setVisible(true);
      lblEscape.setVisible(true);
      comboEscape.setVisible(true);
      btnContainsHeader.setVisible(true);
      customSeparator=false;
      evaluatePage();
    }
  }
);
  btnChoose=new Button(container,SWT.NONE);
  btnChoose.setText("String_Node_Str");
  btnChoose.addSelectionListener(new SelectionAdapter(){
    /** 
 * Opens a file selection dialog for CSV files If a valid CSV file was selected, it is added to  {@link #comboLocation} when it wasn't already there. It is thenpreselected within  {@link #comboLocation} and the page isevaluated  {@see #evaluatePage}.
 */
    @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);
    }
  }
);
  lblSeparator=new Label(container,SWT.NONE);
  lblSeparator.setVisible(false);
  lblSeparator.setLayoutData(new GridData(SWT.RIGHT,SWT.CENTER,false,false,1,1));
  lblSeparator.setText("String_Node_Str");
  comboSeparator=new Combo(container,SWT.READ_ONLY);
  comboSeparator.setVisible(false);
  for (  final String s : labels) {
    comboSeparator.add(s);
  }
  comboSeparator.select(selectedSeparator);
  comboSeparator.setLayoutData(new GridData(SWT.FILL,SWT.CENTER,true,false,1,1));
  comboSeparator.addSelectionListener(new SelectionAdapter(){
    /** 
 * Set selection index and customSeparator and (re-)evaluates page
 */
    @Override public void widgetSelected(    final SelectionEvent arg0){
      selectedSeparator=comboSeparator.getSelectionIndex();
      customSeparator=true;
      evaluatePage();
    }
  }
);
  new Label(container,SWT.NONE);
  lblDelimiter=new Label(container,SWT.NONE);
  lblDelimiter.setVisible(false);
  lblDelimiter.setLayoutData(new GridData(SWT.RIGHT,SWT.CENTER,false,false,1,1));
  lblDelimiter.setText("String_Node_Str");
  comboDelimiter=new Combo(container,SWT.READ_ONLY);
  comboDelimiter.setVisible(false);
  for (  final char c : delimiters) {
    comboDelimiter.add(String.valueOf(c));
  }
  comboDelimiter.select(selectedDelimiter);
  comboDelimiter.setLayoutData(new GridData(SWT.FILL,SWT.CENTER,true,false,1,1));
  comboDelimiter.addSelectionListener(new SelectionAdapter(){
    /** 
 * Set selection index and custom delimiter and (re-)evaluates page
 */
    @Override public void widgetSelected(    final SelectionEvent arg0){
      selectedDelimiter=comboDelimiter.getSelectionIndex();
      evaluatePage();
    }
  }
);
  new Label(container,SWT.NONE);
  lblEscape=new Label(container,SWT.NONE);
  lblEscape.setVisible(false);
  lblEscape.setLayoutData(new GridData(SWT.RIGHT,SWT.CENTER,false,false,1,1));
  lblEscape.setText("String_Node_Str");
  comboEscape=new Combo(container,SWT.READ_ONLY);
  comboEscape.setVisible(false);
  for (  final char c : escapes) {
    comboEscape.add(String.valueOf(c));
  }
  comboEscape.select(selectedEscape);
  comboEscape.setLayoutData(new GridData(SWT.FILL,SWT.CENTER,true,false,1,1));
  comboEscape.addSelectionListener(new SelectionAdapter(){
    /** 
 * Set selection index and custom delimiter and (re-)evaluates page
 */
    @Override public void widgetSelected(    final SelectionEvent arg0){
      selectedEscape=comboEscape.getSelectionIndex();
      evaluatePage();
    }
  }
);
  new Label(container,SWT.NONE);
  lblLinebreak=new Label(container,SWT.NONE);
  lblLinebreak.setVisible(false);
  lblLinebreak.setLayoutData(new GridData(SWT.RIGHT,SWT.CENTER,false,false,1,1));
  lblLinebreak.setText("String_Node_Str");
  comboLinebreak=new Combo(container,SWT.READ_ONLY);
  comboLinebreak.setVisible(false);
  for (  final String c : linebreaklabels) {
    comboLinebreak.add(String.valueOf(c));
  }
  comboLinebreak.select(selectedEscape);
  comboLinebreak.setLayoutData(new GridData(SWT.FILL,SWT.CENTER,true,false,1,1));
  comboLinebreak.addSelectionListener(new SelectionAdapter(){
    /** 
 * Set selection index and custom line break and (re-)evaluates page
 */
    @Override public void widgetSelected(    final SelectionEvent arg0){
      selectedEscape=comboLinebreak.getSelectionIndex();
      evaluatePage();
    }
  }
);
  new Label(container,SWT.NONE);
  new Label(container,SWT.NONE);
  btnContainsHeader=new Button(container,SWT.CHECK);
  btnContainsHeader.setVisible(false);
  btnContainsHeader.setText("String_Node_Str");
  btnContainsHeader.setSelection(true);
  btnContainsHeader.addSelectionListener(new SelectionAdapter(){
    /** 
 * (Re-)Evaluate page
 */
    @Override public void widgetSelected(    SelectionEvent arg0){
      evaluatePage();
    }
  }
);
  new Label(container,SWT.NONE);
  new Label(container,SWT.NONE);
  new Label(container,SWT.NONE);
  new Label(container,SWT.NONE);
  tableViewerPreview=new TableViewer(container,SWT.BORDER | SWT.FULL_SELECTION);
  tableViewerPreview.setContentProvider(new ArrayContentProvider());
  tablePreview=tableViewerPreview.getTable();
  GridData gd_tablePreview=new GridData(SWT.FILL,SWT.FILL,true,true,3,1);
  gd_tablePreview.heightHint=150;
  tablePreview.setLayoutData(gd_tablePreview);
  tablePreview.setLinesVisible(true);
  tablePreview.setVisible(false);
  setPageComplete(false);
}

Fixed version (ground truth):
/** 
 * Creates the design of this page This adds all the controls to the page along with their listeners.
 * @param parent the parent
 * @note {@link #tablePreview} is not visible until a file is loaded.
 */
public void createControl(Composite parent){
  Composite container=new Composite(parent,SWT.NULL);
  setControl(container);
  container.setLayout(new GridLayout(3,false));
  lblLocation=new Label(container,SWT.NONE);
  lblLocation.setLayoutData(new GridData(SWT.RIGHT,SWT.CENTER,false,false,1,1));
  lblLocation.setText("String_Node_Str");
  comboLocation=new Combo(container,SWT.READ_ONLY);
  comboLocation.setLayoutData(new GridData(SWT.FILL,SWT.CENTER,true,false,1,1));
  comboLocation.addSelectionListener(new SelectionAdapter(){
    /** 
 * Resets   {@link customSeparator} and evaluates page
 */
    @Override public void widgetSelected(    SelectionEvent arg0){
      lblSeparator.setVisible(true);
      comboSeparator.setVisible(true);
      lblDelimiter.setVisible(true);
      comboDelimiter.setVisible(true);
      lblLinebreak.setVisible(true);
      comboLinebreak.setVisible(true);
      lblEscape.setVisible(true);
      comboEscape.setVisible(true);
      btnContainsHeader.setVisible(true);
      customSeparator=false;
      customLinebreak=false;
      evaluatePage();
    }
  }
);
  btnChoose=new Button(container,SWT.NONE);
  btnChoose.setText("String_Node_Str");
  btnChoose.addSelectionListener(new SelectionAdapter(){
    /** 
 * Opens a file selection dialog for CSV files If a valid CSV file was selected, it is added to  {@link #comboLocation} when it wasn't already there. It is thenpreselected within  {@link #comboLocation} and the page isevaluated  {@see #evaluatePage}.
 */
    @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);
    }
  }
);
  lblSeparator=new Label(container,SWT.NONE);
  lblSeparator.setVisible(false);
  lblSeparator.setLayoutData(new GridData(SWT.RIGHT,SWT.CENTER,false,false,1,1));
  lblSeparator.setText("String_Node_Str");
  comboSeparator=new Combo(container,SWT.READ_ONLY);
  comboSeparator.setVisible(false);
  for (  final String s : labels) {
    comboSeparator.add(s);
  }
  comboSeparator.select(selectedSeparator);
  comboSeparator.setLayoutData(new GridData(SWT.FILL,SWT.CENTER,true,false,1,1));
  comboSeparator.addSelectionListener(new SelectionAdapter(){
    /** 
 * Set selection index and customSeparator and (re-)evaluates page
 */
    @Override public void widgetSelected(    final SelectionEvent arg0){
      selectedSeparator=comboSeparator.getSelectionIndex();
      customSeparator=true;
      evaluatePage();
    }
  }
);
  new Label(container,SWT.NONE);
  lblDelimiter=new Label(container,SWT.NONE);
  lblDelimiter.setVisible(false);
  lblDelimiter.setLayoutData(new GridData(SWT.RIGHT,SWT.CENTER,false,false,1,1));
  lblDelimiter.setText("String_Node_Str");
  comboDelimiter=new Combo(container,SWT.READ_ONLY);
  comboDelimiter.setVisible(false);
  for (  final char c : delimiters) {
    comboDelimiter.add(String.valueOf(c));
  }
  comboDelimiter.select(selectedDelimiter);
  comboDelimiter.setLayoutData(new GridData(SWT.FILL,SWT.CENTER,true,false,1,1));
  comboDelimiter.addSelectionListener(new SelectionAdapter(){
    /** 
 * Set selection index and custom delimiter and (re-)evaluates page
 */
    @Override public void widgetSelected(    final SelectionEvent arg0){
      selectedDelimiter=comboDelimiter.getSelectionIndex();
      evaluatePage();
    }
  }
);
  new Label(container,SWT.NONE);
  lblEscape=new Label(container,SWT.NONE);
  lblEscape.setVisible(false);
  lblEscape.setLayoutData(new GridData(SWT.RIGHT,SWT.CENTER,false,false,1,1));
  lblEscape.setText("String_Node_Str");
  comboEscape=new Combo(container,SWT.READ_ONLY);
  comboEscape.setVisible(false);
  for (  final char c : escapes) {
    comboEscape.add(String.valueOf(c));
  }
  comboEscape.select(selectedEscape);
  comboEscape.setLayoutData(new GridData(SWT.FILL,SWT.CENTER,true,false,1,1));
  comboEscape.addSelectionListener(new SelectionAdapter(){
    /** 
 * Set selection index and custom delimiter and (re-)evaluates page
 */
    @Override public void widgetSelected(    final SelectionEvent arg0){
      selectedEscape=comboEscape.getSelectionIndex();
      evaluatePage();
    }
  }
);
  new Label(container,SWT.NONE);
  lblLinebreak=new Label(container,SWT.NONE);
  lblLinebreak.setVisible(false);
  lblLinebreak.setLayoutData(new GridData(SWT.RIGHT,SWT.CENTER,false,false,1,1));
  lblLinebreak.setText("String_Node_Str");
  comboLinebreak=new Combo(container,SWT.READ_ONLY);
  comboLinebreak.setVisible(false);
  for (  final String c : linebreaklabels) {
    comboLinebreak.add(String.valueOf(c));
  }
  comboLinebreak.select(selectedLinebreak);
  comboLinebreak.setLayoutData(new GridData(SWT.FILL,SWT.CENTER,true,false,1,1));
  comboLinebreak.addSelectionListener(new SelectionAdapter(){
    /** 
 * Set selection index and custom line break and (re-)evaluates page
 */
    @Override public void widgetSelected(    final SelectionEvent arg0){
      selectedLinebreak=comboLinebreak.getSelectionIndex();
      customLinebreak=true;
      evaluatePage();
    }
  }
);
  new Label(container,SWT.NONE);
  new Label(container,SWT.NONE);
  btnContainsHeader=new Button(container,SWT.CHECK);
  btnContainsHeader.setVisible(false);
  btnContainsHeader.setText("String_Node_Str");
  btnContainsHeader.setSelection(true);
  btnContainsHeader.addSelectionListener(new SelectionAdapter(){
    /** 
 * (Re-)Evaluate page
 */
    @Override public void widgetSelected(    SelectionEvent arg0){
      evaluatePage();
    }
  }
);
  new Label(container,SWT.NONE);
  new Label(container,SWT.NONE);
  new Label(container,SWT.NONE);
  new Label(container,SWT.NONE);
  tableViewerPreview=new TableViewer(container,SWT.BORDER | SWT.FULL_SELECTION);
  tableViewerPreview.setContentProvider(new ArrayContentProvider());
  tablePreview=tableViewerPreview.getTable();
  GridData gd_tablePreview=new GridData(SWT.FILL,SWT.FILL,true,true,3,1);
  gd_tablePreview.heightHint=150;
  tablePreview.setLayoutData(gd_tablePreview);
  tablePreview.setLinesVisible(true);
  tablePreview.setVisible(false);
  setPageComplete(false);
}