Skip to main content

Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » Papyrus » CDOAwareTransactionalEditingDomain returns faulty ChangeRecorder
CDOAwareTransactionalEditingDomain returns faulty ChangeRecorder [message #1748215] Mon, 21 November 2016 09:42 Go to next message
Thorsten Schlathölter is currently offline Thorsten SchlathölterFriend
Messages: 309
Registered: February 2012
Location: Düsseldorf
Senior Member
I think I found a severe problem in the Papyrus\CDO integration. It seems to me that the ChangeRecorder returned by the CDOAwareTransactionalEditingDomain fails to inherit itself to new objects if these objects are added by CDODeltaNotifications.

Using the Papyrus\CDO integration I experience the following problem:

In a multi user environment two users work on the same Papyrus model. They have the same Diagram open and user A adds a new ClassShape to the diagram.
User B sees the ClassShape appearing in his diagram. But user B is not able to move the shape.

The scenario has also been described here:

I found that the reason for this is the TransactionChangeRecorder used by the CDOAwareTransactionalEditingDomain. The change recorder which is used is a DawnTransactionChangeRecorder which handles CDODeltaNotifications by simply ignoring them. Thus objects which are added by a CDODeltaNotifications do not get the TransactionChangeRecorder added to their set of adapters as this happens only if the notifyChanged method is called. Any activity that involves ChangeRecording is thus not working properly in this scenario.

A lot of Papyrus functionalities rely on ChangeRecording and respective notifications. Thus it seems that Papyrus\CDO integration cannot not really work in a multi user environment.

In the end I think the DawnTransactionChangeRecorder should handle this situation properly.

I have solved this issue by calling the addAdapter method of the ChangeRecorder in the described situation. But I am not 100% sure if i might be missing something here. Any thoughts on this would therefore be appreciated.


Re: CDOAwareTransactionalEditingDomain returns faulty ChangeRecorder [message #1748471 is a reply to message #1748215] Wed, 23 November 2016 12:41 Go to previous message
Xavier ZeitounFriend
Messages: 23
Registered: April 2016
Location: CEA LIST, Paris Saclay, F...
Junior Member
Hi Thorsten,

the Change recorder used is defined in class CDOAwareTransactionalEditingDomain of plugin org.eclipse.papyrus.cdo.core.

It is an inner class that extends DawnTransactionChangeRecorder that overrides the method appendNotification.

This extended may forget notifications, and it is a bug that should be corrected by modifying change recorder.

Previous Topic:component, simple port and ball-and-socket notation
Next Topic:slightly OT: Just for fun - my contribution to "ARIS in 10 years"
Goto Forum:

Current Time: Mon Mar 08 17:07:31 GMT 2021

Powered by FUDForum. Page generated in 0.02449 seconds
.:: Contact :: Home ::.

Powered by: FUDforum 3.0.2.
Copyright ©2001-2010 FUDforum Bulletin Board Software

Back to the top