Program: 85429
Project: 85429
Buggy source:
public void run(){
  if (minimizing) {
    LabeledRectangle sourceComponent=zoomArrow.getSource();
    LabeledRectangle targetComponent=zoomArrow.getTarget();
    for (    LabeledRectangle component : sourceComponents)     if (component != sourceComponent)     component.setVisible(false);
    for (    LabeledRectangle component : targetComponents)     if (component != targetComponent)     component.setVisible(false);
    for (    Arrow component : arrows)     if (component != zoomArrow)     component.setVisible(false);
    minimized=true;
    Path heightPath=new Path(getHeight(),HEADER_TOP_MARGIN + HEADER_HEIGHT + MARGIN+ ITEM_HEIGHT+ BORDER_HEIGHT);
    Path sourcePath=new Path(sourceComponent.getY(),HEADER_TOP_MARGIN + HEADER_HEIGHT);
    Path targetPath=new Path(targetComponent.getY(),HEADER_TOP_MARGIN + HEADER_HEIGHT);
    for (int i=0; i < nSteps; i++) {
      maxHeight=heightPath.getValue(i);
      sourceComponent.setLocation(sourceX,sourcePath.getValue(i));
      targetComponent.setLocation(targetX,targetPath.getValue(i));
      for (      ResizeListener resizeListener : resizeListeners)       resizeListener.notifyResized(maxHeight,false,false);
      try {
        sleep(20);
      }
 catch (      InterruptedException e) {
        e.printStackTrace();
      }
    }
    maxHeight=heightPath.getEnd();
    sourceComponent.setLocation(sourceX,sourcePath.getEnd());
    targetComponent.setLocation(targetX,targetPath.getEnd());
    for (    ResizeListener resizeListener : resizeListeners)     resizeListener.notifyResized(maxHeight,true,false);
  }
 else {
  }
}

Fixed version (ground truth):
public void run(){
  if (minimizing) {
    LabeledRectangle sourceComponent=zoomArrow.getSource();
    LabeledRectangle targetComponent=zoomArrow.getTarget();
    for (    LabeledRectangle component : sourceComponents)     if (component != sourceComponent)     component.setVisible(false);
    for (    LabeledRectangle component : cdmComponents)     if (component != targetComponent)     component.setVisible(false);
    for (    Arrow component : arrows)     if (component != zoomArrow)     component.setVisible(false);
    minimized=true;
    Path heightPath=new Path(getHeight(),HEADER_TOP_MARGIN + HEADER_HEIGHT + MARGIN+ ITEM_HEIGHT+ BORDER_HEIGHT);
    Path sourcePath=new Path(sourceComponent.getY(),HEADER_TOP_MARGIN + HEADER_HEIGHT);
    Path targetPath=new Path(targetComponent.getY(),HEADER_TOP_MARGIN + HEADER_HEIGHT);
    for (int i=0; i < nSteps; i++) {
      maxHeight=heightPath.getValue(i);
      sourceComponent.setLocation(sourceX,sourcePath.getValue(i));
      targetComponent.setLocation(cdmX,targetPath.getValue(i));
      for (      ResizeListener resizeListener : resizeListeners)       resizeListener.notifyResized(maxHeight,false,false);
      try {
        sleep(20);
      }
 catch (      InterruptedException e) {
        e.printStackTrace();
      }
    }
    maxHeight=heightPath.getEnd();
    sourceComponent.setLocation(sourceX,sourcePath.getEnd());
    targetComponent.setLocation(cdmX,targetPath.getEnd());
    for (    ResizeListener resizeListener : resizeListeners)     resizeListener.notifyResized(maxHeight,true,false);
  }
 else {
  }
}