|
Re: [CDO] Using the Papyrus editor on a CDOResource within a transaction [message #1732750 is a reply to message #1732716] |
Thu, 19 May 2016 21:01 |
|
Hi, Stephan,
Are you using the Papyrus "extras" component that provides the Papyrus
connector for CDO repositories? It doesn't store Papyrus models as XMI
resources in CLOBs but rather using CDO's normal object-database
mapping.
If you are rolling your own CDO repository persistence solution, then I
probably won't know how to help.
Cheers,
Christian
On 2016-05-19 13:19:47 +0000, Stephan Seifermann said:
> Dear all,
>
> I use a CDO repository to store my Papyrus model. I can properly open
> and use the Papyrus editor on an Online Transactional Checkout folder
> in my project explorer. The editor, however, crashes when I try to open
> it on the same di file but within an explicit transaction. The
> exception I receive is
> java.lang.ClassCastException:
> org.eclipse.emf.cdo.internal.ui.CDOLobEditorInput cannot be cast to
> org.eclipse.ui.IURIEditorInput
> at
> org.eclipse.papyrus.infra.core.editor.CoreMultiDiagramEditor.loadModelAndServices(CoreMultiDiagramEditor.java:603)
>
> at
> org.eclipse.papyrus.infra.core.editor.CoreMultiDiagramEditor.initContents(CoreMultiDiagramEditor.java:921)
>
> at
> org.eclipse.papyrus.infra.core.editor.CoreMultiDiagramEditor.init(CoreMultiDiagramEditor.java:489)
>
> at
> org.eclipse.ui.internal.EditorReference.initialize(EditorReference.java:361)
>
> at
> org.eclipse.ui.internal.e4.compatibility.CompatibilityPart.create(CompatibilityPart.java:319)
>
> 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.e4.core.internal.di.MethodRequestor.execute(MethodRequestor.java:56)
>
> at
> org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:898)
>
> at
> org.eclipse.e4.core.internal.di.InjectorImpl.processAnnotated(InjectorImpl.java:879)
>
> at org.eclipse.e4.core.internal.di.InjectorImpl.inject(InjectorImpl.java:121)
> at
> org.eclipse.e4.core.internal.di.InjectorImpl.internalMake(InjectorImpl.java:345)
>
> at org.eclipse.e4.core.internal.di.InjectorImpl.make(InjectorImpl.java:264)
> at
> org.eclipse.e4.core.contexts.ContextInjectionFactory.make(ContextInjectionFactory.java:162)
>
> at
> org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.createFromBundle(ReflectionContributionFactory.java:104)
>
> at
> org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.doCreate(ReflectionContributionFactory.java:73)
>
> at
> org.eclipse.e4.ui.internal.workbench.ReflectionContributionFactory.create(ReflectionContributionFactory.java:55)
>
> at
> org.eclipse.e4.ui.workbench.renderers.swt.ContributedPartRenderer.createWidget(ContributedPartRenderer.java:129)
>
> at
> org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createWidget(PartRenderingEngine.java:971)
>
> at
> org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:640)
>
> at
> org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.safeCreateGui(PartRenderingEngine.java:746)
>
> at
> org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.access$0(PartRenderingEngine.java:717)
>
> at
> org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$2.run(PartRenderingEngine.java:711)
>
> at org.eclipse.core.runtime.SafeRunner.run(SafeRunner.java:42)
> at
> org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.createGui(PartRenderingEngine.java:695)
>
> at
> org.eclipse.e4.ui.internal.workbench.PartServiceImpl$1.handleEvent(PartServiceImpl.java:99)
>
> at
> org.eclipse.e4.ui.services.internal.events.UIEventHandler$1.run(UIEventHandler.java:40)
>
> at org.eclipse.swt.widgets.Synchronizer.syncExec(Synchronizer.java:186)
> at org.eclipse.ui.internal.UISynchronizer.syncExec(UISynchronizer.java:145)
> at org.eclipse.swt.widgets.Display.syncExec(Display.java:4761)
> at
> org.eclipse.e4.ui.internal.workbench.swt.E4Application$1.syncExec(E4Application.java:211)
>
> at
> org.eclipse.e4.ui.services.internal.events.UIEventHandler.handleEvent(UIEventHandler.java:36)
>
> at
> org.eclipse.equinox.internal.event.EventHandlerWrapper.handleEvent(EventHandlerWrapper.java:197)
>
> at
> org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:197)
>
> at
> org.eclipse.equinox.internal.event.EventHandlerTracker.dispatchEvent(EventHandlerTracker.java:1)
>
> at
> org.eclipse.osgi.framework.eventmgr.EventManager.dispatchEvent(EventManager.java:230)
>
> at
> org.eclipse.osgi.framework.eventmgr.ListenerQueue.dispatchEventSynchronous(ListenerQueue.java:148)
>
> at
> org.eclipse.equinox.internal.event.EventAdminImpl.dispatchEvent(EventAdminImpl.java:135)
>
> at
> org.eclipse.equinox.internal.event.EventAdminImpl.sendEvent(EventAdminImpl.java:78)
>
> at
> org.eclipse.equinox.internal.event.EventComponent.sendEvent(EventComponent.java:39)
>
> at
> org.eclipse.e4.ui.services.internal.events.EventBroker.send(EventBroker.java:85)
>
> at
> org.eclipse.e4.ui.internal.workbench.UIEventPublisher.notifyChanged(UIEventPublisher.java:59)
>
> at
> org.eclipse.emf.common.notify.impl.BasicNotifierImpl.eNotify(BasicNotifierImpl.java:374)
>
> at
> org.eclipse.e4.ui.model.application.ui.impl.ElementContainerImpl.setSelectedElement(ElementContainerImpl.java:171)
>
> at
> org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.showElementInWindow(ModelServiceImpl.java:572)
>
> at
> org.eclipse.e4.ui.internal.workbench.ModelServiceImpl.bringToTop(ModelServiceImpl.java:536)
>
> at
> org.eclipse.e4.ui.internal.workbench.PartServiceImpl.delegateBringToTop(PartServiceImpl.java:724)
>
> at
> org.eclipse.e4.ui.internal.workbench.PartServiceImpl.bringToTop(PartServiceImpl.java:396)
>
> at
> org.eclipse.e4.ui.internal.workbench.PartServiceImpl.showPart(PartServiceImpl.java:1166)
>
> at
> org.eclipse.ui.internal.WorkbenchPage.busyOpenEditor(WorkbenchPage.java:3252)
>
> at org.eclipse.ui.internal.WorkbenchPage.access$25(WorkbenchPage.java:3167)
> at org.eclipse.ui.internal.WorkbenchPage$10.run(WorkbenchPage.java:3149)
> at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70)
> at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3144)
> at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3108)
> at org.eclipse.ui.internal.WorkbenchPage.openEditor(WorkbenchPage.java:3089)
> at org.eclipse.emf.cdo.ui.CDOEditorUtil$2.run(CDOEditorUtil.java:395)
> at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35)
> at
> org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:135)
>
> at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4155)
> at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3772)
> at
> org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine$4.run(PartRenderingEngine.java:1127)
>
> at
> org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
>
> at
> org.eclipse.e4.ui.internal.workbench.swt.PartRenderingEngine.run(PartRenderingEngine.java:1018)
>
> at
> org.eclipse.e4.ui.internal.workbench.E4Workbench.createAndRunUI(E4Workbench.java:156)
>
> at org.eclipse.ui.internal.Workbench$5.run(Workbench.java:694)
> at
> org.eclipse.core.databinding.observable.Realm.runWithDefault(Realm.java:337)
>
> at org.eclipse.ui.internal.Workbench.createAndRunWorkbench(Workbench.java:606)
> at org.eclipse.ui.PlatformUI.createAndRunWorkbench(PlatformUI.java:150)
> at
> org.eclipse.ui.internal.ide.application.IDEApplication.start(IDEApplication.java:139)
>
> 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:380)
>
> at
> org.eclipse.core.runtime.adaptor.EclipseStarter.run(EclipseStarter.java:235)
>
> 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:669)
> at org.eclipse.equinox.launcher.Main.basicRun(Main.java:608)
> at org.eclipse.equinox.launcher.Main.run(Main.java:1515)
> at org.eclipse.equinox.launcher.Main.main(Main.java:1488)
>
> Do you have any idea about what I am doing wrong?
>
> Best regards
> Stephan
|
|
|
|
Re: [CDO] Using the Papyrus editor on a CDOResource within a transaction [message #1733143 is a reply to message #1732804] |
Tue, 24 May 2016 18:02 |
|
Hi, Stephan,
I know that work was contributed in Mars that moved the principal user
interface for Papyrus models in CDO from the on-line transactional
paradigm to a workspace check-out paradigm. As I understand it,
checkouts are supposed to offer significant benefits over the on-line
transactional method and are the direction that CDO intends to focus on
in general (at least as far as UI integration in the Eclipse Workbench
is concerned). I don't recall any specific changes that would have
broken the on-line transactional method, but I think there are some
APIs now that expect to be working with CDO checkouts that didn't
previously. Hopefully Eike can chime in with clarifications and
corrections of my fuzzy understanding.
You can find some information about the Papyrus changes in this CDO
integration on the wiki:
https://wiki.eclipse.org/Papyrus/Mars_Work_Description/Improvments/Improve_CDO_integration_within_Papyrus
That's about the extent of what I know about it.
HTH,
Christian
On 2016-05-20 03:34:51 +0000, Stephan Seifermann said:
> Hello Christian,
>
> I installed the extra plugin:
> Papyrus CDO Integration (Incubation) 1.1.4.201602101324
> org.eclipse.papyrus.extra.cdo.feature.feature.group
>
> The way I want to open the editor is shown in the attachment
> (papyrus_session.png). This results in the mentioned exception. When
> using the transactional checkout (papyrus_checkout.png) the editor is
> started without any problem. I would assume both ways to work as the UI
> provides the ability to open the Papyrus editor in the given contexts.
>
> So, is this a bug or did I miss something important?
>
> Best regards
> Stephan
> <image>
> <image>
|
|
|
|
Powered by
FUDForum. Page generated in 0.03737 seconds