Buggy code:
public class ProjectCapabilityEditingPropertyPage extends ProjectCapabilityPropertyPage { private static final int SIZING_WIZARD_WIDTH = 500 ; private static final int SIZING_WIZARD_HEIGHT = 500 ; private TableViewer table ; private Button addButton ; private Button removeButton ; private ArrayList disabledCaps = new ArrayList ( ) ; private Capability selectedCap ; private CapabilityRegistry reg ; public ProjectCapabilityEditingPropertyPage ( ) { } protected Control createContents ( Composite parent ) { Font font = parent . getFont ( ) ; <START_BUG> WorkbenchHelp . setHelp ( parent , PROJECT_CAPABILITY_PROPERTY_PAGE ) ; <END_BUG> noDefaultAndApplyButton ( ) ; reg = WorkbenchPlugin . getDefault ( ) . getCapabilityRegistry ( ) ; Composite topComposite = new Composite ( parent , SWT . NONE ) ; GridLayout layout = new GridLayout ( ) ; layout . marginHeight = 0 ; layout . marginWidth = 0 ; topComposite . setLayout ( layout ) ; topComposite . setLayoutData ( new GridData ( GridData . FILL_BOTH ) ) ; String instructions ; if ( reg . hasCapabilities ( ) ) instructions = WorkbenchMessages . getString ( "ProjectCapabilityPropertyPage.chooseCapabilities" ) ; else instructions = WorkbenchMessages . getString ( "ProjectCapabilityPropertyPage.noCapabilities" ) ; Label label = new Label ( topComposite , SWT . LEFT ) ; label . setFont ( font ) ; label . setText ( instructions ) ; Capability [ ] caps = reg . getProjectDisabledCapabilities ( getProject ( ) ) ; disabledCaps . addAll ( Arrays . asList ( caps ) ) ; Composite mainComposite = new Composite ( topComposite , SWT . NONE ) ; layout = new GridLayout ( ) ; layout . numColumns = 2 ; layout . marginHeight = 0 ; layout . marginWidth = 0 ; mainComposite . setLayout ( layout ) ; mainComposite . setLayoutData ( new GridData ( GridData . FILL_BOTH ) ) ; Composite capComposite = new Composite ( mainComposite , SWT . NONE ) ; layout = new GridLayout ( ) ; layout . marginHeight = 0 ; layout . marginWidth = 0 ; capComposite . setLayout ( layout ) ; capComposite . setLayoutData ( new GridData ( GridData . FILL_BOTH ) ) ; label = new Label ( capComposite , SWT . LEFT ) ; label . setFont ( font ) ; label . setText ( WorkbenchMessages . getString ( "ProjectCapabilitySelectionGroup.capabilities" ) ) ; table = new TableViewer ( capComposite , ( ( ( ( SWT . SINGLE ) | ( SWT . H_SCROLL ) ) | ( SWT . V_SCROLL ) ) | ( SWT . BORDER ) ) ) ; table . getTable ( ) . setLayoutData ( new GridData ( GridData . FILL_BOTH ) ) ; table . getTable ( ) . setFont ( font ) ; table . setLabelProvider ( new ProjectCapabilityEditingPropertyPage . CapabilityLabelProvider ( ) ) ; table . setContentProvider ( getContentProvider ( ) ) ; table . setInput ( getProject ( ) ) ; Composite buttonComposite = new Composite ( mainComposite , SWT . NONE ) ; layout = new GridLayout ( ) ; layout . marginHeight = 0 ; layout . marginWidth = 0 ; buttonComposite . setLayout ( layout ) ; buttonComposite . setLayoutData ( new GridData ( GridData . FILL_VERTICAL ) ) ; label = new Label ( buttonComposite , SWT . LEFT ) ; label . setFont ( font ) ; label . setText ( "" ) ; addButton = new Button ( buttonComposite , SWT . PUSH ) ; addButton . setText ( WorkbenchMessages . getString ( "ProjectCapabilityEditingPropertyPage.add" ) ) ; addButton . setEnabled ( true ) ; addButton . addSelectionListener ( new SelectionListener ( ) { public void widgetSelected ( SelectionEvent e ) { addCapability ( ) ; } public void widgetDefaultSelected ( SelectionEvent e ) { } } ) ; GridData data = new GridData ( ) ; data . horizontalAlignment = GridData . FILL ; data . heightHint = convertVerticalDLUsToPixels ( BUTTON_HEIGHT ) ; int widthHint = convertHorizontalDLUsToPixels ( BUTTON_WIDTH ) ; data . widthHint = Math . max ( widthHint , addButton . computeSize ( DEFAULT , DEFAULT , true ) . x ) ; addButton . setLayoutData ( data ) ; addButton . setFont ( font ) ; removeButton = new Button ( buttonComposite , SWT . PUSH ) ; removeButton . setText ( WorkbenchMessages . getString ( "ProjectCapabilityEditingPropertyPage.remove" ) ) ; removeButton . setEnabled ( false ) ; removeButton . addSelectionListener ( new SelectionListener ( ) { public void widgetSelected ( SelectionEvent e ) { removeCapability ( selectedCap ) ; } public void widgetDefaultSelected ( SelectionEvent e ) { } } ) ; data = new GridData ( ) ; data . horizontalAlignment = GridData . FILL ; data . heightHint = convertVerticalDLUsToPixels ( BUTTON_HEIGHT ) ; widthHint = convertHorizontalDLUsToPixels ( BUTTON_WIDTH ) ; data . widthHint = Math . max ( widthHint , removeButton . computeSize ( DEFAULT , DEFAULT , true ) . x ) ; removeButton . setLayoutData ( data ) ; removeButton . setFont ( font ) ; table . addSelectionChangedListener ( new ISelectionChangedListener ( ) { public void selectionChanged ( SelectionChangedEvent event ) { selectedCap = null ; IStructuredSelection sel = ( ( IStructuredSelection ) ( event . getSelection ( ) ) ) ; if ( sel != null ) selectedCap = ( ( Capability ) ( sel . getFirstElement ( ) ) ) ; removeButton . setEnabled ( ( ( selectedCap ) != null ) ) ; } } ) ; return topComposite ; } private IContentProvider getContentProvider ( ) { } private boolean isDisabledCapability ( Capability cap ) { } private void addCapability ( ) { } private void removeCapability ( Capability cap ) { } public boolean performOk ( ) { } class CapabilityLabelProvider extends LabelProvider { private Map imageTable ; public void dispose ( ) { } public Image getImage ( Object element ) { } public String getText ( Object element ) { } } class StubContainer implements IWizardContainer { public IWizardPage getCurrentPage ( ) { } public Shell getShell ( ) { }

Fix:
WorkbenchHelp . setHelp ( getControl ( ) , PROJECT_CAPABILITY_PROPERTY_PAGE ) ;