Bug 159205 [DataBinding] ClassCastException in StructuredContentProviderTest
Running StructuredContentProviderTest from head on 060928 Click "add" then click one of the radio buttons in the center. Throws one of these: (I have a hunch that MappedSet's iterator is returning an internal object rather than an element from the set... but it's just a hunch) Thread [main] (Suspended (exception ClassCastException)) StructuredContentProviderTest$3.calculate() line: 222 ComputedValue$PrivateInterface.run() line: 78 ObservableTracker.runAndMonitor(Runnable, IChangeListener, IStaleListener) line: 101 StructuredContentProviderTest$3(ComputedValue).doGetValue() line: 103 StructuredContentProviderTest$3(AbstractObservableValue).getValue() line: 74 StructuredContentProviderTest$1.updateControl() line: 160 ControlUpdater$1.run() line: 106 ObservableTracker.runAndMonitor(Runnable, IChangeListener, IStaleListener) line: 101 StructuredContentProviderTest$1(ControlUpdater).updateIfNecessary() line: 130 ControlUpdater.access$0(ControlUpdater) line: 128 ControlUpdater$PrivateInterface.run() line: 92 WorkQueue.doUpdate() line: 71 WorkQueue.access$0(WorkQueue) line: 60 WorkQueue$2.handleEvent(Event) line: 49 EventTable.sendEvent(Event) line: 66 Display.filterEvent(Event) line: 1380 List(Widget).sendEvent(Event) line: 1084 List(Widget).sendEvent(int, Event, boolean) line: 1109 List(Widget).sendEvent(int, Event) line: 1094 List(Control).gtk_expose_event(int, int) line: 2062 List(Widget).windowProc(int, int, int) line: 1460 Display.windowProc(int, int, int) line: 3835 OS._gtk_main_do_event(int) line: not available [native method] OS.gtk_main_do_event(int) line: 5436 Display.eventProc(int, int) line: 1149 OS._g_main_context_iteration(int, boolean) line: not available [native method] OS.g_main_context_iteration(int, boolean) line: 1465 Display.readAndDispatch() line: 2877 StructuredContentProviderTest.main(String[]) line: 383
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/databinding/observable/set/MappedSet.java
private final IObservableMapping wrappedMapping;
	/*
	 * Map from values (range elements) to Integer ref counts
	 */
	private Map valueCounts = new HashMap();
	private ISetChangeListener domainListener = new ISetChangeListener() {
		public void handleSetChange(IObservableSet source, SetDiff diff) {
			Set additions = new HashSet();
			for (Iterator it = diff.getAdditions().iterator(); it.hasNext();) {
				Object added = it.next();
				Object mappingValue = wrappedMapping.getMappingValue(added);