Ошибка ZipInputStream Stream Closed на nextEtnry/closeEntry

Я пытаюсь загрузить 1 zip-файл и распаковать его в корзину AWS S3. Я получаю сообщение об ошибке "Поток закрыт":

java.io.IOException: Stream closed
at java.base/java.util.zip.ZipInputStream.ensureOpen(Unknown Source)
at java.base/java.util.zip.ZipInputStream.getNextEntry(Unknown Source)
at com.abc.Handler.extractAndProcessZipFile(Handler.java:115)

Это мой фрагмент кода:

    try {
                ZipInputStream zis = new ZipInputStream(
                        S3ObjectUtils.getS3Object(S3_INBOUND, FILE_PATH + metadata.getObjectKey(), this.amazonS3Client)
                                .getObjectContent());
                ZipEntry entry;
    
                while ((entry = zis.getNextEntry()) != null) { //Stream closed Error here when I comment closeEntry()
                    String fileName = entry.getName();
                    
                    String srcKey = metadata.getObjectKey().replace('+', ' ');
                    srcKey = URLDecoder.decode(FILE_PATH + fileMetadata.getObjectKey(), "UTF-8");
                    
                    // Covert to plain text
                    String mimeType = "text/plain";
                                    
                    ObjectMetadata meta = new ObjectMetadata();
                    meta.setContentLength(entry.getSize());
                    meta.setContentType(mimeType);
                    
                    this.amazonS3Client.putObject(S3_IN, FilenameUtils.getFullPath(srcKey) + fileName, zis, meta);
                    zis.closeEntry(); // Stream Closed error here
                }
                zis.close();
} catch (IOException e) {
            e.printStackTrace();
        }

person Harry    schedule 29.10.2020    source источник


Ответы (1)


Исправлено удалением zis.closeEntry и изменением while на if

person Harry    schedule 29.10.2020