Program: 93720
Project: 93720
Buggy source:
/** 
 * This will compute the necessary GUI information for the given   {@link ModelContentMergeTabItem} giventhe diff it represents.
 * @param item The item which UI information is to be set.
 */
private void computeUIInfoFor(ModelContentMergeTabItem item){
  final int curveY;
  final DiffElement diff=item.getDiff();
  if (item.getActualItem() == item.getVisibleItem()) {
    if (partSide == EMFCompareConstants.LEFT && diff instanceof ModelElementChangeRightTarget) {
      curveY=((TreeItem)item.getVisibleItem()).getBounds().y + ((TreeItem)item.getVisibleItem()).getBounds().height;
    }
 else     if (partSide == EMFCompareConstants.RIGHT && diff instanceof ModelElementChangeLeftTarget) {
      curveY=((TreeItem)item.getVisibleItem()).getBounds().y + ((TreeItem)item.getVisibleItem()).getBounds().height;
    }
 else {
      curveY=((TreeItem)item.getVisibleItem()).getBounds().y + ((TreeItem)item.getVisibleItem()).getBounds().height / 2;
    }
    item.setCurveY(curveY);
  }
 else {
    if (partSide == EMFCompareConstants.LEFT && diff instanceof ModelElementChangeRightTarget) {
      curveY=((TreeItem)item.getVisibleItem()).getBounds().y + ((TreeItem)item.getVisibleItem()).getBounds().height;
    }
 else     if (partSide == EMFCompareConstants.RIGHT && diff instanceof ModelElementChangeLeftTarget) {
      curveY=((TreeItem)item.getVisibleItem()).getBounds().y + ((TreeItem)item.getVisibleItem()).getBounds().height;
    }
 else {
      curveY=((TreeItem)item.getVisibleItem()).getBounds().y + ((TreeItem)item.getVisibleItem()).getBounds().height;
    }
    item.setCurveY(curveY);
  }
  if (getSelectedElements().contains(item.getActualItem())) {
    item.setCurveSize(2);
  }
 else {
    item.setCurveSize(1);
  }
}

Fixed version (ground truth):
/** 
 * This will compute the necessary GUI information for the given   {@link ModelContentMergeTabItem} giventhe diff it represents.
 * @param item The item which UI information is to be set.
 */
private void computeUIInfoFor(ModelContentMergeTabItem item){
  final int curveY;
  final DiffElement diff=item.getDiff();
  if (item.getActualItem() == item.getVisibleItem()) {
    if (partSide == EMFCompareConstants.LEFT && diff instanceof ModelElementChangeRightTarget) {
      curveY=((TreeItem)item.getVisibleItem()).getBounds().y + ((TreeItem)item.getVisibleItem()).getBounds().height;
    }
 else     if (partSide == EMFCompareConstants.RIGHT && diff instanceof ModelElementChangeLeftTarget) {
      curveY=((TreeItem)item.getVisibleItem()).getBounds().y + ((TreeItem)item.getVisibleItem()).getBounds().height;
    }
 else {
      curveY=((TreeItem)item.getVisibleItem()).getBounds().y + ((TreeItem)item.getVisibleItem()).getBounds().height / 2;
    }
    item.setCurveY(curveY);
  }
 else {
    if (partSide == EMFCompareConstants.LEFT && diff instanceof ModelElementChangeRightTarget) {
      curveY=((TreeItem)item.getVisibleItem()).getBounds().y + ((TreeItem)item.getVisibleItem()).getBounds().height;
    }
 else     if (partSide == EMFCompareConstants.RIGHT && diff instanceof ModelElementChangeLeftTarget) {
      curveY=((TreeItem)item.getVisibleItem()).getBounds().y + ((TreeItem)item.getVisibleItem()).getBounds().height;
    }
 else {
      curveY=((TreeItem)item.getVisibleItem()).getBounds().y + ((TreeItem)item.getVisibleItem()).getBounds().height / 2;
    }
    item.setCurveY(curveY);
  }
  if (getSelectedElements().contains(item.getActualItem())) {
    item.setCurveSize(2);
  }
 else {
    item.setCurveSize(1);
  }
}