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
final IStatus[] errorStatus = new IStatus[1];
		errorStatus[0] = Status.OK_STATUS;
		final WorkspaceModifyOperation op = (WorkspaceModifyOperation) createOperation(errorStatus);
		WorkspaceJob job = new WorkspaceJob("refresh") { 
			public IStatus runInWorkspace(IProgressMonitor monitor)
					throws CoreException {
				try {
					op.run(monitor);
				} catch (InvocationTargetException e) {
					String msg = NLS.bind(
							IDEWorkbenchMessages.WorkspaceAction_logTitle, getClass()
									.getName(), e.getTargetException());
					throw new CoreException(StatusUtil.newStatus(IStatus.ERROR,
							msg, e.getTargetException()));
				} catch (InterruptedException e) {
					return Status.CANCEL_STATUS;
				}
				return errorStatus[0];
			}
			
		};
		ISchedulingRule rule = op.getRule();
		if (rule != null) {
			job.setRule(rule);
		}
		job.setUser(true);
		job.schedule();
	}
}