} finally { if (partitioners != null) TextUtilities.addDocumentPartitioners(document, partitioners);
	public void format() {		super.format();		final IDocument document= (IDocument)fDocuments.removeFirst();		final TypedPosition partition= (TypedPosition)fPartitions.removeFirst();		if (document != null && partition != null) {			try {				final TextEdit edit= CodeFormatterUtil.format2(CodeFormatter.K_COMPILATION_UNIT, document.get(), partition.getOffset(), partition.getLength(), 0, TextUtilities.getDefaultLineDelimiter(document), getPreferences());				if (edit != null) {					Map partitioners= null;					if (edit.getChildrenSize() > 20)						partitioners= TextUtilities.removeDocumentPartitioners(document);					edit.apply(document);					if (partitioners != null)						TextUtilities.addDocumentPartitioners(document, partitioners);				}			} catch (MalformedTreeException exception) {				JavaPlugin.log(exception);			} catch (BadLocationException exception) {				// Can only happen on concurrent document modification - log and bail out				JavaPlugin.log(exception);			}		} 	}