Program: 109529
Project: 109529
Buggy source:
@Override public synchronized void fileDecompiled(final String inputPath,final String decompiledOutputFile){
  executorService.submit(new Runnable(){
    @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 synchronized void fileDecompiled(final String inputPath,final String decompiledOutputFile){
  executorService.submit(new Runnable(){
    @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();
      }
    }
  }
);
}