Program: 109565
Project: 109565
Buggy source:
@Override public void perform(final GraphRewrite event,final EvaluationContext context,final ArchiveModel payload){
  if (payload.getUnzippedDirectory() != null) {
    Decompiler decompiler=new ProcyonDecompiler(new ProcyonConfiguration().setIncludeNested(false));
    String archivePath=((FileModel)payload).getFilePath();
    File archive=new File(archivePath);
    File outputDir=new File(payload.getUnzippedDirectory().getFilePath());
    if (payload instanceof WarArchiveModel) {
      outputDir=outputDir.toPath().resolve("String_Node_Str").resolve("String_Node_Str").toFile();
    }
    try {
      DecompilationResult result=decompiler.decompileArchive(archive,outputDir);
      Set<String> decompiledOutputFileSet=result.getDecompiledOutputFiles();
      FileModelService fileService=new FileModelService(event.getGraphContext());
      for (      String decompiledOutputFile : decompiledOutputFileSet) {
        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(payload);
        }
        ProjectModel projectModel=payload.getProjectModel();
        decompiledFileModel.setProjectModel(projectModel);
        projectModel.addFileModel(decompiledFileModel);
        if (decompiledOutputFile.endsWith("String_Node_Str")) {
          if (!(decompiledFileModel instanceof JavaSourceFileModel)) {
            decompiledFileModel=GraphService.addTypeToModel(event.getGraphContext(),decompiledFileModel,JavaSourceFileModel.class);
          }
          JavaSourceFileModel decompiledSourceFileModel=(JavaSourceFileModel)decompiledFileModel;
          Path classFilepath=Paths.get(decompiledOutputFile.substring(0,decompiledOutputFile.length() - 5) + "String_Node_Str");
          FileModel classFileModel=fileService.getUniqueByProperty(FileModel.FILE_PATH,classFilepath);
          if (classFileModel != null && classFileModel instanceof JavaClassFileModel) {
            JavaClassFileModel classModel=(JavaClassFileModel)classFileModel;
            classModel.getJavaClass().setDecompiledSource(decompiledSourceFileModel);
            decompiledSourceFileModel.setPackageName(classModel.getPackageName());
          }
        }
        payload.addDecompiledFileModel(decompiledFileModel);
      }
    }
 catch (    final DecompilationException exc) {
      throw new WindupException("String_Node_Str" + archivePath + "String_Node_Str"+ exc.getMessage(),exc);
    }
  }
}

Fixed version (ground truth):
@Override public void perform(final GraphRewrite event,final EvaluationContext context,final ArchiveModel payload){
  if (payload.getUnzippedDirectory() != null) {
    Decompiler decompiler=new ProcyonDecompiler(new ProcyonConfiguration().setIncludeNested(false));
    String archivePath=((FileModel)payload).getFilePath();
    File archive=new File(archivePath);
    File outputDir=new File(payload.getUnzippedDirectory().getFilePath());
    if (payload instanceof WarArchiveModel) {
      outputDir=outputDir.toPath().resolve("String_Node_Str").resolve("String_Node_Str").toFile();
    }
    try {
      DecompilationResult result=decompiler.decompileArchive(archive,outputDir);
      Map<String,String> decompiledOutputFiles=result.getDecompiledFiles();
      FileModelService fileService=new FileModelService(event.getGraphContext());
      for (      Map.Entry<String,String> decompiledEntry : decompiledOutputFiles.entrySet()) {
        String[] classFilePathTokens=decompiledEntry.getKey().split("String_Node_Str");
        Path classFilePath=Paths.get(payload.getUnzippedDirectory().getFilePath());
        for (        String pathToken : classFilePathTokens) {
          classFilePath=classFilePath.resolve(pathToken);
        }
        String decompiledOutputFile=decompiledEntry.getValue();
        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(payload);
        }
        ProjectModel projectModel=payload.getProjectModel();
        decompiledFileModel.setProjectModel(projectModel);
        projectModel.addFileModel(decompiledFileModel);
        if (decompiledOutputFile.endsWith("String_Node_Str")) {
          if (!(decompiledFileModel instanceof JavaSourceFileModel)) {
            decompiledFileModel=GraphService.addTypeToModel(event.getGraphContext(),decompiledFileModel,JavaSourceFileModel.class);
          }
          JavaSourceFileModel decompiledSourceFileModel=(JavaSourceFileModel)decompiledFileModel;
          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());
          }
        }
        payload.addDecompiledFileModel(decompiledFileModel);
      }
    }
 catch (    final DecompilationException exc) {
      throw new WindupException("String_Node_Str" + archivePath + "String_Node_Str"+ exc.getMessage(),exc);
    }
  }
}