Bug 231119 [GlobalActions] RefreshAction markes as @noextend but should be
3.4 Javadoc says: * This class may be instantiated; it may also subclass to extend: * .... The tag * @noextend This class is not intended to be subclassed by clients. got added, which is different. In JDT we subclass RefreshAction to add extra operations to refresh.
bundles/org.eclipse.ui.ide/extensions/org/eclipse/ui/actions/RefreshAction.java
IStructuredSelection currentSelection = getStructuredSelection();
		selectionChanged(StructuredSelection.EMPTY);
		run();
		selectionChanged(currentSelection);
	}
	/*
	 * (non-Javadoc)
	 * 
	 * @see org.eclipse.ui.actions.WorkspaceAction#createOperation(org.eclipse.core.runtime.IStatus[])
	 */
	final protected IRunnableWithProgress createOperation(
			final IStatus[] errorStatus) {
		ISchedulingRule rule = null;
		IResourceRuleFactory factory = ResourcesPlugin.getWorkspace()
				.getRuleFactory();
		List actionResources = new ArrayList(getActionResources());
		if (shouldPerformResourcePruning()) {
			actionResources = pruneResources(actionResources);
		}
		final List resources = actionResources;
		Iterator res = resources.iterator();
		while (res.hasNext()) {
			rule = MultiRule.combine(rule, factory.refreshRule((IResource) res
					.next()));
		}
		return new WorkspaceModifyOperation(rule) {
			public void execute(IProgressMonitor monitor) {
				MultiStatus errors = null;
				monitor.beginTask("", resources.size() * 1000); 
				monitor.setTaskName(getOperationMessage());