Program: 95404
Project: 95404
Buggy source:
/** 
 * Updates the binding between the given scale and its corresponding model value. This is done by removing the old bindings and creating new ones.
 * @param boundProperty the property for the binding
 * @param bindingContext the binding context
 * @param factorScale the scale
 * @param masterObservable the observable
 */
private void updateBindFactor(String boundProperty,final DataBindingContext bindingContext,final Scale factorScale,IObservableValue masterObservable){
  IObservableValue uiElement=WidgetProperties.selection().observe(factorScale);
  IObservableValue modelElement=BeanProperties.value(boundProperty,double.class).observeDetail(masterObservable);
  removeBinding(uiElement,modelElement);
  bindingContext.bindValue(uiElement,modelElement,new JBEditorUpdateValueStrategy(UpdateValueStrategy.POLICY_ON_REQUEST).setConverter(m_sliderToModelConverter),new UpdateValueStrategy().setConverter(m_modelToSliderConverter));
  Label factorText=m_factorLabels.get(factorScale);
  uiElement=WidgetProperties.text().observe(factorText);
  removeBinding(uiElement,modelElement);
  bindingContext.bindValue(uiElement,modelElement,new UpdateValueStrategy().setConverter(m_labelToModelConverter),new UpdateValueStrategy().setConverter(m_modelToLabelConverter));
  uiElement=WidgetProperties.selection().observe(factorScale);
  removeBinding(uiElement,masterObservable);
  bindingContext.bindValue(uiElement,masterObservable,new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER),new UpdateValueStrategy().setConverter(m_modelToEnablementConverter));
}

Fixed version (ground truth):
/** 
 * Updates the binding between the given scale and its corresponding model value. This is done by removing the old bindings and creating new ones.
 * @param boundProperty the property for the binding
 * @param bindingContext the binding context
 * @param factorScale the scale
 * @param masterObservable the observable
 */
private void updateBindFactor(String boundProperty,final DataBindingContext bindingContext,final Scale factorScale,IObservableValue masterObservable){
  IObservableValue uiElement=WidgetProperties.selection().observe(factorScale);
  IObservableValue modelElement=BeanProperties.value(boundProperty,double.class).observeDetail(masterObservable);
  removeBinding(uiElement,modelElement);
  bindingContext.bindValue(uiElement,modelElement,new JBEditorUpdateValueStrategy(UpdateValueStrategy.POLICY_ON_REQUEST).setConverter(m_sliderToModelConverter),new UpdateValueStrategy().setConverter(m_modelToSliderConverter));
  Label factorText=m_factorLabels.get(factorScale);
  uiElement=WidgetProperties.text().observe(factorText);
  removeBinding(uiElement,modelElement);
  bindingContext.bindValue(uiElement,modelElement,new UpdateValueStrategy().setConverter(m_labelToModelConverter),new UpdateValueStrategy().setConverter(m_modelToLabelConverter));
  uiElement=WidgetProperties.enabled().observe(factorScale);
  removeBinding(uiElement,masterObservable);
  bindingContext.bindValue(uiElement,masterObservable,new UpdateValueStrategy(UpdateValueStrategy.POLICY_NEVER),new UpdateValueStrategy().setConverter(m_modelToEnablementConverter));
}