Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.
Bug 359756 - UI Freeze on Sample Editor Drag and Drop
Summary: UI Freeze on Sample Editor Drag and Drop
Status: CLOSED DUPLICATE of bug 359043
Alias: None
Product: EMF
Classification: Modeling
Component: Edit (show other bugs)
Version: 2.7.1   Edit
Hardware: Macintosh Mac OS X - Carbon (unsup.)
: P3 major (vote)
Target Milestone: ---   Edit
Assignee: Ed Merks CLA
QA Contact:
URL:
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2011-10-03 15:19 EDT by Miles Parker CLA
Modified: 2011-10-03 17:32 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 Miles Parker CLA 2011-10-03 15:19:35 EDT
1. Select child feature (i.e. Class attribute, operation, reference) from parent EClass.
2. Drag it as if to reorder elements.

In some case, I get the exception below. More often, the UI simply freezes completely. If I select two items and then attempt to drag them, the UI always freezes. I'm not seeing anything on System console.

Puzzled why no-one else has encountered/reported this issue. But I'm pretty sure it showed up on new install of Indigo SR1 with modeling components.

java.lang.NullPointerException
	at org.eclipse.emf.ecore.impl.EClassImpl.getFeatureID(EClassImpl.java:1466)
	at org.eclipse.emf.ecore.util.BasicExtendedMetaData.getAffiliation(BasicExtendedMetaData.java:1339)
	at org.eclipse.emf.edit.command.SetCommand.prepare(SetCommand.java:525)
	at org.eclipse.emf.common.command.AbstractCommand.canExecute(AbstractCommand.java:114)
	at org.eclipse.emf.edit.command.AbstractOverrideableCommand.doCanExecute(AbstractOverrideableCommand.java:120)
	at org.eclipse.emf.edit.command.AbstractOverrideableCommand.canExecute(AbstractOverrideableCommand.java:113)
	at org.eclipse.emf.edit.command.DragAndDropCommand.prepareDropLinkOn(DragAndDropCommand.java:801)
	at org.eclipse.emf.edit.command.DragAndDropCommand.prepareDropOn(DragAndDropCommand.java:707)
	at org.eclipse.emf.edit.command.DragAndDropCommand.prepare(DragAndDropCommand.java:307)
	at org.eclipse.emf.common.command.AbstractCommand.canExecute(AbstractCommand.java:114)
	at org.eclipse.emf.edit.ui.dnd.EditingDomainViewerDropAdapter.drop(EditingDomainViewerDropAdapter.java:230)
	at org.eclipse.swt.dnd.DNDListener.handleEvent(DNDListener.java:90)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4128)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1457)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1480)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1465)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:1270)
	at org.eclipse.swt.dnd.DropTarget.drop(DropTarget.java:726)
	at org.eclipse.swt.dnd.DropTarget.outlineView_acceptDrop_item_childIndex(DropTarget.java:744)
	at org.eclipse.swt.dnd.DropTarget.dropTargetProc(DropTarget.java:469)
	at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
	at org.eclipse.swt.dnd.DropTarget.dndCallSuper(DropTarget.java:208)
	at org.eclipse.swt.dnd.DropTarget.performDragOperation(DropTarget.java:737)
	at org.eclipse.swt.dnd.DropTarget.dropTargetProc(DropTarget.java:454)
	at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
	at org.eclipse.swt.widgets.Widget.callSuper(Widget.java:220)
	at org.eclipse.swt.widgets.Widget.mouseDownSuper(Widget.java:1092)
	at org.eclipse.swt.widgets.Tree.mouseDownSuper(Tree.java:2052)
	at org.eclipse.swt.widgets.Widget.mouseDown(Widget.java:1084)
	at org.eclipse.swt.widgets.Control.mouseDown(Control.java:2519)
	at org.eclipse.swt.widgets.Tree.mouseDown(Tree.java:2007)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5471)
	at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
	at org.eclipse.swt.widgets.Widget.callSuper(Widget.java:220)
	at org.eclipse.swt.widgets.Widget.windowSendEvent(Widget.java:2092)
	at org.eclipse.swt.widgets.Shell.windowSendEvent(Shell.java:2252)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5535)
	at org.eclipse.swt.internal.cocoa.OS.objc_msgSendSuper(Native Method)
	at org.eclipse.swt.widgets.Display.applicationSendEvent(Display.java:4989)
	at org.eclipse.swt.widgets.Display.applicationProc(Display.java:5138)
	at org.eclipse.swt.internal.cocoa.OS.objc_msgSend(Native Method)
	at org.eclipse.swt.internal.cocoa.NSApplication.sendEvent(NSApplication.java:128)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3610)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2696)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2660)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2494)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:674)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:667)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:123)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:110)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:79)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:344)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:179)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
	at java.lang.reflect.Method.invoke(Method.java:597)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:622)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:577)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1410)
Comment 1 Miles Parker CLA 2011-10-03 16:50:27 EDT
I can confirm that this issue is introduced in EMF 2.7.1. Down-grading to 2.7.0 makes the problem go away, and re-installing brings it back.

There seems to be something funky going on with the selection behavior. In the new version when I select an item and drag it it seems that the drag target item (i.e. insertion point) is selected as well.
Comment 2 Ed Merks CLA 2011-10-03 17:32:19 EDT
Yes, it's a regression. :-(

*** This bug has been marked as a duplicate of bug 359043 ***