Skip to main content

Eclipse Community Forums
Forum Search:

Search      Help    Register    Login    Home
Home » Modeling » EMF » EMF DataBinding Transaction RollbackException(UI does not revert to former state on Transaction RollbackException)
EMF DataBinding Transaction RollbackException [message #1699775] Fri, 26 June 2015 13:44
Darrel Karisch is currently offline Darrel KarischFriend
Messages: 14
Registered: July 2012
Junior Member
known bug

When a transaction is rolled back for whatever reason, the UI does not revert to is former state.
The result is that the UI and EMF Model are not in sync.

Embedded comments in stack trace...

AbstractTransactionalCommandStack.execute(Command) line: 229
* AbstractTransactionalCommandStack#execute does not report back that the execution was cancelled, or otherwise rolled back.
EMFEditValueProperty.doSetValue(Object, Object) line: 45
EMFEditValueProperty(ValueProperty).setValue(Object, Object) line: 83
SimplePropertyObservableValue.doSetValue(Object) line: 104
* Subsequent invocation of SimplePropertyObservableValue#notifyIfChanged within doSetValue detects that there is no change on an observable.
SimplePropertyObservableValue.notifyIfChanged(ValueDiff) line: 118
SimplePropertyObservableValue.doSetValue(Object) line: 109
* SimplePropertyObservableValue#doSetValue could compare the input value to its cachedValue
* and report that the intended change did not occur for whatever reason
* either with IStatus or simply a boolean.
SimplePropertyObservableValue(AbstractObservableValue).setValue(Object) line: 55
DetailObservableValue.doSetValue(Object) line: 134
DetailObservableValue(AbstractObservableValue).setValue(Object) line: 55
EMFEditObservableValueDecorator(DecoratingObservableValue).setValue(Object) line: 103
* UpdateValueStrategy reports back either ERROR or OK status.
EMFUpdateValueStrategy(UpdateValueStrategy).doSet(IObservableValue, Object) line: 486
* in ValueBinding the source UI SWTObservables sets the new value on the destination EMFEditObservableValueDecorator indirectly through the Realm.
* however, it cannot detect that the destination change was cancelled by the Rollback.
* i.e. the setterStatus is OK.
* hence, the UI cannot rollback its state. e.g. a checkbox does not revert to its prior state.
* a boolean or IStatus could percolate back up from SimplePropertyObservableValue.doSetValue
* in order to notify the source UI SWTObservables that it should revert.
ValueBinding$ line: 197
Realm$ line: 148 line: 42
Realm.safeRun(Runnable) line: 152
SWTObservables$DisplayRealm(Realm).exec(Runnable) line: 170
ValueBinding$ line: 188
Realm$ line: 148 line: 42
Realm.safeRun(Runnable) line: 152
SWTObservables$DisplayRealm(Realm).exec(Runnable) line: 170
ValueBinding.doUpdate(IObservableValue, IObservableValue, UpdateValueStrategy, boolean, boolean) line: 151
ValueBinding.access$4(ValueBinding, IObservableValue, IObservableValue, UpdateValueStrategy, boolean, boolean) line: 140
ValueBinding$1.handleValueChange(ValueChangeEvent) line: 45
ValueChangeEvent.dispatch(IObservablesListener) line: 62
SWTObservableValueDecorator(ChangeManager).fireEvent(ObservableEvent) line: 119
SWTObservableValueDecorator(DecoratingObservableValue).fireValueChange(ValueDiff) line: 55
SWTObservableValueDecorator(DecoratingObservableValue).handleValueChange(ValueChangeEvent) line: 93
DecoratingObservableValue$1.handleValueChange(ValueChangeEvent) line: 67
ValueChangeEvent.dispatch(IObservablesListener) line: 62
SimplePropertyObservableValue(ChangeManager).fireEvent(ObservableEvent) line: 119
SimplePropertyObservableValue(AbstractObservableValue).fireValueChange(ValueDiff) line: 71
SimplePropertyObservableValue.notifyIfChanged(ValueDiff) line: 120
SimplePropertyObservableValue.access$1(SimplePropertyObservableValue, ValueDiff) line: 112
SimplePropertyObservableValue$ line: 66
Realm$ line: 148 line: 42
Realm.safeRun(Runnable) line: 152
SWTObservables$DisplayRealm(Realm).exec(Runnable) line: 170
SimplePropertyObservableValue$1.handleEvent(SimplePropertyEvent) line: 63
WidgetListener(NativePropertyListener).fireChange(Object, IDiff) line: 63

[Updated on: Fri, 26 June 2015 13:54]

Report message to a moderator

Previous Topic:EStructuralFeature Resolution of a contained EObject Instance
Next Topic:EMF versions
Goto Forum:

Current Time: Mon May 25 08:53:55 GMT 2020

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

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

Back to the top