eclipse-capella / capella

Open Source Solution for Model-Based Systems Engineering
https://mbse-capella.org
Eclipse Public License 2.0
239 stars 98 forks source link

Dead Lock with the Capella properties view refresh #1524

Closed eclipse-capella-bot closed 3 years ago

eclipse-capella-bot commented 3 years ago

Steps to reproduce (With a Capella):

Make sure both sirius refresh options are disabled.
Create a SDFB diagram
Create two Functions and a FE between them
Create a functionalChain on FE (right click on the FE)
Create new SFCD digaram on the functinoalChain
In SFCD Diagram right click on InvolvementLink and create a new sequence link (via modeling accelerators contextual menu)
Refresh Diagram to see new link
Display.sysnExec error is raised

The stack of the first thread (Thread UI):

java.lang.IllegalStateException: Call stack for thread main at java.lang.Object.wait(Native Method) at org.eclipse.core.internal.jobs.Semaphore.acquire(Semaphore.java:39) at org.eclipse.core.internal.jobs.OrderedLock.doAcquire(OrderedLock.java:170) at org.eclipse.core.internal.jobs.OrderedLock.acquire(OrderedLock.java:106) at org.eclipse.core.internal.jobs.OrderedLock.acquire(OrderedLock.java:82) at org.eclipse.emf.transaction.util.Lock.uiSafeAcquire(Lock.java:357) at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.acquire(TransactionalEditingDomainImpl.java:580) at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.activate(TransactionalEditingDomainImpl.java:508) at org.eclipse.emf.transaction.impl.TransactionImpl.start(TransactionImpl.java:204) at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.startTransaction(TransactionalEditingDomainImpl.java:424) at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.runExclusive(TransactionalEditingDomainImpl.java:321) at org.eclipse.emf.transaction.util.TransactionUtil.runExclusive(TransactionUtil.java:328) at org.polarsys.capella.common.ui.providers.CapellaTransactionalAdapterFactoryLabelProvider.run(CapellaTransactionalAdapterFactoryLabelProvider.java:91) at org.polarsys.capella.common.ui.providers.CapellaTransactionalAdapterFactoryLabelProvider.getText(CapellaTransactionalAdapterFactoryLabelProvider.java:171) at org.polarsys.capella.common.ui.providers.MDEAdapterFactoryLabelProvider.getText(MDEAdapterFactoryLabelProvider.java:72) at org.polarsys.capella.core.ui.properties.TabbedPropertiesLabelProvider.getText(TabbedPropertiesLabelProvider.java:51) at org.eclipse.sirius.diagram.ui.internal.sheet.SiriusSheetLabelProvider.getText(SiriusSheetLabelProvider.java:52) at org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage.refreshTitleBar(TabbedPropertySheetPage.java:847) at org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage.labelProviderChanged(TabbedPropertySheetPage.java:860) at org.eclipse.gmf.runtime.diagram.ui.properties.views.PropertiesBrowserPage.labelProviderChanged(PropertiesBrowserPage.java:274) at org.polarsys.capella.core.ui.properties.CapellaDataListenerForPropertySections$RefreshPropertiesViewJob.runInUIThread(CapellaDataListenerForPropertySections.java:116) at org.eclipse.ui.progress.UIJob.lambda$0(UIJob.java:95) at org.eclipse.ui.progress.UIJob$$Lambda$80/499908398.run(Unknown Source) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:37) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4213) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3820) at org.eclipse.jface.operation.ModalContext$ModalContextThread.block(ModalContext.java:165) at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:369) at org.eclipse.jface.dialogs.ProgressMonitorDialog.run(ProgressMonitorDialog.java:483) at org.eclipse.sirius.diagram.ui.internal.refresh.DiagramRefresherHelper.refreshEditParts(DiagramRefresherHelper.java:61) at org.eclipse.sirius.diagram.ui.tools.internal.actions.refresh.RefreshDiagramAction.refresh(RefreshDiagramAction.java:87) at org.eclipse.sirius.diagram.ui.tools.internal.actions.refresh.RefreshDiagramAction.run(RefreshDiagramAction.java:69) at org.eclipse.sirius.diagram.ui.tools.internal.actions.refresh.RefreshDiagramAction.runWithEvent(RefreshDiagramAction.java:100) at org.eclipse.jface.action.ActionContributionItem.handleWidgetSelection(ActionContributionItem.java:565) at org.eclipse.jface.action.ActionContributionItem.lambda$5(ActionContributionItem.java:436) at org.eclipse.jface.action.ActionContributionItem$$Lambda$143/1743814561.handleEvent(Unknown Source) at org.eclipse.swt.widgets.EventTable.sendEvent(EventTable.java:86) at org.eclipse.swt.widgets.Display.sendEvent(Display.java:4428) at org.eclipse.swt.widgets.Widget.sendEvent(Widget.java:1079) at org.eclipse.swt.widgets.Display.runDeferredEvents(Display.java:4238) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3817) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1150) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1039) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153) at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680) at org.eclipse.ui.internal.Workbench$$Lambda$14/2038484780.run(Unknown Source) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148) at org.polarsys.capella.core.platform.sirius.ui.app.CapellaApplication.start(CapellaApplication.java:115) 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(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:653) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590) at org.eclipse.equinox.launcher.Main.run(Main.java:1499) at org.eclipse.equinox.launcher.Main.main(Main.java:1472)

Second thread (the one launched by the refresh)

java.lang.IllegalStateException: Call stack for thread ModalContext at sun.management.ThreadImpl.dumpThreads0(Native Method) at sun.management.ThreadImpl.getThreadInfo(Unknown Source) at org.eclipse.ui.internal.UILockListener.reportInterruption(UILockListener.java:206) at org.eclipse.ui.internal.UILockListener.interruptUI(UILockListener.java:176) at org.eclipse.ui.internal.PendingSyncExec.waitUntilExecuted(PendingSyncExec.java:82) at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:153) at org.eclipse.swt.widgets.Display.syncExec(Display.java:4889) at org.eclipse.gmf.runtime.diagram.ui.DiagramEventBrokerThreadSafe.resourceSetChanged(DiagramEventBrokerThreadSafe.java:63) at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl$1.run(TransactionalEditingDomainImpl.java:781) at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.runExclusive(TransactionalEditingDomainImpl.java:328) at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.postcommit(TransactionalEditingDomainImpl.java:771) at org.eclipse.emf.transaction.impl.TransactionalEditingDomainImpl.deactivate(TransactionalEditingDomainImpl.java:543) at org.eclipse.emf.transaction.impl.TransactionImpl.close(TransactionImpl.java:712) at org.eclipse.emf.transaction.impl.TransactionImpl.commit(TransactionImpl.java:474) at org.eclipse.emf.workspace.AbstractEMFOperation.execute(AbstractEMFOperation.java:155) at org.eclipse.core.commands.operations.DefaultOperationHistory.execute(DefaultOperationHistory.java:488) at org.polarsys.capella.common.ef.internal.command.WorkspaceCommandStackImpl.doExecute(WorkspaceCommandStackImpl.java:148) at org.polarsys.capella.common.platform.sirius.ted.SemanticEditingDomainFactory$SemanticCommandStack.doExecute(SemanticEditingDomainFactory.java:276) at org.eclipse.emf.transaction.impl.AbstractTransactionalCommandStack.execute(AbstractTransactionalCommandStack.java:165) at org.eclipse.emf.transaction.impl.AbstractTransactionalCommandStack.execute(AbstractTransactionalCommandStack.java:219)

🆔 ECLIPSE-555181 / POLARSYS-2484 👷 ali.akar 📅 2019-04-22 🔎 1.3.0

eclipse-capella-bot commented 3 years ago

ci-bot commented on 2019-04-24

Merged to [master]. Commit: fb074bcca2da2445d72555adeb46ab9afa130523

ci-bot commented on 2019-05-09

Merged to [master]. Commit: 727df2c248b098fa7e6bad3910ee19b1d43ae7e4

ali.akar commented on 2019-05-10

New use case: Delete a connected project while the property view is opened can lead to error. Steps to reproduce:

  1. Make sure that the Property view is opened
  2. Click on a model element of a connected model while the Properties view is show.
  3. Open another view than Property view (Semantic Browser for example).
  4. Deleted the connected model
  5. Create a new project
  6. Rename the project => There's a popup with the following trace: org.eclipse.net4j.util.lifecycle.LifecycleException: Not active: CDOTransactionImpl at org.eclipse.net4j.util.lifecycle.LifecycleUtil.checkActive(LifecycleUtil.java:100) at org.eclipse.net4j.util.lifecycle.Lifecycle.checkActive(Lifecycle.java:204) at org.eclipse.emf.internal.cdo.view.AbstractCDOView.getStore(AbstractCDOView.java:460) at org.eclipse.emf.internal.cdo.CDOObjectImpl.cdoStore(CDOObjectImpl.java:555) at org.eclipse.emf.internal.cdo.CDOObjectImpl.eStore(CDOObjectImpl.java:569) at org.eclipse.emf.internal.cdo.CDOObjectImpl.dynamicGet(CDOObjectImpl.java:637) at org.eclipse.emf.ecore.impl.EStructuralFeatureImpl$InternalSettingDelegateSingleData.dynamicGet(EStructuralFeatureImpl.java:2199) at org.eclipse.emf.ecore.impl.BasicEObjectImpl.eDynamicGet(BasicEObjectImpl.java:1045) at org.polarsys.capella.common.data.modellingcore.impl.AbstractNamedElementImpl.getName(AbstractNamedElementImpl.java:68) at org.polarsys.capella.core.data.ctx.provider.SystemAnalysisItemProvider.getText(SystemAnalysisItemProvider.java:327) at org.eclipse.emf.edit.provider.ItemProviderDecorator.getText(ItemProviderDecorator.java:228) at org.polarsys.capella.core.data.gen.edit.decorators.ItemProviderAdapterDecorator.getText(ItemProviderAdapterDecorator.java:61) at org.eclipse.emf.edit.ui.provider.AdapterFactoryLabelProvider.getText(AdapterFactoryLabelProvider.java:421) at org.polarsys.capella.common.ui.providers.CapellaTransactionalAdapterFactoryLabelProvider.access$5(CapellaTransactionalAdapterFactoryLabelProvider.java:1) at org.polarsys.capella.common.ui.providers.CapellaTransactionalAdapterFactoryLabelProvider$6.run(CapellaTransactionalAdapterFactoryLabelProvider.java:173) at org.polarsys.capella.common.ui.providers.CapellaTransactionalAdapterFactoryLabelProvider.run(CapellaTransactionalAdapterFactoryLabelProvider.java:88) at org.polarsys.capella.common.ui.providers.CapellaTransactionalAdapterFactoryLabelProvider.getText(CapellaTransactionalAdapterFactoryLabelProvider.java:171) at org.polarsys.capella.common.ui.providers.MDEAdapterFactoryLabelProvider.getText(MDEAdapterFactoryLabelProvider.java:72) at org.polarsys.capella.core.ui.properties.TabbedPropertiesLabelProvider.getText(TabbedPropertiesLabelProvider.java:51) at org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage.refreshTitleBar(TabbedPropertySheetPage.java:847) at org.eclipse.ui.views.properties.tabbed.TabbedPropertySheetPage.labelProviderChanged(TabbedPropertySheetPage.java:860) at org.polarsys.capella.core.ui.properties.CapellaTabbedPropertySheetPage.labelProviderChanged(CapellaTabbedPropertySheetPage.java:51) at org.polarsys.capella.core.ui.properties.CapellaDataListenerForPropertySections$RefreshPropertiesViewJob.runInUIThread(CapellaDataListenerForPropertySections.java:100) at org.eclipse.ui.progress.UIJob.lambda$0(UIJob.java:95) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:37) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:182) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4213) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3820) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$5.run(PartRenderingEngine.java:1150) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1039) at org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:153) at org.eclipse.ui.internal.Workbench.lambda$3(Workbench.java:680) at org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:336) at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:594) at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:148) at org.polarsys.capella.core.platform.sirius.ui.app.CapellaApplication.start(CapellaApplication.java:115) 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(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:653) at org.eclipse.equinox.launcher.Main.basicRun(Main.java:590) at org.eclipse.equinox.launcher.Main.run(Main.java:1499)

sandu.postaru commented on 2019-05-10

Fixed.

philippe.dul commented on 2019-05-16

Status: verified Resolution: fixed