Program: 97214
Project: 97214
Buggy source:
protected void addToCompare(IProgressMonitor monitor,CompareData data,PresentationType presentationType,ArtifactDelta artifactDelta) throws OseeCoreException {
  Pair<String,Boolean> originalValue=null;
  Artifact baseArtifact=artifactDelta.getStartArtifact();
  Artifact newerArtifact=artifactDelta.getEndArtifact();
  Attribute<String> baseContent=getWordContent(baseArtifact);
  Attribute<String> newerContent=getWordContent(newerArtifact);
  if (!UserManager.getBooleanSetting(MsWordPreferencePage.IDENTFY_IMAGE_CHANGES)) {
    originalValue=WordImageChecker.checkForImageDiffs(baseContent,newerContent);
  }
  monitor.setTaskName("String_Node_Str" + (newerArtifact == null ? baseArtifact.getName() : newerArtifact.getName()));
  Pair<IFile,IFile> compareFiles;
  if (artifactDelta.getStartArtifact() == artifactDelta.getBaseArtifact()) {
    compareFiles=converter.convertToFile(presentationType,artifactDelta);
  }
 else {
    List<IFile> outputFiles=new ArrayList<IFile>();
    converter.convertToFileForMerge(outputFiles,artifactDelta.getBaseArtifact(),artifactDelta.getStartArtifact());
    converter.convertToFileForMerge(outputFiles,artifactDelta.getBaseArtifact(),artifactDelta.getEndArtifact());
    compareFiles=new Pair<IFile,IFile>(outputFiles.get(0),outputFiles.get(1));
    data.addMerge(outputFiles.get(0).getLocation().toOSString());
  }
  WordImageChecker.restoreOriginalValue(baseContent,originalValue);
  data.add(compareFiles.getFirst().getLocation().toOSString(),compareFiles.getSecond().getLocation().toOSString());
}

Fixed version (ground truth):
protected void addToCompare(IProgressMonitor monitor,CompareData data,PresentationType presentationType,ArtifactDelta artifactDelta) throws OseeCoreException {
  Pair<String,Boolean> originalValue=null;
  Artifact baseArtifact=artifactDelta.getStartArtifact();
  Artifact newerArtifact=artifactDelta.getEndArtifact();
  Attribute<String> baseContent=getWordContent(baseArtifact);
  Attribute<String> newerContent=getWordContent(newerArtifact);
  if (!UserManager.getBooleanSetting(MsWordPreferencePage.IDENTFY_IMAGE_CHANGES)) {
    originalValue=WordImageChecker.checkForImageDiffs(baseContent,newerContent);
  }
  monitor.setTaskName("String_Node_Str" + (newerArtifact == null ? baseArtifact.getName() : newerArtifact.getName()));
  Pair<IFile,IFile> compareFiles;
  if (artifactDelta.getStartArtifact() == artifactDelta.getBaseArtifact()) {
    compareFiles=converter.convertToFile(presentationType,artifactDelta);
  }
 else {
    List<IFile> outputFiles=new ArrayList<IFile>();
    converter.convertToFileForMerge(outputFiles,artifactDelta.getBaseArtifact(),artifactDelta.getStartArtifact());
    converter.convertToFileForMerge(outputFiles,artifactDelta.getBaseArtifact(),artifactDelta.getEndArtifact());
    if (outputFiles.size() == 1) {
      String outputFileName=outputFiles.get(0).getRawLocation().toOSString();
      try {
        String tempFileName=Lib.removeExtension(outputFileName);
        File tempFile=new File(tempFileName + "String_Node_Str");
        Lib.writeStringToFile("String_Node_Str",tempFile);
        IFile constructIFile=AIFile.constructIFile(tempFile.getPath());
        outputFiles.add(constructIFile);
      }
 catch (      IOException ex) {
        throw new OseeCoreException(ex,"String_Node_Str",outputFileName);
      }
    }
    compareFiles=new Pair<IFile,IFile>(outputFiles.get(0),outputFiles.get(1));
    data.addMerge(outputFiles.get(0).getLocation().toOSString());
  }
  WordImageChecker.restoreOriginalValue(baseContent,originalValue);
  data.add(compareFiles.getFirst().getLocation().toOSString(),compareFiles.getSecond().getLocation().toOSString());
}