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
entry= classpath[index];
				mementos.add(entry.getMemento());
			}
			copy.setAttribute(IJavaLaunchConfigurationConstants.ATTR_CLASSPATH, mementos);
			configuration= copy.doSave();
			monitor.worked(1);
			final ILaunchConfigurationDelegate delegate= configuration.getType().getDelegate(ILaunchManager.RUN_MODE);
			if (delegate instanceof SerialVersionLaunchConfigurationDelegate) {
				final SerialVersionLaunchConfigurationDelegate extension= (SerialVersionLaunchConfigurationDelegate) delegate;
				configuration.launch(ILaunchManager.RUN_MODE, new SubProgressMonitor(monitor, 1), true, false);
				monitor.worked(1);
				serialVersionID= extension.getSerialVersionID();
				final String message= extension.getErrorMessage();
				if (message != null && message.length() > 0)
					displayErrorMessage(message);
			} else
				displayErrorMessage(CorrectionMessages.SerialVersionHashProposal_wrong_launch_delegate);
		} catch (CoreException exception) {
			displayErrorMessage(exception);
		} catch (IOException exception) {
			displayErrorMessage(exception);
		} finally {
			try {
				if (configuration != null)
					configuration.delete();
			} catch (CoreException exception) {
				JavaPlugin.log(exception);
			}
			monitor.done();
		}