Bug 102492 [quick fix] Halt in Computing serial version ID...
Hello, My work environments are like the following. Eclipse: 3.1 J2SDK: j2sdk1.4.2_08 OS: Windows XP Professional Plug-in: MyEclipse, XMLBuddy Framworks in the working project: Hibernate 3.0.5, Struts, ... After newly installing Eclipse 3.1, I imported a project created by earlier versions of Eclipse from v2.1. After importing, a list of Problems were detected. Many of them were "The serializable class XxxxXxxx does not declare serialVersionUID..." in the "Problems" view. For the problems, I used the Quick Fix (Cntr-1) menu to "Add generated serial version ID." By doing this way, I created many sercialVersionUID for classes missing them. But the system got halt when I did the same thing for some classes. Those classes are marked with [*] in the list below, as examples. [*] public class FileUploader extends HttpServlet {...} [*] public class SysProfileWrapperImpl implements ProfileWrapper, HttpSessionBindingListener {...} public interface ProfileWrapper extends Serializable {...} [*] public class TimestampTag extends MyTagSupport {...} abstract public class MyTagSupport extends TagSupport {...} The error message poped up in the [Progress Information] dialog box is +---------------------------------------------------------+ | Computing serial version ID... | | |||||||||||||||||||||||||||||||| | | Starting virtual machine... | | [Cancel] [Details >>] | +---------------------------------------------------------+ And it never advanced from a certain point. I clicked the [Cancel] button, and the button became disabled. I waited but nothing happened after that. I couldn't kill the dialog box and so I could get back to the main eclipse window. The [Detail >>] button initially appeared with disabled status. I hope you may simulate the situation I had and fix the problem whatever the solution is... I thank you very much for providing Elipse, very nice development tool for developers like me... Sincerely, Yunseuk Kim
org.eclipse.jdt.ui/ui/org/eclipse/jdt/internal/ui/text/correction/SerialVersionHashProposal.java
*/
	protected static boolean displayYesNoMessage(final String title, final String message) {
		final boolean[] result= { true};
		final Display display= PlatformUI.getWorkbench().getDisplay();
		if (display != null && !display.isDisposed()) {
			display.syncExec(new Runnable() {
				public final void run() {
					if (display != null && !display.isDisposed()) {
						final Shell shell= display.getActiveShell();
						if (shell != null && !shell.isDisposed())
							result[0]= MessageDialog.openQuestion(shell, title, message);
					}
				}
			});
		}
		return result[0];
	}
	/**
	 * Creates a new serial version hash proposal.
	 *
	 * @param unit the compilation unit
	 * @param node the originally selected node
	 */
	public SerialVersionHashProposal(final ICompilationUnit unit, final ASTNode node) {
		super(CorrectionMessages.SerialVersionSubProcessor_createhashed_description, unit, node);
	}
	/*
	 * @see org.eclipse.jdt.internal.ui.text.correction.AbstractSerialVersionProposal#addInitializer(org.eclipse.jdt.core.dom.VariableDeclarationFragment)
	 */
	protected final void addInitializer(final VariableDeclarationFragment fragment) {