Почему не бросает исключение? Идет же проверка на наличие.
if (!Files.exists(zipFile)) throw new WrongZipFileException();
а по второму, есть подозрения, что намудрил здесь
Path path = zipFile.relativize(Paths.get(entry.getName()));