Bug 127184 New API elements missing @since
Build id: I20060208-0848 The following new API elements in Eclipse 3.2 are missing "@since 3.2" tags: org.eclipse.jdt.ui.actions.FindExceptionOccurrencesAction#selectionChanged(org.eclipse.jface.viewers.IStructuredSelection) org.eclipse.jdt.ui.actions.FindImplementOccurrencesAction#selectionChanged(org.eclipse.jface.viewers.IStructuredSelection) org.eclipse.jdt.ui.actions.JdtActionConstants#INTRODUCE_INDIRECTION org.eclipse.jdt.ui.jarpackager.JarPackageData#createJarWriter3(org.eclipse.swt.widgets.Shell) org.eclipse.ltk.core.refactoring.CompositeChange#getRefactoringDescriptor() org.eclipse.ltk.core.refactoring.IRefactoringCoreStatusCodes#MISSING_REFACTORING_HISTORY_VERSION org.eclipse.ltk.core.refactoring.IRefactoringCoreStatusCodes#UNSUPPORTED_REFACTORING_HISTORY_VERSION org.eclipse.ltk.core.refactoring.IRefactoringCoreStatusCodes#REFACTORING_HISTORY_IO_ERROR org.eclipse.ltk.core.refactoring.IRefactoringCoreStatusCodes#REFACTORING_HISTORY_FORMAT_ERROR org.eclipse.ltk.core.refactoring.TextChange#getPreviewContent(org.eclipse.ltk.core.refactoring.TextEditBasedChangeGroup[], org.eclipse.jface.text.IRegion, boolean, int, org.eclipse.core.runtime.IProgressMonitor) org.eclipse.ltk.core.refactoring.participants.CopyArguments#toString() org.eclipse.ltk.core.refactoring.participants.CreateArguments#toString() org.eclipse.ltk.core.refactoring.participants.DeleteArguments#toString() org.eclipse.ltk.core.refactoring.participants.MoveArguments#toString() org.eclipse.ltk.core.refactoring.participants.RenameArguments#toString() org.eclipse.ltk.ui.refactoring.RefactoringUI#createLightWeightStatusDialog(org.eclipse.ltk.core.refactoring.RefactoringStatus, org.eclipse.swt.widgets.Shell, java.lang.String)
org.eclipse.ltk.core.refactoring/src/org/eclipse/ltk/core/refactoring/TextChange.java
*  be created. Returning <code>null</code> results in the fact that
	 *  the whole change tree can't be undone. So returning <code>null</code>
	 *  is only recommended if an exception occurred during creating the
	 *  undo change.
	 */
	protected abstract Change createUndoChange(UndoEdit edit);
	
	/**
	 * {@inheritDoc}
	 */
	public Change perform(IProgressMonitor pm) throws CoreException {
		pm.beginTask("", 3); 
		IDocument document= null;
		DocumentRewriteSession session= null;
		
		try {
			document= acquireDocument(new SubProgressMonitor(pm, 1));
			if (document instanceof IDocumentExtension4) {
				session= ((IDocumentExtension4)document).startRewriteSession(
					DocumentRewriteSessionType.UNRESTRICTED);
			}
			TextEditProcessor processor= createTextEditProcessor(document, TextEdit.CREATE_UNDO, false);
			UndoEdit undo= processor.performEdits();
			commit(document, new SubProgressMonitor(pm, 1));
			return createUndoChange(undo);
		} catch (BadLocationException e) {
			throw Changes.asCoreException(e);
		} finally {
			if (document != null) {
				try {