JavaModelUtil.reconcile(workingCopyCU);
synchronized (workingCopyCU) { workingCopyCU.reconcile(); }
	protected void run(IStructuredSelection selection) {		IMember[] members= getSelectedMembers(selection);		if (members == null || members.length == 0) {			return;		}				try {			ICompilationUnit cu= members[0].getCompilationUnit();			if (!ActionUtil.isProcessable(getShell(), cu)) {				return;			}						// open the editor, forces the creation of a working copy			IEditorPart editor= EditorUtility.openInEditor(cu);						ICompilationUnit workingCopyCU;			IMember[] workingCopyMembers;			if (cu.isWorkingCopy()) {				workingCopyCU= cu;				workingCopyMembers= members;				JavaModelUtil.reconcile(workingCopyCU);						} else {				// get the corresponding elements from the working copy				workingCopyCU= EditorUtility.getWorkingCopy(cu);				if (workingCopyCU == null) {					showError(ActionMessages.getString("AddJavaDocStubsAction.error.noWorkingCopy")); //$NON-NLS-1$					return;				}				workingCopyMembers= new IMember[members.length];				for (int i= 0; i < members.length; i++) {					IMember member= members[i];					IMember workingCopyMember= (IMember) JavaModelUtil.findMemberInCompilationUnit(workingCopyCU, member);					if (workingCopyMember == null) {						showError(ActionMessages.getFormattedString("AddJavaDocStubsAction.error.memberNotExisting", member.getElementName())); //$NON-NLS-1$						return;					}					workingCopyMembers[i]= workingCopyMember;				}			}						if (ElementValidator.check(workingCopyMembers, getShell(), getDialogTitle(), false))				run(workingCopyMembers);			JavaModelUtil.reconcile(workingCopyCU);			EditorUtility.revealInEditor(editor, members[0]);					} catch (CoreException e) {			ExceptionHandler.handle(e, getShell(), getDialogTitle(), ActionMessages.getString("AddJavaDocStubsAction.error.actionFailed")); //$NON-NLS-1$		}	}