Buggy code:
public class ResourceInfoPage extends PropertyPage { private Button editableBox ; private Button derivedBox ; private boolean previousReadOnlyValue ; private boolean previousDerivedValue ; private static String READ_ONLY = WorkbenchMessages . getString ( "ResourceInfo.readOnly" ) ; private static String DERIVED = WorkbenchMessages . getString ( "ResourceInfo.derived" ) ; private static String TYPE_TITLE = WorkbenchMessages . getString ( "ResourceInfo.type" ) ; private static String LOCATION_TITLE = WorkbenchMessages . getString ( "ResourceInfo.location" ) ; private static String RESOLVED_LOCATION_TITLE = WorkbenchMessages . getString ( "ResourceInfo.resolvedLocation" ) ; private static String SIZE_TITLE = WorkbenchMessages . getString ( "ResourceInfo.size" ) ; private static String BYTES_LABEL = WorkbenchMessages . getString ( "ResourceInfo.bytes" ) ; private static String FILE_LABEL = WorkbenchMessages . getString ( "ResourceInfo.file" ) ; private static String FOLDER_LABEL = WorkbenchMessages . getString ( "ResourceInfo.folder" ) ; private static String PROJECT_LABEL = WorkbenchMessages . getString ( "ResourceInfo.project" ) ; private static String LINKED_FILE_LABEL = WorkbenchMessages . getString ( "ResourceInfo.linkedFile" ) ; private static String LINKED_FOLDER_LABEL = WorkbenchMessages . getString ( "ResourceInfo.linkedFolder" ) ; private static String UNKNOWN_LABEL = WorkbenchMessages . getString ( "ResourceInfo.unknown" ) ; private static String NOT_LOCAL_TEXT = WorkbenchMessages . getString ( "ResourceInfo.notLocal" ) ; private static String MISSING_PATH_VARIABLE_TEXT = WorkbenchMessages . getString ( "ResourceInfo.undefinedPathVariable" ) ; private static String NOT_EXIST_TEXT = WorkbenchMessages . getString ( "ResourceInfo.notExist" ) ; private static String PATH_TITLE = WorkbenchMessages . getString ( "ResourceInfo.path" ) ; private static String TIMESTAMP_TITLE = WorkbenchMessages . getString ( "ResourceInfo.lastModified" ) ; private static String FILE_NOT_EXIST_TEXT = WorkbenchMessages . getString ( "ResourceInfo.fileNotExist" ) ; private static final int MAX_VALUE_WIDTH = 80 ; private Composite createBasicInfoGroup ( Composite parent , IResource resource ) { } protected Control createContents ( Composite parent ) { <START_BUG> WorkbenchHelp . setHelp ( parent , RESOURCE_INFO_PROPERTY_PAGE ) ; <END_BUG> IResource resource = ( ( IResource ) ( getElement ( ) ) ) ; if ( ( resource . getType ( ) ) != ( IResource . PROJECT ) ) { this . previousReadOnlyValue = resource . isReadOnly ( ) ; this . previousDerivedValue = resource . isDerived ( ) ; } Composite composite = new Composite ( parent , SWT . NONE ) ; GridLayout layout = new GridLayout ( ) ; layout . marginWidth = 0 ; layout . marginHeight = 0 ; composite . setLayout ( layout ) ; GridData data = new GridData ( GridData . FILL ) ; data . grabExcessHorizontalSpace = true ; composite . setLayoutData ( data ) ; composite . setFont ( parent . getFont ( ) ) ; createBasicInfoGroup ( composite , resource ) ; createSeparator ( composite ) ; createStateGroup ( composite , resource ) ; return composite ; } private void createEditableButton ( Composite composite ) { } private void createDerivedButton ( Composite composite ) { } private void createSeparator ( Composite composite ) { } private void createStateGroup ( Composite parent , IResource resource ) { } private String getDateStringValue ( IResource resource ) { } private String getLocationText ( IResource resource ) { } private String getResolvedLocationText ( IResource resource ) { } private String getSizeString ( IFile file ) { } private String getTypeString ( IResource resource ) { } private boolean isPathVariable ( IResource resource ) { } protected void performDefaults ( ) { } public boolean performOk ( ) { } }

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