Program: 93702
Project: 93702
Buggy source:
/** 
 * This will process the   {@link #unmatchedElements unmatched elements} list and create the appropriate{@link DiffElement}s. <p> This is called for three-way comparison. Clients can override this to alter the checks or add their own. </p>
 * @param diffRoot {@link DiffGroup} under which to create the {@link DiffElement}s.
 * @param unmatched The MatchModel's  {@link UnmatchElement}s.
 */
protected void processUnmatchedElements(DiffGroup diffRoot,Map<UnmatchElement,Boolean> unmatched){
  for (  final UnmatchElement unmatchElement : unmatched.keySet()) {
    if (unmatched.get(unmatchElement)) {
      processConflictingUnmatchedElement(diffRoot,unmatchElement);
    }
 else {
      final EObject element=unmatchElement.getElement();
      final EObject matchedParent=getMatchedEObject(element.eContainer());
      if (unmatchElement.isRemote()) {
        if (unmatchElement.getSide() == Side.LEFT) {
          final RemoteAddModelElement addOperation=DiffFactory.eINSTANCE.createRemoteAddModelElement();
          addOperation.setRightElement(element);
          addOperation.setLeftParent(matchedParent);
          addInContainerPackage(diffRoot,addOperation,matchedParent);
        }
 else {
          final RemoteRemoveModelElement removeOperation=DiffFactory.eINSTANCE.createRemoteRemoveModelElement();
          removeOperation.setLeftElement(element);
          removeOperation.setRightParent(matchedParent);
          addInContainerPackage(diffRoot,removeOperation,element.eContainer());
        }
      }
 else {
        if (unmatchElement.getSide() == Side.LEFT) {
          final RemoveModelElement removeOperation=DiffFactory.eINSTANCE.createRemoveModelElement();
          removeOperation.setRightElement(element);
          removeOperation.setLeftParent(matchedParent);
          addInContainerPackage(diffRoot,removeOperation,matchedParent);
        }
 else {
          final AddModelElement addOperation=DiffFactory.eINSTANCE.createAddModelElement();
          addOperation.setLeftElement(element);
          addOperation.setRightParent(matchedParent);
          addInContainerPackage(diffRoot,addOperation,element.eContainer());
        }
      }
    }
  }
}

Fixed version (ground truth):
/** 
 * This will process the   {@link #unmatchedElements unmatched elements} list and create the appropriate{@link DiffElement}s. <p> This is called for three-way comparison. Clients can override this to alter the checks or add their own. </p>
 * @param diffRoot {@link DiffGroup} under which to create the {@link DiffElement}s.
 * @param unmatched The MatchModel's  {@link UnmatchElement}s.
 */
protected void processUnmatchedElements(DiffGroup diffRoot,Map<UnmatchElement,Boolean> unmatched){
  for (  final Entry<UnmatchElement,Boolean> entry : unmatched.entrySet()) {
    if (entry.getValue().booleanValue()) {
      processConflictingUnmatchedElement(diffRoot,entry.getKey());
    }
 else {
      final EObject element=entry.getKey().getElement();
      final EObject matchedParent=getMatchedEObject(element.eContainer());
      if (entry.getKey().isRemote()) {
        if (entry.getKey().getSide() == Side.LEFT) {
          final RemoteAddModelElement addOperation=DiffFactory.eINSTANCE.createRemoteAddModelElement();
          addOperation.setRightElement(element);
          addOperation.setLeftParent(matchedParent);
          addInContainerPackage(diffRoot,addOperation,matchedParent);
        }
 else {
          final RemoteRemoveModelElement removeOperation=DiffFactory.eINSTANCE.createRemoteRemoveModelElement();
          removeOperation.setLeftElement(element);
          removeOperation.setRightParent(matchedParent);
          addInContainerPackage(diffRoot,removeOperation,element.eContainer());
        }
      }
 else {
        if (entry.getKey().getSide() == Side.LEFT) {
          final RemoveModelElement removeOperation=DiffFactory.eINSTANCE.createRemoveModelElement();
          removeOperation.setRightElement(element);
          removeOperation.setLeftParent(matchedParent);
          addInContainerPackage(diffRoot,removeOperation,matchedParent);
        }
 else {
          final AddModelElement addOperation=DiffFactory.eINSTANCE.createAddModelElement();
          addOperation.setLeftElement(element);
          addOperation.setRightParent(matchedParent);
          addInContainerPackage(diffRoot,addOperation,element.eContainer());
        }
      }
    }
  }
}