EMF DataBinding Transaction RollbackException [message #1699775] |
Fri, 26 June 2015 13:44 |
Darrel Karisch Messages: 14 Registered: July 2012 |
Junior Member |
|
|
known bug https://bugs.eclipse.org/bugs/show_bug.cgi?id=252612
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$4.run() line: 197
Realm$1.run() line: 148
SafeRunner.run(ISafeRunnable) line: 42
Realm.safeRun(Runnable) line: 152
SWTObservables$DisplayRealm(Realm).exec(Runnable) line: 170
ValueBinding$3.run() line: 188
Realm$1.run() line: 148
SafeRunner.run(ISafeRunnable) 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$2.run() line: 66
Realm$1.run() line: 148
SafeRunner.run(ISafeRunnable) 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
|
|
|
Powered by
FUDForum. Page generated in 0.01745 seconds