Program: 93697
Project: 93697
Buggy source:
/** 
 * This will create and populate a   {@link List} with all the references from the<code>rightReferences</code>  {@link List} that cannot be matched in the <code>leftReferences</code>{@link List}.
 * @param leftReferences List of the left element reference values.
 * @param rightReferences List of the right element reference values.
 * @return {@link List} of all the references that have been deleted from the left (local) element sincethe right (distant) element.
 */
private List<EObject> computeDeletedReferences(List<EObject> leftReferences,List<EObject> rightReferences){
  final List<EObject> deletedReferences=new ArrayList<EObject>();
  final List<EObject> addedReferences=new ArrayList<EObject>();
  final double similarReferenceURIThreshold=0.8d;
  if (leftReferences != null) {
    addedReferences.addAll(leftReferences);
  }
  if (rightReferences != null) {
    deletedReferences.addAll(rightReferences);
  }
  final List<EObject> matchedNewReferences=getMatchedReferences(addedReferences);
  deletedReferences.removeAll(matchedNewReferences);
  for (  final EObject deleted : new ArrayList<EObject>(deletedReferences)) {
    for (    final EObject added : addedReferences) {
      final double uriSimilarity=ResourceSimilarity.computeURISimilarity(EcoreUtil.getURI(added),EcoreUtil.getURI(deleted));
      if (uriSimilarity > similarReferenceURIThreshold) {
        deletedReferences.remove(deleted);
      }
    }
  }
  return deletedReferences;
}

Fixed version (ground truth):
/** 
 * This will create and populate a   {@link List} with all the references from the<code>rightReferences</code>  {@link List} that cannot be matched in the <code>leftReferences</code>{@link List}.
 * @param leftReferences List of the left element reference values.
 * @param rightReferences List of the right element reference values.
 * @return {@link List} of all the references that have been deleted from the left (local) element sincethe right (distant) element.
 */
private List<EObject> computeDeletedReferences(List<EObject> leftReferences,List<EObject> rightReferences){
  final List<EObject> deletedReferences=new ArrayList<EObject>();
  final List<EObject> addedReferences=new ArrayList<EObject>();
  final double similarReferenceURIThreshold=0.8d;
  if (leftReferences != null) {
    addedReferences.addAll(leftReferences);
  }
  if (rightReferences != null) {
    deletedReferences.addAll(rightReferences);
  }
  final List<EObject> matchedNewReferences=getMatchedReferences(addedReferences);
  deletedReferences.removeAll(matchedNewReferences);
  for (  final EObject deleted : new ArrayList<EObject>(deletedReferences)) {
    for (    final EObject added : addedReferences) {
      final EObject matched=getMatchedEObject(deleted);
      if (matched != null) {
        if (matched == added) {
          deletedReferences.remove(deleted);
        }
      }
 else {
        final double uriSimilarity=ResourceSimilarity.computeURISimilarity(EcoreUtil.getURI(added),EcoreUtil.getURI(deleted));
        if (uriSimilarity > similarReferenceURIThreshold) {
          deletedReferences.remove(deleted);
        }
      }
    }
  }
  return deletedReferences;
}