Program: 93834
Project: 93834
Buggy source:
/** 
 * This is actually the very dirty hack method to adopt the Flapdoodle's API to the compatible way to extract and run TODO: hacky method. Should be considered for complete rewriting //NOSONAR
 */
@Override public IExtractionMatch find(final IArchiveEntry entry){
  if (entry.getName().matches(SKIP_PATTERN)) {
    return null;
  }
  if (extractDir == null || extractDir.asFile() == null) {
    return null;
  }
  String basePath=extractDir.asFile().getPath();
  final Path path=Paths.get(basePath,entry.getName());
  return new IExtractionMatch(){
    @Override public File write(    InputStream source,    long size) throws IOException {
      boolean isSymLink=false;
      String linkName="String_Node_Str";
      if (entry instanceof CommonsArchiveEntryAdapter) {
        try {
          Field archiveEntryField=CommonsArchiveEntryAdapter.class.getDeclaredField("String_Node_Str");
          archiveEntryField.setAccessible(true);
          ArchiveEntry archiveEntry=(ArchiveEntry)archiveEntryField.get(entry);
          if (archiveEntry instanceof TarArchiveEntry && (isSymLink=((TarArchiveEntry)archiveEntry).isSymbolicLink())) {
            linkName=((TarArchiveEntry)archiveEntry).getLinkName();
          }
          archiveEntry.getSize();
        }
 catch (        NoSuchFieldException|IllegalAccessException e) {
          throw new RuntimeException("String_Node_Str" + "String_Node_Str",e);
        }
      }
synchronized (PostgresFilesToExtract.class) {
        final File outputFile=path.toFile();
        if (entry.isDirectory()) {
          if (!outputFile.exists()) {
            Files.createDir(outputFile);
          }
        }
 else {
          if (!outputFile.exists()) {
            if (isSymLink) {
              try {
                final Path target=path.getParent().resolve(Paths.get(linkName));
                java.nio.file.Files.createSymbolicLink(outputFile.toPath(),target);
              }
 catch (              Exception e) {
                LOGGER.trace("String_Node_Str",e);
              }
            }
 else {
              Files.write(source,outputFile);
            }
          }
          if (entry.getName().matches(EXECUTABLE_PATTERN)) {
            outputFile.setExecutable(true);
          }
        }
        return outputFile;
      }
    }
    @Override public FileType type(){
      for (      FileSet.Entry matchingEntry : fileSet.entries()) {
        if (matchingEntry.matchingPattern().matcher(path.toString()).matches()) {
          return matchingEntry.type();
        }
      }
      return FileType.Library;
    }
  }
;
}

Fixed version (ground truth):
/** 
 * This is actually the very dirty hack method to adopt the Flapdoodle's API to the compatible way to extract and run TODO: hacky method. Should be considered for complete rewriting //NOSONAR
 */
@Override public IExtractionMatch find(final IArchiveEntry entry){
  if (this.extractBasePath == null) {
    return null;
  }
  if (entry.getName().matches(SKIP_PATTERN)) {
    return null;
  }
  final Path path=Paths.get(this.extractBasePath,entry.getName());
  return new IExtractionMatch(){
    @Override public File write(    InputStream source,    long size) throws IOException {
      boolean isSymLink=false;
      String linkName="String_Node_Str";
      if (entry instanceof CommonsArchiveEntryAdapter) {
        try {
          Field archiveEntryField=CommonsArchiveEntryAdapter.class.getDeclaredField("String_Node_Str");
          archiveEntryField.setAccessible(true);
          ArchiveEntry archiveEntry=(ArchiveEntry)archiveEntryField.get(entry);
          if (archiveEntry instanceof TarArchiveEntry && (isSymLink=((TarArchiveEntry)archiveEntry).isSymbolicLink())) {
            linkName=((TarArchiveEntry)archiveEntry).getLinkName();
          }
          archiveEntry.getSize();
        }
 catch (        NoSuchFieldException|IllegalAccessException e) {
          throw new RuntimeException("String_Node_Str" + "String_Node_Str",e);
        }
      }
synchronized (PostgresFilesToExtract.class) {
        final File outputFile=path.toFile();
        if (entry.isDirectory()) {
          if (!outputFile.exists()) {
            Files.createDir(outputFile);
          }
        }
 else {
          if (!outputFile.exists()) {
            if (isSymLink) {
              try {
                final Path target=path.getParent().resolve(Paths.get(linkName));
                java.nio.file.Files.createSymbolicLink(outputFile.toPath(),target);
              }
 catch (              Exception e) {
                LOGGER.trace("String_Node_Str",e);
              }
            }
 else {
              Files.write(source,outputFile);
            }
          }
          if (entry.getName().matches(EXECUTABLE_PATTERN)) {
            outputFile.setExecutable(true);
          }
        }
        return outputFile;
      }
    }
    @Override public FileType type(){
      for (      FileSet.Entry matchingEntry : fileSet.entries()) {
        if (matchingEntry.matchingPattern().matcher(path.toString()).matches()) {
          return matchingEntry.type();
        }
      }
      return FileType.Library;
    }
  }
;
}