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
rangeSetAdditions.add(newValue);
				}
				if (added || removed) {
					pendingChanges.put(oldValue, newValue);
					pendingChanges.put(newValue, oldValue);
				} else {
					changes.add(changedKey);
					oldValues.put(changedKey, oldValue);
					wrappedMap.put(changedKey, secondMap.get(newValue));
				}
			}
			for (Iterator it = diff.getRemovedKeys().iterator(); it.hasNext();) {
				Object removedKey = it.next();
				Object oldValue = diff.getOldValue(removedKey);
				if (firstMap.getKeys(oldValue).isEmpty()) {
					pendingRemoves.put(oldValue, removedKey);
					rangeSetRemovals.add(oldValue);
				} else {
					removes.add(removedKey);
					oldValues.put(removedKey, secondMap.get(oldValue));
					wrappedMap.remove(removedKey);
				}
			}
			if (adds.size() > 0 || removes.size() > 0 || changes.size() > 0) {
				fireMapChange(new MapDiff() {
					public Set getAddedKeys() {
						return adds;
					}
					public Set getChangedKeys() {
						return changes;