Bug 166712 [DataBinding] fix for 164653 broke the suites
bundles/org.eclipse.core.databinding/src/org/eclipse/core/databinding/observable/masterdetail/DetailObservableValue.java
outerObservableValue.addValueChangeListener(outerChangeListener);
	}
	IValueChangeListener outerChangeListener = new IValueChangeListener() {
		public void handleValueChange(IObservableValue source, ValueDiff diff) {
			Object oldValue = doGetValue();
			updateInnerObservableValue(outerObservableValue);
			fireValueChange(Diffs.createValueDiff(oldValue, doGetValue()));
		}
	};
	private void updateInnerObservableValue(
			IObservableValue outerObservableValue) {
		currentOuterValue = outerObservableValue.getValue();
		if (innerObservableValue != null) {
			innerObservableValue.removeValueChangeListener(innerChangeListener);
			innerObservableValue.dispose();
		}
		if (currentOuterValue == null) {
			innerObservableValue = null;
		} else {
			this.innerObservableValue = (IObservableValue) factory
					.createObservable(currentOuterValue);
			Object innerValueType = innerObservableValue.getValueType();
			if (detailType == null) {
				detailType = innerValueType;
			} else {
				Assert
						.isTrue(detailType.equals(innerValueType),
								"Cannot change value type in a nested observable value"); 
			}
			innerObservableValue.addValueChangeListener(innerChangeListener);