Program: 93564
Project: 93564
Buggy source:
/** 
 * Checks whether the given   {@link Match}'s sides have changed resources of kind Move. This will only be called for   {@link Match} elements referencing the root(s) of an EMF Resource. We also create resourceattachment of kind Move only for non-local comparison. This is why this check is made in the EMf compare Egit support plugin. The reason is a local comparison between /MyPath/left.model & /MyPath/right.model, will always result in  {@link ResourceAttachmentChange}s of kind Move, and we don't want to have   {@link ResourceAttachmentChange}s in these cases.
 * @param match The match that is to be checked.
 * @param monitor The monitor to report progress or to check for cancellation.
 */
protected void checkResourceAttachment(Match match,Monitor monitor){
  final Comparison comparison=match.getComparison();
  if (comparison.getMatchedResources().isEmpty()) {
    return;
  }
  final EObject left=match.getLeft();
  final EObject right=match.getRight();
  boolean threeWay=comparison.isThreeWay();
  if (threeWay) {
    final EObject origin=match.getOrigin();
    if (!isLocalComparison(left,origin) && !haveSameResourceURI(left,origin)) {
      final String uri=left.eResource().getURI().toString();
      getDiffProcessor().resourceAttachmentChange(match,uri,DifferenceKind.MOVE,DifferenceSource.LEFT);
    }
    if (!isLocalComparison(right,origin) && !haveSameResourceURI(right,origin)) {
      final String uri=right.eResource().getURI().toString();
      getDiffProcessor().resourceAttachmentChange(match,uri,DifferenceKind.MOVE,DifferenceSource.RIGHT);
    }
  }
 else {
    if (!isLocalComparison(left,right) && !haveSameResourceURI(left,right)) {
      final String uri=right.eResource().getURI().toString();
      getDiffProcessor().resourceAttachmentChange(match,uri,DifferenceKind.MOVE,DifferenceSource.LEFT);
    }
  }
}

Fixed version (ground truth):
/** 
 * Checks whether the given   {@link Match}'s sides have changed resources of kind Move. This will only be called for   {@link Match} elements referencing the root(s) of an EMF Resource. We also create resourceattachment of kind Move only for non-local comparison. This is why this check is made in the EMf compare Egit support plugin. The reason is a local comparison between /MyPath/left.model & /MyPath/right.model, will always result in  {@link ResourceAttachmentChange}s of kind Move, and we don't want to have   {@link ResourceAttachmentChange}s in these cases.
 * @param match The match that is to be checked.
 * @param monitor The monitor to report progress or to check for cancellation.
 */
protected void checkResourceAttachment(Match match,Monitor monitor){
  final Comparison comparison=match.getComparison();
  if (comparison.getMatchedResources().isEmpty()) {
    return;
  }
  final EObject left=match.getLeft();
  final EObject right=match.getRight();
  boolean threeWay=comparison.isThreeWay();
  if (threeWay) {
    final EObject origin=match.getOrigin();
    if (!isLocalComparison(left,origin) && areNotRootsOfSameResource(left,origin)) {
      final String uri=left.eResource().getURI().toString();
      getDiffProcessor().resourceAttachmentChange(match,uri,DifferenceKind.MOVE,DifferenceSource.LEFT);
    }
    if (!isLocalComparison(right,origin) && areNotRootsOfSameResource(right,origin)) {
      final String uri=right.eResource().getURI().toString();
      getDiffProcessor().resourceAttachmentChange(match,uri,DifferenceKind.MOVE,DifferenceSource.RIGHT);
    }
  }
 else {
    if (!isLocalComparison(left,right) && areNotRootsOfSameResource(left,right)) {
      final String uri=right.eResource().getURI().toString();
      getDiffProcessor().resourceAttachmentChange(match,uri,DifferenceKind.MOVE,DifferenceSource.LEFT);
    }
  }
}