Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 348021

Summary: [SysML Block Definition Diagram] NPE during move (advice error) cause freeze
Product: [Modeling] Papyrus Reporter: Yann Tanguy <yann.tanguy>
Component: CoreAssignee: Yann Tanguy <yann.tanguy>
Status: RESOLVED FIXED QA Contact:
Severity: major    
Priority: P3    
Version: 0.8.0   
Target Milestone: ---   
Hardware: PC   
OS: Windows 7   
Whiteboard:

Description Yann Tanguy CLA 2011-06-01 17:22:10 EDT
NPE during move (advice error) cause freeze

What steps will reproduce the problem?
1. Create a BDD on model root
2. Move root Package in ModelExplorer

-- Error Details --
Date: Wed Jun 01 23:18:49 CEST 2011
Message: java.lang.NullPointerException
Severity: Error
Product: Eclipse 1.4.0.20110526-1025 (org.eclipse.epp.package.modeling.product)
Plugin: org.eclipse.ui.navigator
Exception Stack Trace:
java.lang.NullPointerException
	at org.eclipse.papyrus.sysml.diagram.blockdefinition.helper.advice.DeleteViewDuringMoveHelperAdvice.getViewsToDestroy(DeleteViewDuringMoveHelperAdvice.java:76)
	at org.eclipse.papyrus.sysml.diagram.blockdefinition.helper.advice.DeleteViewDuringMoveHelperAdvice.getBeforeMoveCommand(DeleteViewDuringMoveHelperAdvice.java:50)
	at org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelperAdvice.getBeforeEditCommand(AbstractEditHelperAdvice.java:91)
	at org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelper.getEditCommand(AbstractEditHelper.java:166)
	at org.eclipse.gmf.runtime.emf.type.core.edithelper.AbstractEditHelper.getEditCommand(AbstractEditHelper.java:137)
	at org.eclipse.gmf.runtime.emf.type.core.MetamodelType.getEditCommand(MetamodelType.java:107)
	at org.eclipse.papyrus.service.edit.internal.ElementEditService.getEditCommand(ElementEditService.java:84)
	at org.eclipse.papyrus.modelexplorer.dnd.CommonDropAdapterAssistant.getDropIntoCommand(CommonDropAdapterAssistant.java:90)
	at org.eclipse.papyrus.modelexplorer.dnd.CommonDropAdapterAssistant.getDropIntoCommand(CommonDropAdapterAssistant.java:342)
	at org.eclipse.papyrus.modelexplorer.dnd.CommonDropAdapterAssistant.getDrop(CommonDropAdapterAssistant.java:258)
	at org.eclipse.papyrus.modelexplorer.dnd.CommonDropAdapterAssistant.validateDrop(CommonDropAdapterAssistant.java:289)
	at org.eclipse.ui.navigator.CommonDropAdapter$2.run(CommonDropAdapter.java:247)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.navigator.CommonDropAdapter.validateDrop(CommonDropAdapter.java:244)
	at org.eclipse.jface.viewers.ViewerDropAdapter.doDropValidation(ViewerDropAdapter.java:210)
	at org.eclipse.jface.viewers.ViewerDropAdapter.dragOver(ViewerDropAdapter.java:260)
	at org.eclipse.swt.dnd.DNDListener.handleEvent(DNDListener.java:80)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1077)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1062)
	at org.eclipse.swt.widgets.Widget.notifyListeners(Widget.java:774)
	at org.eclipse.swt.dnd.DropTarget.DragOver(DropTarget.java:366)
	at org.eclipse.swt.dnd.DropTarget$3.method4(DropTarget.java:250)
	at org.eclipse.swt.internal.ole.win32.COMObject.callback4(COMObject.java:101)
	at org.eclipse.swt.internal.ole.win32.COM.DoDragDrop(Native Method)
	at org.eclipse.swt.dnd.DragSource.drag(DragSource.java:363)
	at org.eclipse.swt.dnd.DragSource.access$0(DragSource.java:289)
	at org.eclipse.swt.dnd.DragSource$1.handleEvent(DragSource.java:172)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1053)
	at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4163)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3752)
	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(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	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 Yann Tanguy CLA 2011-06-01 18:03:31 EDT
Fixed in r4826:

The NPE itself does not cause the eclipse freeze, it occurs while moving an element in the ModelExplorer in one of its children (only if the move is detected as a re-order action).