Bug 14275 - Manifest editor crashes on invalid version number
Summary: Manifest editor crashes on invalid version number
Status: RESOLVED FIXED
Alias: None
Product: PDE
Classification: Eclipse Project
Component: UI (show other bugs)
Version: 2.0   Edit
Hardware: PC Windows XP
: P1 normal (vote)
Target Milestone: ---   Edit
Assignee: Dejan Glozic CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2002-04-19 18:35 EDT by Peter Burka CLA
Modified: 2002-04-20 13:29 EDT (History)
0 users

See Also:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Peter Burka CLA 2002-04-19 18:35:31 EDT
Build M5

I tried to open a Manifest Editor on a plugin.xml file which (apparently) has 
an invalid version number.  I got an error dialog with the attach stack trace, 
and a prompt to exit the workspace.

An invalid version number should handled in a more elegant fashion.

I'm pretty sure that this was handled gracefully in the 20020321 build.

org.eclipse.core.internal.runtime.AssertionFailedException: assertion failed: 
The minor (2nd) component of plugin version identifier, 1.0 001 
(20010423_0619), must be numeric.
	at org.eclipse.core.internal.runtime.Assert.isTrue(Assert.java
(Compiled Code))
	at org.eclipse.core.runtime.PluginVersionIdentifier.<init>
(PluginVersionIdentifier.java(Compiled Code))
	at org.eclipse.pde.internal.core.PDECore.compare(PDECore.java:125)
	at 
org.eclipse.pde.internal.core.plugin.AbstractPluginModelBase.addMatchingFragmen
ts(AbstractPluginModelBase.java:102)
	at 
org.eclipse.pde.internal.core.plugin.AbstractPluginModelBase.getFragmentLocatio
ns(AbstractPluginModelBase.java:77)
	at 
org.eclipse.pde.internal.core.plugin.AbstractPluginModelBase.getNLLookupLocatio
ns(AbstractPluginModelBase.java:58)
	at 
org.eclipse.pde.internal.core.plugin.WorkspacePluginModelBase.createNLResourceH
elper(WorkspacePluginModelBase.java:31)
	at org.eclipse.pde.internal.core.AbstractModel.getResourceString
(AbstractModel.java:56)
	at org.eclipse.pde.internal.ui.editor.manifest.ManifestEditor.getTitle
(ManifestEditor.java:201)
	at org.eclipse.ui.internal.EditorWorkbook.updateEditorTab
(EditorWorkbook.java:806)
	at org.eclipse.ui.internal.EditorWorkbook.createTab
(EditorWorkbook.java:250)
	at org.eclipse.ui.internal.EditorWorkbook.createTab
(EditorWorkbook.java:240)
	at org.eclipse.ui.internal.EditorWorkbook.createPage
(EditorWorkbook.java:222)
	at org.eclipse.ui.internal.EditorWorkbook.add(EditorWorkbook.java:83)
	at org.eclipse.ui.internal.EditorArea.addEditor(EditorArea.java:43)
	at org.eclipse.ui.internal.EditorPresentation.openEditor
(EditorPresentation.java:307)
	at org.eclipse.ui.internal.EditorManager$2.run(EditorManager.java:468)
	at org.eclipse.swt.custom.BusyIndicator.showWhile
(BusyIndicator.java:56)
	at org.eclipse.ui.internal.EditorManager.openInternalEditor
(EditorManager.java:460)
	at org.eclipse.ui.internal.EditorManager.openInternalEditor
(EditorManager.java:529)
	at org.eclipse.ui.internal.EditorManager.openEditor
(EditorManager.java:361)
	at org.eclipse.ui.internal.EditorManager.openEditor
(EditorManager.java:274)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor
(WorkbenchPage.java:1561)
	at org.eclipse.ui.internal.WorkbenchPage.openEditor
(WorkbenchPage.java:1468)
	at org.eclipse.ui.actions.OpenFileAction.openFile
(OpenFileAction.java:91)
	at org.eclipse.ui.actions.OpenSystemEditorAction.run
(OpenSystemEditorAction.java:91)
	at org.eclipse.ui.views.navigator.OpenActionGroup.runDefaultAction
(OpenActionGroup.java:102)
	at 
org.eclipse.ui.views.navigator.ResourceNavigatorActionGroup.runDefaultAction
(ResourceNavigatorActionGroup.java:152)
	at org.eclipse.ui.views.navigator.ResourceNavigator.handleOpen
(ResourceNavigator.java:438)
	at org.eclipse.ui.views.navigator.ResourceNavigator$6.open
(ResourceNavigator.java:244)
	at org.eclipse.jface.viewers.StructuredViewer.fireOpen
(StructuredViewer.java:300)
	at org.eclipse.jface.viewers.StructuredViewer.handleOpen
(StructuredViewer.java:460)
	at org.eclipse.jface.viewers.AbstractTreeViewer$2.handleOpen
(AbstractTreeViewer.java:633)
	at org.eclipse.jface.util.OpenStrategy.handleOpen
(OpenStrategy.java:134)
	at org.eclipse.jface.util.OpenStrategy$8.handleEvent(OpenStrategy.java
(Compiled Code))
	at org.eclipse.jface.util.OpenStrategy$8.handleEvent(OpenStrategy.java
(Compiled Code))
	at org.eclipse.jface.util.OpenStrategy$1.handleEvent(OpenStrategy.java
(Compiled Code))
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java
(Compiled Code))
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java(Compiled 
Code))
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java
(Compiled Code))
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java
(Compiled Code))
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java
(Compiled Code))
	at org.eclipse.ui.internal.Workbench.run(Workbench.java:819)
	at org.eclipse.core.internal.boot.InternalBootLoader.run
(InternalBootLoader.java:777)
	at org.eclipse.core.boot.BootLoader.run(BootLoader.java:319)
	at java.lang.reflect.Method.invoke(Native Method)
	at org.eclipse.core.launcher.Main.basicRun(Main.java:190)
	at org.eclipse.core.launcher.Main.run(Main.java:549)
	at org.eclipse.core.launcher.Main.main(Main.java:390)
Comment 1 Dejan Glozic CLA 2002-04-20 13:29:46 EDT
Good catch. Throughout PDE, I am catching RuntimeException from 
PluginVersionIdentifier constructor except in PDECore.compare method. 

Fixed by performing major.minor.service version comparison if valid version, 
and direct string comparison if RuntimeException is thrown.