Program: 109530
Project: 109530
Buggy source:
@Override public void run(){
  ArchiveService archiveService=new ArchiveService(context);
  ArchiveModel archiveModel=archiveService.getById(archiveModelID);
  String[] classFilePathTokens=inputPath.split("String_Node_Str");
  Path classFilePath=Paths.get(archiveModel.getUnzippedDirectory().getFilePath());
  for (  String pathToken : classFilePathTokens) {
    classFilePath=classFilePath.resolve(pathToken);
  }
  FileModel decompiledFileModel=fileService.getUniqueByProperty(FileModel.FILE_PATH,decompiledOutputFile);
  if (decompiledFileModel == null) {
    FileModel parentFileModel=fileService.findByPath(Paths.get(decompiledOutputFile).getParent().toString());
    decompiledFileModel=fileService.createByFilePath(parentFileModel,decompiledOutputFile);
    decompiledFileModel.setParentArchive(archiveModel);
  }
  ProjectModel projectModel=archiveModel.getProjectModel();
  decompiledFileModel.setProjectModel(projectModel);
  projectModel.addFileModel(decompiledFileModel);
  if (decompiledOutputFile.endsWith("String_Node_Str")) {
    if (!(decompiledFileModel instanceof JavaSourceFileModel)) {
      decompiledFileModel=new GraphService<JavaSourceFileModel>(context,JavaSourceFileModel.class).addTypeToModel(decompiledFileModel);
    }
    JavaSourceFileModel decompiledSourceFileModel=(JavaSourceFileModel)decompiledFileModel;
    TechnologyTagService techTagService=new TechnologyTagService(context);
    techTagService.addTagToFileModel(decompiledSourceFileModel,TECH_TAG,TECH_TAG_LEVEL);
    FileModel classFileModel=fileService.getUniqueByProperty(FileModel.FILE_PATH,classFilePath.toAbsolutePath().toString());
    if (classFileModel != null && classFileModel instanceof JavaClassFileModel) {
      JavaClassFileModel classModel=(JavaClassFileModel)classFileModel;
      classModel.getJavaClass().setDecompiledSource(decompiledSourceFileModel);
      decompiledSourceFileModel.setPackageName(classModel.getPackageName());
    }
 else {
      throw new WindupException("String_Node_Str" + decompiledOutputFile + "String_Node_Str"+ classFilePath.toString());
    }
  }
  archiveModel.addDecompiledFileModel(decompiledFileModel);
  if (atomicInteger.incrementAndGet() % 100 == 0) {
    LOG.info("String_Node_Str" + atomicInteger.get() + "String_Node_Str"+ archiveModelID);
    context.getGraph().getBaseGraph().commit();
  }
}

Fixed version (ground truth):
@Override public void run(){
  ArchiveService archiveService=new ArchiveService(context);
  ArchiveModel archiveModel=archiveService.getById(archiveModelID);
  String[] classFilePathTokens=inputPath.split("String_Node_Str");
  Path classFilePath=Paths.get(archiveModel.getUnzippedDirectory().getFilePath());
  for (  String pathToken : classFilePathTokens) {
    classFilePath=classFilePath.resolve(pathToken);
  }
  FileModel decompiledFileModel=fileService.getUniqueByProperty(FileModel.FILE_PATH,decompiledOutputFile);
  if (decompiledFileModel == null) {
    FileModel parentFileModel=fileService.findByPath(Paths.get(decompiledOutputFile).getParent().toString());
    if (parentFileModel == null) {
      List<Path> lineage=new LinkedList<>();
      Path parentPath=Paths.get(decompiledOutputFile).getParent();
      FileModel existingParentFM=parentFileModel;
      while (existingParentFM == null) {
        lineage.add(0,parentPath);
        parentPath=parentPath.getParent();
        existingParentFM=fileService.findByPath(parentPath.toString());
      }
      FileModel currentParent=existingParentFM;
      for (      Path p : lineage) {
        currentParent=fileService.createByFilePath(currentParent,p.toString());
      }
      parentFileModel=currentParent;
    }
    decompiledFileModel=fileService.createByFilePath(parentFileModel,decompiledOutputFile);
    decompiledFileModel.setParentArchive(archiveModel);
  }
  ProjectModel projectModel=archiveModel.getProjectModel();
  decompiledFileModel.setProjectModel(projectModel);
  projectModel.addFileModel(decompiledFileModel);
  if (decompiledOutputFile.endsWith("String_Node_Str")) {
    if (!(decompiledFileModel instanceof JavaSourceFileModel)) {
      decompiledFileModel=new GraphService<JavaSourceFileModel>(context,JavaSourceFileModel.class).addTypeToModel(decompiledFileModel);
    }
    JavaSourceFileModel decompiledSourceFileModel=(JavaSourceFileModel)decompiledFileModel;
    TechnologyTagService techTagService=new TechnologyTagService(context);
    techTagService.addTagToFileModel(decompiledSourceFileModel,TECH_TAG,TECH_TAG_LEVEL);
    FileModel classFileModel=fileService.getUniqueByProperty(FileModel.FILE_PATH,classFilePath.toAbsolutePath().toString());
    if (classFileModel != null && classFileModel instanceof JavaClassFileModel) {
      JavaClassFileModel classModel=(JavaClassFileModel)classFileModel;
      classModel.getJavaClass().setDecompiledSource(decompiledSourceFileModel);
      decompiledSourceFileModel.setPackageName(classModel.getPackageName());
    }
 else {
      throw new WindupException("String_Node_Str" + decompiledOutputFile + "String_Node_Str"+ classFilePath.toString());
    }
  }
  archiveModel.addDecompiledFileModel(decompiledFileModel);
  if (atomicInteger.incrementAndGet() % 100 == 0) {
    LOG.info("String_Node_Str" + atomicInteger.get() + "String_Node_Str"+ archiveModelID);
    context.getGraph().getBaseGraph().commit();
  }
}