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.observable/src/org/eclipse/core/databinding/observable/map/CompositeMap.java
}
					public Object getNewValue(Object key) {
						return wrappedMap.get(key);
					}
					public Object getOldValue(Object key) {
						return oldValues.get(key);
					}
					public Set getRemovedKeys() {
						return removes;
					}
				});
			}
			if (rangeSetAdditions.size() > 0 || rangeSetRemovals.size() > 0) {
				rangeSet.addAndRemove(rangeSetAdditions, rangeSetRemovals);
			}
		}
	};
	private IMapChangeListener secondMapListener = new IMapChangeListener() {
		public void handleMapChange(MapChangeEvent event) {
			MapDiff diff = event.diff;
			final Set adds = new HashSet();
			final Set changes = new HashSet();
			final Set removes = new HashSet();
			final Map oldValues = new HashMap();
			final Map newValues = new HashMap();
			Set addedKeys = new HashSet(diff.getAddedKeys());
			Set removedKeys = new HashSet(diff.getRemovedKeys());
			for (Iterator it = addedKeys.iterator(); it.hasNext();) {
				Object addedKey = it.next();
				Set elements = firstMap.getKeys(addedKey);