Bug 135316 [DataBinding] Unexpected behavior from BindSpec converter and validator setters
The set methods that accept one validator/converter don't behave as expected. For example if setValidators(...) was called with 2 validators and then setValidator(...) was called it would only change the first validator stored internally. The validator that previously was set at index 1 in the array is still maintained by BindSpec. Also the setValidator(...) method always assumes that an array with at least a length of 1 exists. If setValidators(...) is called with an array of length zero and then a call is made to setValidator(...) an IndexOutOfBoundsException is thrown. Same problems would occur with setting it to null except of course a NPE will be thrown. When I get some time I'll try to apply a patch for this. The changes that I'll make will be that when any set is called it removes all previous values.
bundles/org.eclipse.jface.databinding/src/org/eclipse/jface/internal/databinding/provisional/BindSpec.java
* @param domainValidator
	 * @param modelUpdatePolicy
	 * @param validatePolicy
	 * @param targetUpdatePolicy
	 * 
	 */
	public BindSpec(IConverter[] modelToTargetConverter,
			IConverter[] targetToModelConverter, IValidator[] targetValidator,
			IDomainValidator domainValidator, Integer modelUpdatePolicy,
			Integer validatePolicy, Integer targetUpdatePolicy) {
		
		this.modelToTargetConverters = modelToTargetConverter;
		this.targetToModelConverters = targetToModelConverter;
		this.targetValidators = targetValidator;
		this.domainValidator = domainValidator;
		this.modelUpdatePolicy = modelUpdatePolicy;
		this.validatePolicy = validatePolicy;
		this.targetUpdatePolicy = targetUpdatePolicy;
	}
	/**
	 * Creates a bind spec with the given converters, validators, and update
	 * policies.
	 * 
	 * @param modelToTargetConverter
	 * @param targetToModelConverter
	 * @param targetValidator
	 * @param domainValidator
	 * @param modelUpdatePolicy
	 * @param validatePolicy
	 * @param targetUpdatePolicy