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
/*******************************************************************************
 * Copyright (c) 2004 IBM Corporation and others.
 * All rights reserved. This program and the accompanying materials 
 * are made available under the terms of the Common Public License v1.0
 * which accompanies this distribution, and is available at
 * http://www.eclipse.org/legal/cpl-v10.html
 * 
 * Contributors:
 *     IBM Corporation - initial API and implementation
 *******************************************************************************/
package org.eclipse.ui.ide;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.Preferences;
import org.eclipse.core.runtime.content.IContentDescription;
import org.eclipse.jface.dialogs.ErrorDialog;
import org.eclipse.ui.WorkbenchEncoding;
import org.eclipse.ui.internal.ide.IDEWorkbenchMessages;
import org.eclipse.ui.internal.ide.IDEWorkbenchPlugin;
/**
 * IDEEncoding is a utility class for managing encoding information that
 * includes user preferences from the IDE and core resources.
 *