EMF Model Transaction Fehler beim Updaten eines Graphiti-Pictogramms

Mohackl

Mitglied
Hallo Forum,

ich habe folgendes Problem. Ich nutze Eclipse Graphiti um ein Diagramm einer Prozesskette anzuzeigen. Ich habe ein UpdateFeature implementiert, dass mir die Hintergrundfarbe eines Prozess-Pictograms je nach Status des darunter liegenden Business-Objekts ändert. Das klappt sehr gut.

Wächselt der Status nun aber zu schnell bekomme ich eine "Cannot modify resource set without a write transaction" Exception. Dieser auf der Spur wurde klar, dass die EMF Transaction die von Graphiti genutzt wird um das Pictogramm zu ändern keine Schreibberechtigung hat, und daher zurück gerollt wird.

Ist dies, weil eine andere Transaktion noch den Lock hat?

Welchen Lösungsansatz gibt es?

Ist es möglich vor dem setzen des Hintergrundes nachzufragen, ob die Aktion erlaubt ist? Oder gibt es eine Möglichkeit zu warten bis wieder geschrieben werden kann?

Vielen Dank!
 

Wildcard

Top Contributor
Graphiti kenne ich bisher nur oberflächlich (wird sich bald ändern), daher ein Schuss ins Blaue:
Manipuliert dein Feature das Modell direkt oder verwendest du ein Command dafür?
EMF hat zb das praktische ChangeCommand mit dem du das Modell weiterhin direkt manipulieren kannst und trotzdem von Commands profitierst.
Falls du sowieso Commands verwendest, bist du sicher das du auf der gleichen Editing Domain wie Graphiti arbeitest?
 

Mohackl

Mitglied
Hallo,

danke für die Antwort. Graphiti ist auch recht neu für mich.

Das Problem taucht tief im Inneren von Graphiti auf. Zum Manipulieren meines EMF Models nutze ich eine RecordingCommand und eine TransactionalEditingDomain. Das funktioniert super.

Java:
TransactionalEditingDomain domain = PartObserverUtil.getEditingDomain(part);
RecordingCommand c = new RecordingCommand(domain) {
                       @Override
			protected void doExecute() {
				part.setActive(status);
			}
};
domain.getCommandStack().execute(c);

Graphiti macht irgendwie die Probleme. Mhmm... ich habe aber noch nicht durchschaut wie genau das Updaten funktioniert. Es wird als Transaction ausgeführt. Diese hat normalerweise Schreibrechte auf das Pictogram-Model... also das EMF Model das von Graphiti verwaltet wird. Nur wenn zu schnell geupdatet wird kommt ein Schluckauf zustande und einige der Transactionen haben nur Leserechte.

Aber, ich denke es ist zu speziell... ich werde mich mal an die Graphiti-Leute wenden.

Danke für die Gedanken!
 
Zuletzt bearbeitet:
Ähnliche Java Themen
  Titel Forum Antworten Datum
R RCP Application Model - Änderungen erfolgen nicht Plattformprogrammierung 17
G EMF Model auf xsd Element mit eIsSet prüfen Plattformprogrammierung 15
Z EMF ecore model updaten Plattformprogrammierung 5
S RCP Anfängerfrage - Zusammenspiel View, Editor, Model Plattformprogrammierung 4
G Eclipse Modelling Framework - Java Code aus Model erzeugen. Plattformprogrammierung 2
T Error: Cannot modify resource set without a write transaction Plattformprogrammierung 5
L Fehler: Veraltete API Plattformprogrammierung 1
B Eclipse zeigt Fehler nach Java-Update auf 1.8.0_40 Plattformprogrammierung 3
H Linux Fehler der JRE Plattformprogrammierung 2
M GEF Tutorial mit Fehler(?), Fehler finden. Plattformprogrammierung 3
M RCP [Eclipse RCP] Feature Export und "Fehler"... Plattformprogrammierung 3
R RCP Projekt exportieren wirf fehler. Plattformprogrammierung 5
J eclipse: "The selection cannot be launched and there are no recent launches" Fehler Plattformprogrammierung 3
J RCP, Fehler beim MultiPageEditor, Widget is disposed Plattformprogrammierung 4
M Fehler bei Plugin Export für eigene Target Platform Plattformprogrammierung 3
T Neue Products Fehler JVM Terminated exit code 13 Plattformprogrammierung 4
dzim Fehler beim starten eines Produkts Plattformprogrammierung 5
dzim Editor aus View öffnen - fehler: unbekannte Editor ID Plattformprogrammierung 11

Ähnliche Java Themen

Neue Themen


Oben