Program: 95606
Project: 95606
Buggy source:
/** 
 * tries to set the position via drag & drop
 * @param units the units (percent or value)
 * @param value the value
 */
private void setPositionViaDragAndDrop(String units,Double value){
  Slider slider=getRealComponent();
  double min=slider.getMin();
  double max=slider.getMax();
  double currentRelPos=100 * (slider.getValue() - min) / (max - min);
  double futureRelPos=value;
  if (ValueSets.Measure.value.rcValue().equalsIgnoreCase(units)) {
    futureRelPos=100 * (value - min) / (max - min);
  }
  final DragAndDropHelper dndHelper=DragAndDropHelper.getInstance();
  int mouseButton=ValueSets.InteractionMode.primary.rcIntValue();
  dndHelper.setMouseButton(mouseButton);
  final IRobot robot=getRobot();
  boolean horizontal=slider.getOrientation().equals(Orientation.HORIZONTAL);
  if (horizontal) {
    getRobot().click(getTrack(),null,ClickOptions.create().setClickCount(0).setMouseButton(mouseButton),(int)Math.round(currentRelPos),false,50,false);
  }
 else {
    getRobot().click(getTrack(),null,ClickOptions.create().setClickCount(0).setMouseButton(mouseButton),50,false,100 - (int)Math.round(currentRelPos),false);
  }
  robot.mousePress(null,null,mouseButton);
  try {
    if (horizontal) {
      getRobot().click(getTrack(),null,ClickOptions.create().setClickCount(0).setMouseButton(mouseButton),(int)Math.round(futureRelPos),false,50,false);
    }
 else {
      getRobot().click(getTrack(),null,ClickOptions.create().setClickCount(0).setMouseButton(mouseButton),50,false,100 - (int)Math.round(futureRelPos),false);
    }
    TimeUtil.delay(200);
  }
  finally {
    getRobot().mouseRelease(null,null,mouseButton);
  }
}

Fixed version (ground truth):
/** 
 * tries to set the position via drag & drop
 * @param units the units (percent or value)
 * @param value the value
 */
private void setPositionViaDragAndDrop(String units,Double value){
  Slider slider=getRealComponent();
  double min=slider.getMin();
  double max=slider.getMax();
  double currentRelPos=100 * (slider.getValue() - min) / (max - min);
  double futureRelPos=value;
  if (ValueSets.Measure.value.rcValue().equalsIgnoreCase(units)) {
    futureRelPos=100 * (value - min) / (max - min);
  }
  final DragAndDropHelper dndHelper=DragAndDropHelper.getInstance();
  int mouseButton=ValueSets.InteractionMode.primary.rcIntValue();
  dndHelper.setMouseButton(mouseButton);
  final IRobot<Rectangle> robot=getRobot();
  boolean horizontal=slider.getOrientation().equals(Orientation.HORIZONTAL);
  if (horizontal) {
    moveHorizontal(currentRelPos,mouseButton);
  }
 else {
    moveVertical(currentRelPos,mouseButton);
  }
  robot.mousePress(null,null,mouseButton);
  try {
    if (horizontal) {
      moveHorizontal(futureRelPos - 2.0,mouseButton);
      TimeUtil.delay(200);
      moveHorizontal(futureRelPos,mouseButton);
      TimeUtil.delay(200);
      moveHorizontal(futureRelPos + 2.0,mouseButton);
      TimeUtil.delay(200);
      moveHorizontal(futureRelPos,mouseButton);
    }
 else {
      moveVertical(futureRelPos - 2.0,mouseButton);
      TimeUtil.delay(200);
      moveVertical(futureRelPos,mouseButton);
      TimeUtil.delay(200);
      moveVertical(futureRelPos + 2.0,mouseButton);
      TimeUtil.delay(200);
      moveVertical(futureRelPos,mouseButton);
    }
    TimeUtil.delay(200);
  }
  finally {
    getRobot().mouseRelease(null,null,mouseButton);
  }
}