Bug 73556 [Encoding] Changing editor encoding causes Eclipse to freeze for a while
Here's my setup: - latest 3.0.1 build (M20040908) - large number of projects in my workspace (i.e. all of Eclipse loaded from the repository) - latest IBM VM and JXE support I changed the encoding on the Editors preference page and clicked OK. There's was a fairly long (probably in the order of a minute) delay where there was something going on but there was no progress indication. At first, Eclipse was totally frozen (i.e. I could not even move the mouse). The preferences dialog remained open with OK diabled but Cancel enabled. Once the mouse was movable again, there was a busy cursor when the mouse was over the workbench but not when the mouse was over the preferences dialog. Eventually the dialog closed and a build was launched. I don't know what changing the encoding involves but clearly there is some pretty intensive work that is happening inside a busy cursor. Either this should be done in a progress dialog or a background job.
bundles/org.eclipse.ui.ide/src/org/eclipse/ui/ide/IDEEncoding.java
* @see org.eclipse.ui.WorkbenchEncoding
 * @see org.eclipse.core.resources.ResourcesPlugin
 * @since 3.1
 */
public class IDEEncoding {
	
	private static String IDE_ENCODINGS_PREFERENCE = "IDE_ENCODINGS_PREFERENCE"; 
	private static String PREFERENCE_SEPARATOR = "'"; 
	/**
	 * Display constant for the UTF 8 byte order marker for resources.
	 */
	public static String BOM_UTF_8 = "UTF-8 (BOM)";
	/**
	 * Display constant for the UTF 16 big endian byte order marker for
	 * resources.
	 */
	public static String BOM_UTF_16BE = "UTF-16 Big-Endian (BOM)";
	/**
	 * Display constant for the UTF 16 little endian byte order marker for
	 * resources.
	 */
	public static String BOM_UTF_16LE = "UTF-16 Little-Endian (BOM)";
	/**
	 * Get all of the available encodings including any that were saved as a
	 * preference in the IDE or in core resources.
	 * 
	 * @return List of String
	 */
	public static List getIDEEncodings() {
		List encodings = new ArrayList(WorkbenchEncoding.getDefinedEncodings());