Bug 501594 - [SysML 1.4][BDD] Port size modification not retained.
Summary: [SysML 1.4][BDD] Port size modification not retained.
Status: NEW
Alias: None
Product: Papyrus
Classification: Modeling
Component: SysML (show other bugs)
Version: 0.9.1   Edit
Hardware: All All
: P3 critical (vote)
Target Milestone: ---   Edit
Assignee: Project Inbox CLA
QA Contact: Benoit Maggi CLA
URL:
Whiteboard:
Keywords:
Depends on: 507045 466572
Blocks:
  Show dependency tree
 
Reported: 2016-09-16 07:54 EDT by Johan Van Noten CLA
Modified: 2018-12-20 08:26 EST (History)
6 users (show)

See Also:


Attachments
Good (Left) and bad (right) screenshot (29.92 KB, image/png)
2016-09-16 07:54 EDT, Johan Van Noten CLA
no flags Details
Small model with peristent issue. (3.37 KB, application/x-zip-compressed)
2016-09-16 09:25 EDT, Johan Van Noten CLA
no flags Details
Comparison CS/IBD model (7.60 KB, application/x-zip-compressed)
2016-10-11 08:16 EDT, Johan Van Noten CLA
no flags Details
Comparison CS/IBD Screenshot (27.92 KB, image/png)
2016-10-11 08:17 EDT, Johan Van Noten CLA
no flags Details

Note You need to log in before you can comment on or make changes to this bug.
Description Johan Van Noten CLA 2016-09-16 07:54:34 EDT
Created attachment 264215 [details]
Good (Left) and bad (right) screenshot

Version: Papyrus & SysML 1.4 today's nightly (20160915)

Scenario:
* Draw an IBD with a port on an edge.
* Resize the port.
* Save the model.

Observation:
Sometimes the port's size is retained, sometimes it isn't.
I didn't find a good reproduction strategy, but it seems I have it once a day or so (on my Windows PC).
Also confirmed on a Mac, so I guess it is not specific to the model instance, nor the PC/platform instance.
It seems the upper-lefthand corner of the resized port is retained, but the size isn't, so the port is shown in default size at a location away from the edge.

The attachment contains two screenshots:
* Good one
* Bad one (from a different model, but also there the port was just resized).
Comment 1 Klaas Gadeyne CLA 2016-09-16 08:30:44 EDT
Might not necessarily be a SysML 1.4 problem, see https://bugs.eclipse.org/bugs/show_bug.cgi?id=466572#c3

(but I can confirm the bug)
Comment 2 Johan Van Noten CLA 2016-09-16 09:25:24 EDT
Created attachment 264217 [details]
Small model with peristent issue.

The attached small model shows a situation that I can't get out of:
* Has a resized port
* Has a port inside this resized port

--> I can't resize anymore.
Comment 3 Benoit Maggi CLA 2016-09-29 03:21:07 EDT
I didn't manage to reproduce the problem either on neon or oxygen.
I resized the port in the attached model without any problem.

Did you got any log on the subject?
Comment 4 Johan Van Noten CLA 2016-09-29 04:17:09 EDT
Hi Benoit, this looks more and more like a race condition to me.
When I open the attached model in a brand-new workspace, it fails.
When I try to move het port a bit, restart Eclipse etc, it can get working again. Then it keeps working for ever (or at least as long as I tried ...)

I can make it fail again by removing the .metadata and importing the project again.

As far as Exceptions are concerned:
* I saw once (but I lost the error.log) gmf complaining about an invalid position.
* I did see (once) a message from declarative services, but I guess that is not related.
* Additionally, I see some messages about "refresh inside refresh" and an exception. Strangely enough, I did see that only in a case in which it "automatically" switched from non-working to working.

!ENTRY org.eclipse.papyrus.infra.core.sasheditor 2 0 2016-09-29 10:07:13.628
!MESSAGE refresh inside refresh !

!ENTRY org.eclipse.papyrus.infra.core.sasheditor 2 0 2016-09-29 10:07:16.966
!MESSAGE refresh inside refresh !

!ENTRY org.eclipse.papyrus.infra.core.sasheditor 2 0 2016-09-29 10:07:20.092
!MESSAGE refresh inside refresh !

!ENTRY org.eclipse.e4.ui.workbench 4 0 2016-09-29 10:07:23.001
!MESSAGE Error disposing widget for : org.eclipse.e4.ui.model.application.ui.basic.impl.PartImpl model.di
!STACK 0
java.lang.NullPointerException
	at org.eclipse.swt.custom.CTabFolder.getItem(CTabFolder.java:908)
	at org.eclipse.papyrus.infra.core.sasheditor.internal.PTabFolder.getItemIndex(PTabFolder.java:395)
	at org.eclipse.papyrus.infra.core.sasheditor.internal.PTabFolder.handleFolderReselected(PTabFolder.java:279)
	at org.eclipse.papyrus.infra.core.sasheditor.internal.PTabFolder.access$0(PTabFolder.java:278)
	at org.eclipse.papyrus.infra.core.sasheditor.internal.PTabFolder$2.handleEvent(PTabFolder.java:79)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4410)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1103)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1088)
	at org.eclipse.swt.widgets.Shell.setActiveControl(Shell.java:1542)
	at org.eclipse.swt.widgets.Shell.setActiveControl(Shell.java:1505)
	at org.eclipse.swt.widgets.Control.sendFocusEvent(Control.java:2940)
	at org.eclipse.swt.widgets.Widget.wmSetFocus(Widget.java:2437)
	at org.eclipse.swt.widgets.Control.WM_SETFOCUS(Control.java:5438)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4861)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5102)
	at org.eclipse.swt.internal.win32.OS.DestroyWindow(Native Method)
	at org.eclipse.swt.widgets.Control.destroyWidget(Control.java:795)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:846)
	at org.eclipse.swt.widgets.Widget.dispose(Widget.java:460)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.accept(ForEachOps.java:184)
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
	at java.util.stream.ReferencePipeline$2$1.accept(ReferencePipeline.java:175)
	at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
	at java.util.stream.ReferencePipeline$Head.forEach(ReferencePipeline.java:580)
	at java.util.stream.ReferencePipeline$7$1.accept(ReferencePipeline.java:270)
	at java.util.Spliterators$ArraySpliterator.forEachRemaining(Spliterators.java:948)
	at java.util.stream.AbstractPipeline.copyInto(AbstractPipeline.java:481)
	at java.util.stream.AbstractPipeline.wrapAndCopyInto(AbstractPipeline.java:471)
	at java.util.stream.ForEachOps$ForEachOp.evaluateSequential(ForEachOps.java:151)
	at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential(ForEachOps.java:174)
	at java.util.stream.AbstractPipeline.evaluate(AbstractPipeline.java:234)
	at java.util.stream.ReferencePipeline.forEach(ReferencePipeline.java:418)
	at org.eclipse.papyrus.infra.editor.welcome.internal.WelcomeLayout.dispose(WelcomeLayout.java:133)
	at org.eclipse.papyrus.infra.editor.welcome.internal.WelcomePage.dispose(WelcomePage.java:143)
	at org.eclipse.papyrus.infra.editor.welcome.internal.WelcomePage.lambda$1(WelcomePage.java:112)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:124)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4410)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1103)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1084)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:836)
	at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:949)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:839)
	at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:949)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:839)
	at org.eclipse.swt.widgets.Widget.dispose(Widget.java:460)
	at org.eclipse.papyrus.infra.core.sasheditor.internal.SashWindowsContainer.dispose(SashWindowsContainer.java:298)
	at org.eclipse.papyrus.infra.core.sasheditor.internal.SashWindowsContainer$1.widgetDisposed(SashWindowsContainer.java:146)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:124)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4410)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1103)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1084)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:836)
	at org.eclipse.swt.widgets.Composite.releaseChildren(Composite.java:949)
	at org.eclipse.swt.widgets.Widget.release(Widget.java:839)
	at org.eclipse.swt.widgets.Widget.dispose(Widget.java:460)
	at org.eclipse.e4.ui.workbench.renderers.swt.SWTPartRenderer.disposeWidget(SWTPartRenderer.java:176)
	at org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.disposeWidget(ContributedPartRenderer.java:272)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:918)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$1(PartRenderingEngine.java:846)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$3.run(PartRenderingEngine.java:841)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:825)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:880)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$1(PartRenderingEngine.java:846)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$3.run(PartRenderingEngine.java:841)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:825)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:880)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$1(PartRenderingEngine.java:846)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$3.run(PartRenderingEngine.java:841)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:825)
	at org.eclipse.e4.ui.workbench.renderers.swt.ElementReferenceRenderer.disposeWidget(ElementReferenceRenderer.java:112)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:918)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$1(PartRenderingEngine.java:846)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$3.run(PartRenderingEngine.java:841)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:825)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:880)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$1(PartRenderingEngine.java:846)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$3.run(PartRenderingEngine.java:841)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:825)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:880)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$1(PartRenderingEngine.java:846)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$3.run(PartRenderingEngine.java:841)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:825)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:880)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$1(PartRenderingEngine.java:846)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$3.run(PartRenderingEngine.java:841)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:825)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:880)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$1(PartRenderingEngine.java:846)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$3.run(PartRenderingEngine.java:841)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:825)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:880)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$1(PartRenderingEngine.java:846)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$3.run(PartRenderingEngine.java:841)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:825)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeRemoveGui(PartRenderingEngine.java:880)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$1(PartRenderingEngine.java:846)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$3.run(PartRenderingEngine.java:841)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.removeGui(PartRenderingEngine.java:825)
	at org.eclipse.ui.internal.WorkbenchWindow.hardClose(WorkbenchWindow.java:1976)
	at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:1598)
	at org.eclipse.ui.internal.WorkbenchWindow.access$16(WorkbenchWindow.java:1540)
	at org.eclipse.ui.internal.WorkbenchWindow$11.run(WorkbenchWindow.java:1626)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:1623)
	at org.eclipse.ui.internal.Workbench$14.run(Workbench.java:1188)
	at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
	at org.eclipse.ui.internal.Workbench.busyClose(Workbench.java:1170)
	at org.eclipse.ui.internal.Workbench.access$22(Workbench.java:1112)
	at org.eclipse.ui.internal.Workbench$19.run(Workbench.java:1453)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.Workbench.close(Workbench.java:1450)
	at org.eclipse.ui.internal.Workbench.close(Workbench.java:1423)
	at org.eclipse.ui.internal.WorkbenchWindow.busyClose(WorkbenchWindow.java:1594)
	at org.eclipse.ui.internal.WorkbenchWindow.access$16(WorkbenchWindow.java:1540)
	at org.eclipse.ui.internal.WorkbenchWindow$11.run(WorkbenchWindow.java:1626)
	at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
	at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:1623)
	at org.eclipse.ui.internal.WorkbenchWindow.close(WorkbenchWindow.java:1637)
	at org.eclipse.ui.internal.WorkbenchWindow$6.close(WorkbenchWindow.java:524)
	at org.eclipse.e4.ui.workbench.renderers.swt.WBWRenderer$7.shellClosed(WBWRenderer.java:629)
	at org.eclipse.swt.widgets.TypedListener.handleEvent(TypedListener.java:99)
	at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:84)
	at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4410)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1103)
	at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1088)
	at org.eclipse.swt.widgets.Decorations.closeWidget(Decorations.java:315)
	at org.eclipse.swt.widgets.Decorations.WM_CLOSE(Decorations.java:1728)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4793)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:359)
	at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1656)
	at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2199)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5102)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2547)
	at org.eclipse.swt.widgets.Shell.callWindowProc(Shell.java:506)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4889)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:359)
	at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1656)
	at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2199)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5102)
	at org.eclipse.swt.internal.win32.OS.DefWindowProcW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DefWindowProc(OS.java:2547)
	at org.eclipse.swt.widgets.Shell.callWindowProc(Shell.java:506)
	at org.eclipse.swt.widgets.Control.windowProc(Control.java:4889)
	at org.eclipse.swt.widgets.Canvas.windowProc(Canvas.java:359)
	at org.eclipse.swt.widgets.Decorations.windowProc(Decorations.java:1656)
	at org.eclipse.swt.widgets.Shell.windowProc(Shell.java:2199)
	at org.eclipse.swt.widgets.Display.windowProc(Display.java:5102)
	at org.eclipse.swt.internal.win32.OS.DispatchMessageW(Native Method)
	at org.eclipse.swt.internal.win32.OS.DispatchMessage(OS.java:2552)
	at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3814)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1121)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
	at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1022)
	at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:150)
	at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:687)
	at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336)
	at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:604)
	at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148)
	at org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:138)
	at org.eclipse.equinox.internal.app.EclipseAppHandle.run(EclipseAppHandle.java:196)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.runApplication(EclipseAppLauncher.java:134)
	at org.eclipse.core.runtime.internal.adaptor.EclipseAppLauncher.start(EclipseAppLauncher.java:104)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:388)
	at org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:243)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.lang.reflect.Method.invoke(Method.java:498)
	at org.eclipse.equinox.launcher.Main.invokeFramework(Main.java:673)
	at org.eclipse.equinox.launcher.Main.basicRun(Main.java:610)
	at org.eclipse.equinox.launcher.Main.run(Main.java:1519)
	at org.eclipse.equinox.launcher.Main.main(Main.java:1492)
!SESSION 2016-09-29 10:14:26.826 -----------------------------------------------
eclipse.buildId=4.6.0.I20160606-1100
java.version=1.8.0_92
java.vendor=Oracle Corporation
BootLoader constants: OS=win32, ARCH=x86_64, WS=win32, NL=nl_BE
Framework arguments:  -product org.eclipse.epp.package.modeling.product
Command-line arguments:  -os win32 -ws win32 -arch x86_64 -product org.eclipse.epp.package.modeling.product

!ENTRY org.eclipse.papyrus.infra.types.core 1 0 2016-09-29 10:14:38.183
!MESSAGE org.eclipse.papyrus.gmfdiag.common.Diagram is already registred elementtype but it is not binded yet. It has been binded to Papyrus context. 

!ENTRY org.eclipse.papyrus.infra.types.core 1 0 2016-09-29 10:14:38.246
!MESSAGE org.eclipse.gmf.runtime.emf.type.core.default is already registred elementtype but it is not binded yet. It has been binded to Papyrus context. 

!ENTRY org.eclipse.egit.ui 2 0 2016-09-29 10:14:41.341
!MESSAGE Warning: The environment variable HOME is not set. The following directory will be used to store the Git
user global configuration and to define the default location to store repositories: 'C:\Users\JohanVanNoten'. If this is
not correct please set the HOME environment variable and restart Eclipse. Otherwise Git for Windows and
EGit might behave differently since they see different configuration options.
This warning can be switched off on the Team > Git > Confirmations and Warnings preference page.
Comment 5 Johan Van Noten CLA 2016-10-11 08:15:42 EDT
I did another experiment since this problem remains very apparent in all what we do:

* I created two separate projects, one with a Composite Structure diagram and the other with an Internal Block diagram that looks very similar.
See the model attached "Comparison CS/IBD model".

* I added the same style sheet in both projects, although I think it is irrelevant.

* I opened both next to eachother, see attached screenshot "Comparison CS/IBD screenshot).

* I restarted Eclipse several times (about 20):
  - In about 30% of the cases, the FullPort shows as the one in my screenshot.
  - The equivalent port on the CS diagram shows correctly every time.

Conclusion:
* There has to be a difference in the behavior of IBD vs CS
* It feels like a race condition
Comment 6 Johan Van Noten CLA 2016-10-11 08:16:35 EDT
Created attachment 264775 [details]
Comparison CS/IBD model
Comment 7 Johan Van Noten CLA 2016-10-11 08:17:04 EDT
Created attachment 264776 [details]
Comparison CS/IBD Screenshot
Comment 8 Benoit Maggi CLA 2016-10-14 09:46:38 EDT
@Johan: there are differences but small and not directly related to port.

css is the first one I can think of 
    - css file
    - css parser (GMFSYSMLElementAdapter same for all SysML 1.4)  
 
=> Do you have the same behavior in Parametric?
Comment 9 Charles Rivet CLA 2016-10-21 13:59:55 EDT
I've experienced the same issue while working with a potential customer. In my case, I have created a model crafted for demonstrating nested ports, which I saved and exited Papyrus.

After restarting Papyrus and opening the model the port sizes were rest to the default and could not longer be changed. However, the relative position of the "container" and nested port was enforced, i.e., moving the container port resulted in the nested port following it, even though there was no longer a "containement" visual indication.

I will try again the same scenario in order to see if it can be replicated.
Comment 10 Johan Van Noten CLA 2016-10-21 14:09:13 EDT
Hi Charles, the behavior that you describe is in line with with what we see; positions linked, but "parent" port only has its upper lefthand corner still in the correct place. Its size is back to the "normal" port size.

With respect to Benoit's question, I guess it is important to know whether your reproduction was on SysML, on pure UML or on a profile such as Papyrus-RT.
Comment 11 Charles Rivet CLA 2016-10-21 14:30:22 EDT
(In reply to Johan Van Noten from comment #10)
> Hi Charles, the behavior that you describe is in line with with what we see;
> positions linked, but "parent" port only has its upper lefthand corner still
> in the correct place. Its size is back to the "normal" port size.
> 
> With respect to Benoit's question, I guess it is important to know whether
> your reproduction was on SysML, on pure UML or on a profile such as
> Papyrus-RT.

It was with SysML.


Papyrus-RT does not support resizing ports, nor does it support nested ports (it uses structural nesting and delegation connectors to accomplish a similar result), so it would not be an issue.

Does UML support nested ports? I could not find that in the 2.5 spec (although I may have missed it). I thought it handled such things through structural nesting and delegation connectors.
Comment 12 Johan Van Noten CLA 2016-10-21 14:55:01 EDT
Charles, a Port is a TypedElement (some levels higher in the inheritance hierarchy) and can therefore carry a Type. A Component is a Type and as far as I see, UML does not specify a Port's type to not being a Component.
A Component can have ports, so a Port can have "nested" Ports. 

I don't know whether the graphical representation of a Composite Structure diagram says a lot about the visualisation of nested ports.

At least, what I see is that in Papyrus it works for Composite Structures and I'm unable to make it fail on that diagram (as opposed to an IBD).
Comment 13 Charles Rivet CLA 2016-10-21 17:49:47 EDT
(In reply to Johan Van Noten from comment #12)
> Charles, a Port is a TypedElement (some levels higher in the inheritance
> hierarchy) and can therefore carry a Type. A Component is a Type and as far
> as I see, UML does not specify a Port's type to not being a Component.
> A Component can have ports, so a Port can have "nested" Ports. 
> 
> I don't know whether the graphical representation of a Composite Structure
> diagram says a lot about the visualisation of nested ports.
> 
> At least, what I see is that in Papyrus it works for Composite Structures
> and I'm unable to make it fail on that diagram (as opposed to an IBD).

Agreed, UML supports "nested" ports but does not define "nested ports".
Comment 14 Patrick Tessier CLA 2016-10-24 04:20:10 EDT
To be clear. This is not nested ports.
We display ports of the the type of the port. exacatly the same case for part of the type of a part.

There is very important to make the difference. ;D
Comment 15 Johan Van Noten CLA 2016-10-24 05:40:16 EDT
Right. That's why I put "nested" ports with the nested between double quotes in comment #12.
Comment 16 Benoit Maggi CLA 2016-11-25 10:36:23 EST
For information:
 - this problem may have been fixed by the patch provided for Bug 508172

Since I couldn't reproduce the problem systematically, I can't affirm that it works now. Feel free  to comment if you can reproduce the problem with the current nightly update site.
Comment 17 Johan Van Noten CLA 2016-11-28 09:23:03 EST
Benoit, I can confirm that it is fixed on any IBD that I try.
Unfortunately, I see that it still occurs on BDD.
Probably the same fix can be applied there?
Comment 18 Benoit Maggi CLA 2017-09-15 10:05:53 EDT
I fear that it's not so simple for BDD.

I regularly check/test/look in the code, but so far I have no idea on what's causing the bug.

@Patrick: most of the implementation is done in expansionmodel framework, as its creator do you have any pointer/tips on this really annoying bug ?
Comment 19 Vincent Lorenzo CLA 2018-12-20 08:26:38 EST
Still here on BDD on Papyrus 2018-12