Bug 262392 [DataBinding] CompositeMap constructor should use this.firstMap
Using EclEmma, I noticed that large portions of BidiObservableMap are not run, indicating a problem in CompositeMap. This needs more thought. I am attaching a patch, it includes one test case but we may want to add more tests.
bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/map/CompositeMap.java
this.firstMap = new BidiObservableMap(firstMap);
		firstMap.addMapChangeListener(firstMapListener);
		rangeSet.addAll(firstMap.values());
		this.secondMap = (IObservableMap) secondMapFactory
				.createObservable(rangeSet);
		secondMap.addMapChangeListener(secondMapListener);
		for (Iterator it = firstMap.entrySet().iterator(); it.hasNext();) {
			Map.Entry entry = (Entry) it.next();
			wrappedMap.put(entry.getKey(), secondMap.get(entry.getValue()));
		}
	}
	public Object getKeyType() {
		return firstMap.getKeyType();
	}
	public Object getValueType() {
		return secondMap.getValueType();
	}
	public synchronized void dispose() {
		super.dispose();
		if (firstMap != null) {
			firstMap.removeMapChangeListener(firstMapListener);
			firstMap = null;
		}
		if (secondMap != null) {
			secondMap.dispose();
			secondMap = null;
		}
	}
}