Program: 91733
Project: 91733
Buggy source:
private void createPortSettingsSection(final Composite container){
  GridDataFactory.fillDefaults().align(SWT.FILL,SWT.CENTER).grab(false,false).span(3,1).applyTo(new Label(container,SWT.NONE));
  final Button publishAllPortsButton=new Button(container,SWT.CHECK);
  publishAllPortsButton.setText(WizardMessages.getString("String_Node_Str"));
  GridDataFactory.fillDefaults().align(SWT.FILL,SWT.CENTER).span(COLUMNS,1).grab(true,false).applyTo(publishAllPortsButton);
  dbc.bindValue(WidgetProperties.selection().observe(publishAllPortsButton),BeanProperties.value(ImageRunSelectionModel.class,ImageRunSelectionModel.PUBLISH_ALL_PORTS).observe(model));
  final Label portSettingsLabel=new Label(container,SWT.NONE);
  portSettingsLabel.setText(WizardMessages.getString("String_Node_Str"));
  GridDataFactory.fillDefaults().align(SWT.FILL,SWT.CENTER).grab(true,false).span(COLUMNS,1).indent(INDENT,0).applyTo(portSettingsLabel);
  final CheckboxTableViewer exposedPortsTableViewer=createPortSettingsTable(container);
  GridDataFactory.fillDefaults().align(SWT.FILL,SWT.TOP).grab(true,false).span(COLUMNS - 1,1).indent(INDENT,0).hint(200,70).applyTo(exposedPortsTableViewer.getTable());
  final Composite buttonsContainers=new Composite(container,SWT.NONE);
  GridDataFactory.fillDefaults().align(SWT.FILL,SWT.TOP).grab(false,false).applyTo(buttonsContainers);
  GridLayoutFactory.fillDefaults().numColumns(1).margins(0,0).spacing(SWT.DEFAULT,0).applyTo(buttonsContainers);
  final Button addButton=new Button(buttonsContainers,SWT.NONE);
  GridDataFactory.fillDefaults().align(SWT.FILL,SWT.TOP).grab(true,false).applyTo(addButton);
  addButton.setText(WizardMessages.getString("String_Node_Str"));
  addButton.addSelectionListener(onAddPort(exposedPortsTableViewer));
  final Button editButton=new Button(buttonsContainers,SWT.NONE);
  GridDataFactory.fillDefaults().align(SWT.FILL,SWT.TOP).grab(true,false).applyTo(editButton);
  editButton.setText(WizardMessages.getString("String_Node_Str"));
  editButton.setEnabled(false);
  editButton.addSelectionListener(onEditPort(exposedPortsTableViewer));
  final Button removeButton=new Button(buttonsContainers,SWT.NONE);
  GridDataFactory.fillDefaults().align(SWT.FILL,SWT.TOP).grab(true,false).applyTo(removeButton);
  removeButton.setText(WizardMessages.getString("String_Node_Str"));
  removeButton.addSelectionListener(onRemovePorts(exposedPortsTableViewer));
  BeanProperties.value(ImageRunSelectionModel.class,ImageRunSelectionModel.PUBLISH_ALL_PORTS).observe(model).addValueChangeListener(onPublishAllPortsChange(exposedPortsTableViewer.getTable(),addButton,removeButton));
  ViewerSupport.bind(exposedPortsTableViewer,model.getExposedPorts(),BeanProperties.values(ExposedPortModel.class,ExposedPortModel.CONTAINER_PORT,ExposedPortModel.PORT_TYPE,ExposedPortModel.HOST_ADDRESS,ExposedPortModel.HOST_PORT));
  dbc.bindSet(ViewersObservables.observeCheckedElements(exposedPortsTableViewer,ExposedPortModel.class),BeanProperties.set(ImageRunSelectionModel.SELECTED_PORTS).observe(model));
  exposedPortsTableViewer.addSelectionChangedListener(onSelectionChanged(editButton,removeButton));
  exposedPortsTableViewer.addCheckStateListener(onCheckStateChanged());
  togglePortMappingControls(exposedPortsTableViewer.getTable(),addButton,removeButton);
}

Fixed version (ground truth):
private void createPortSettingsSection(final Composite container){
  GridDataFactory.fillDefaults().align(SWT.FILL,SWT.CENTER).grab(false,false).span(3,1).applyTo(new Label(container,SWT.NONE));
  final Button publishAllPortsButton=new Button(container,SWT.CHECK);
  publishAllPortsButton.setText(WizardMessages.getString("String_Node_Str"));
  GridDataFactory.fillDefaults().align(SWT.FILL,SWT.CENTER).span(COLUMNS,1).grab(true,false).applyTo(publishAllPortsButton);
  dbc.bindValue(WidgetProperties.selection().observe(publishAllPortsButton),BeanProperties.value(ImageRunSelectionModel.class,ImageRunSelectionModel.PUBLISH_ALL_PORTS).observe(model));
  final Label portSettingsLabel=new Label(container,SWT.NONE);
  portSettingsLabel.setText(WizardMessages.getString("String_Node_Str"));
  GridDataFactory.fillDefaults().align(SWT.FILL,SWT.CENTER).grab(true,false).span(COLUMNS,1).indent(INDENT,0).applyTo(portSettingsLabel);
  final CheckboxTableViewer exposedPortsTableViewer=createPortSettingsTable(container);
  GridDataFactory.fillDefaults().align(SWT.FILL,SWT.FILL).grab(true,true).span(COLUMNS - 1,1).indent(INDENT,0).hint(200,70).applyTo(exposedPortsTableViewer.getTable());
  final Composite buttonsContainers=new Composite(container,SWT.NONE);
  GridDataFactory.fillDefaults().align(SWT.FILL,SWT.TOP).grab(false,false).applyTo(buttonsContainers);
  GridLayoutFactory.fillDefaults().numColumns(1).margins(0,0).spacing(SWT.DEFAULT,0).applyTo(buttonsContainers);
  final Button addButton=new Button(buttonsContainers,SWT.NONE);
  GridDataFactory.fillDefaults().align(SWT.FILL,SWT.TOP).grab(true,false).applyTo(addButton);
  addButton.setText(WizardMessages.getString("String_Node_Str"));
  addButton.addSelectionListener(onAddPort(exposedPortsTableViewer));
  final Button editButton=new Button(buttonsContainers,SWT.NONE);
  GridDataFactory.fillDefaults().align(SWT.FILL,SWT.TOP).grab(true,false).applyTo(editButton);
  editButton.setText(WizardMessages.getString("String_Node_Str"));
  editButton.setEnabled(false);
  editButton.addSelectionListener(onEditPort(exposedPortsTableViewer));
  final Button removeButton=new Button(buttonsContainers,SWT.NONE);
  GridDataFactory.fillDefaults().align(SWT.FILL,SWT.TOP).grab(true,false).applyTo(removeButton);
  removeButton.setText(WizardMessages.getString("String_Node_Str"));
  removeButton.addSelectionListener(onRemovePorts(exposedPortsTableViewer));
  BeanProperties.value(ImageRunSelectionModel.class,ImageRunSelectionModel.PUBLISH_ALL_PORTS).observe(model).addValueChangeListener(onPublishAllPortsChange(exposedPortsTableViewer.getTable(),addButton,removeButton));
  ViewerSupport.bind(exposedPortsTableViewer,model.getExposedPorts(),BeanProperties.values(ExposedPortModel.class,ExposedPortModel.CONTAINER_PORT,ExposedPortModel.PORT_TYPE,ExposedPortModel.HOST_ADDRESS,ExposedPortModel.HOST_PORT));
  dbc.bindSet(ViewersObservables.observeCheckedElements(exposedPortsTableViewer,ExposedPortModel.class),BeanProperties.set(ImageRunSelectionModel.SELECTED_PORTS).observe(model));
  exposedPortsTableViewer.addSelectionChangedListener(onSelectionChanged(editButton,removeButton));
  exposedPortsTableViewer.addCheckStateListener(onCheckStateChanged());
  togglePortMappingControls(exposedPortsTableViewer.getTable(),addButton,removeButton);
}