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

Bug 317478

Summary: [Comp d] Unable to add second port to component
Product: [Modeling] GMF-Tooling Reporter: Elena Shaverdova <eshaverdova>
Component: SamplesAssignee: Michael Golubev <borlander>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: borlander
Version: unspecified   
Target Milestone: ---   
Hardware: PC   
OS: Windows XP   
Whiteboard:

Description Elena Shaverdova CLA 2010-06-21 12:46:47 EDT
Build Identifier: I20100513-1500

When add second port to component, nothing is added, exception in log:

!MESSAGE Unhandled event loop exception
!STACK 0
org.eclipse.swt.SWTException: Failed to execute runnable (java.lang.IllegalArgumentException: Invalid side argument: 0. Should be the value from PositionConstants: WEST, EAST, NORTH or SOUTH)
	at org.eclipse.swt.SWT.error(SWT.java:4083)
	at org.eclipse.swt.SWT.error(SWT.java:3998)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:137)
	at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4041)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660)
	at org.eclipse.ui.internal.Workbench.runEventLoop(Workbench.java:2624)
	at org.eclipse.ui.internal.Workbench.runUI(Workbench.java:2588)
	at org.eclipse.ui.internal.Workbench.access$4(Workbench.java:2422)
	at org.eclipse.ui.internal.Workbench$7.run(Workbench.java:670)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:332)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:663)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:149)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:115)
	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:369)
	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:619)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:574)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1407)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1383)
Caused by: java.lang.IllegalArgumentException: Invalid side argument: 0. Should be the value from PositionConstants: WEST, EAST, NORTH or SOUTH
	at org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator.calculateNextNonConflictingPosition(BorderItemLocator.java:447)
	at org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator.locateOnBorder(BorderItemLocator.java:394)
	at org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemLocator.relocate(BorderItemLocator.java:550)
	at org.eclipse.draw2d.DelegatingLayout.layout(DelegatingLayout.java:71)
	at org.eclipse.draw2d.Figure$LayoutNotifier.layout(Figure.java:1885)
	at org.eclipse.draw2d.Figure.layout(Figure.java:1043)
	at org.eclipse.draw2d.Figure.validate(Figure.java:1812)
	at org.eclipse.gmf.runtime.diagram.ui.internal.figures.BorderItemContainerFigure.validate(BorderItemContainerFigure.java:340)
	at org.eclipse.draw2d.Figure.validate(Figure.java:1814)
	at org.eclipse.gmf.runtime.diagram.ui.figures.BorderedNodeFigure.validate(BorderedNodeFigure.java:261)
	at org.eclipse.draw2d.Figure.validate(Figure.java:1814)
	at org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemsAwareFreeFormLayer.validate(BorderItemsAwareFreeFormLayer.java:168)
	at org.eclipse.gmf.runtime.diagram.ui.editparts.DiagramEditPart$1.validate(DiagramEditPart.java:157)
	at org.eclipse.draw2d.Figure.validate(Figure.java:1814)
	at org.eclipse.gmf.runtime.diagram.ui.figures.BorderItemsAwareFreeFormLayer.validate(BorderItemsAwareFreeFormLayer.java:168)
	at org.eclipse.draw2d.Figure.validate(Figure.java:1814)
	at org.eclipse.draw2d.Figure.validate(Figure.java:1814)
	at org.eclipse.draw2d.Figure.validate(Figure.java:1814)
	at org.eclipse.draw2d.FreeformViewport$FreeformViewportLayout.calculatePreferredSize(FreeformViewport.java:28)
	at org.eclipse.draw2d.AbstractLayout.getPreferredSize(AbstractLayout.java:93)
	at org.eclipse.draw2d.AbstractHintLayout.getPreferredSize(AbstractHintLayout.java:85)
	at org.eclipse.draw2d.Figure.getPreferredSize(Figure.java:749)
	at org.eclipse.draw2d.ScrollPaneSolver.solve(ScrollPaneSolver.java:75)
	at org.eclipse.draw2d.FigureCanvas.layoutViewport(FigureCanvas.java:315)
	at org.eclipse.draw2d.FigureCanvas.access$4(FigureCanvas.java:313)
	at org.eclipse.draw2d.FigureCanvas$3.notifyValidating(FigureCanvas.java:278)
	at org.eclipse.draw2d.UpdateManager.fireValidating(UpdateManager.java:123)
	at org.eclipse.draw2d.DeferredUpdateManager.performValidation(DeferredUpdateManager.java:203)
	at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramGraphicalViewer$ToggleUpdateManager.performValidation(DiagramGraphicalViewer.java:124)
	at org.eclipse.draw2d.DeferredUpdateManager.performUpdate(DeferredUpdateManager.java:179)
	at org.eclipse.gmf.runtime.diagram.ui.parts.DiagramGraphicalViewer$ToggleUpdateManager.performUpdate(DiagramGraphicalViewer.java:114)
	at org.eclipse.draw2d.DeferredUpdateManager$UpdateRequest.run(DeferredUpdateManager.java:48)
	at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
	at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134)
	... 23 more

Reproducible: Always

Steps to Reproduce:
1.Create a component on component d.
2.Add first port.
3.Try to add second port. Nothing is created, exception in log occurs.
Comment 1 Michael Golubev CLA 2010-06-23 10:56:00 EDT
This is common problem for all of the SideAffixed elements that don't have preferride side set.
Comment 2 Michael Golubev CLA 2010-06-23 10:56:53 EDT
Workarounded through the custom template and regenerated for all diagrams.
Comment 3 Michael Golubev CLA 2010-06-23 10:57:17 EDT
Fix committed, closing now