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
Assert.isNotNull(fragment);
		try {
			PlatformUI.getWorkbench().getProgressService().busyCursorWhile(new IRunnableWithProgress() {
				public final void run(final IProgressMonitor monitor) {
					Assert.isNotNull(monitor);
					fragment.setInitializer(computeDefaultExpression(monitor));
				}
			});
		} catch (InvocationTargetException exception) {
			JavaPlugin.log(exception);
		} catch (InterruptedException exception) {
			
		}
	}
	/*
	 * @see org.eclipse.jdt.internal.ui.text.correction.AbstractSerialVersionProposal#addLinkedPositions(org.eclipse.jdt.core.dom.rewrite.ASTRewrite, org.eclipse.jdt.core.dom.VariableDeclarationFragment)
	 */
	protected final void addLinkedPositions(final ASTRewrite rewrite, final VariableDeclarationFragment fragment) {
		
	}
	/*
	 * @see org.eclipse.jdt.internal.ui.text.correction.AbstractSerialVersionProposal#computeDefaultExpression(org.eclipse.core.runtime.IProgressMonitor)
	 */
	protected final Expression computeDefaultExpression(final IProgressMonitor monitor) {
		Assert.isNotNull(monitor);
		long serialVersionID= SERIAL_VALUE;
		ILaunchConfiguration configuration= null;
		try {
			monitor.beginTask(CorrectionMessages.SerialVersionHashProposal_computing_id, 7);
			final ICompilationUnit unit= getCompilationUnit();