Метод createZip в классе ZipFileManager должен быть доработан следуя описанию в задании. рекомендация от ментора: Если в метод createZip(Path source) передается не файл и не папка, то нужно кинуть исключение PathIsNotFoundException. Не могу никак понять что не так с этим пунктом. Подскажите пожалуйста
package com.javarush.task.task31.task3110;

import com.javarush.task.task31.task3110.exception.PathIsNotFoundException;

import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.nio.file.Files;
import java.nio.file.Path;
import java.util.List;
import java.util.zip.ZipEntry;
import java.util.zip.ZipOutputStream;

/**
 * Created by agcheb on 29.08.17.
 */
public class ZipFileManager {
    private Path zipFile;

    public ZipFileManager(Path zipFile) {
        this.zipFile = zipFile;
    }
    public void createZip(Path source) {

        if(Files.notExists(zipFile.getParent())) try {
            Files.createDirectory(zipFile.getParent());
        } catch (IOException e) {
            e.printStackTrace();
        }

        try (ZipOutputStream out = new ZipOutputStream(Files.newOutputStream(zipFile));){
            if (Files.isRegularFile(source)) {
                addNewZipEntry(out,source.getParent(),source.getFileName());
            }
            else if (Files.isDirectory(source)){
                FileManager fm = new FileManager(source);
                List<Path> fileNames = fm.getFileList();
                for (Path p:fileNames) {
                    addNewZipEntry(out,source,p);
                }
            }
            else  throw new PathIsNotFoundException();
        }
        catch (PathIsNotFoundException e) {
            e.printStackTrace();
        } catch (Exception e) {
            e.printStackTrace();
        }
    }

    private void addNewZipEntry(ZipOutputStream zipOutputStream, Path filePath, Path fileName) throws Exception{
        try (InputStream in = Files.newInputStream(filePath.resolve(fileName))){
            ZipEntry zipEntry = new ZipEntry(fileName.toString());
            zipOutputStream.putNextEntry(zipEntry);
            copyData(in,zipOutputStream);
            zipOutputStream.close();
        }
    }
    private void copyData(InputStream in, OutputStream out) throws Exception{
        while (in.available()>0){
            out.write(in.read());
        }
    }
}