Community
Participate
Working Groups
Using org.eclipse.core.databinding_1.3.100 There's a conceptual error in MultiValidator#revalidate() which leads to a dependency loop. Let's assume that ObservableTracker returns the following dependencies: dep[0] = observable1; dep[1] = observable2; dep[2] = targets; // same instance as the field target in this class MultiValidator The field "targets" holds: targets[0] = observable1; targets[1] = observable2; Because the outer loop iterates over targets, the invalid dependency to the field "targets" is not removed from newTargets and then added. This causes the endless loop in subsequent calls. Stacktrace snippet: at org.eclipse.core.databinding.observable.ChangeManager.fireEvent(ChangeManager.java:119) at org.eclipse.core.databinding.observable.AbstractObservable.fireChange(AbstractObservable.java:65) at org.eclipse.core.databinding.observable.list.ObservableList.fireListChange(ObservableList.java:72) at org.eclipse.core.databinding.observable.list.WritableList.addAll(WritableList.java:191) at org.eclipse.core.databinding.validation.MultiValidator.revalidate(MultiValidator.java:295) at org.eclipse.core.databinding.validation.MultiValidator$DependencyListener.handleChange(MultiValidator.java:152) at org.eclipse.core.databinding.observable.ChangeEvent.dispatch(ChangeEvent.java:41) at org.eclipse.core.databinding.observable.ChangeManager.fireEvent(ChangeManager.java:119)
*** This bug has been marked as a duplicate of bug 332504 ***