You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Steven Fontaine (Jira)" <ji...@apache.org> on 2020/02/25 20:07:00 UTC

[jira] [Issue Comment Deleted] (COMPRESS-505) Multiple Reads of One SevenZArchiveEntry Fails

     [ https://issues.apache.org/jira/browse/COMPRESS-505?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Steven Fontaine updated COMPRESS-505:
-------------------------------------
    Comment: was deleted

(was: Oops, sorry, I submitted too soon. Give me a couple minutes to finish typing up this problem)

> Multiple Reads of One SevenZArchiveEntry Fails
> ----------------------------------------------
>
>                 Key: COMPRESS-505
>                 URL: https://issues.apache.org/jira/browse/COMPRESS-505
>             Project: Commons Compress
>          Issue Type: Bug
>    Affects Versions: 1.20
>            Reporter: Steven Fontaine
>            Priority: Minor
>         Attachments: CC0 Images.7z
>
>
> I've run into a bug which occurs when attempting to read the same SevenZArchiveEntry stream multiple times. The following code illustrates the problem.
> {code:java}
> File archive = new File("CC0 Images.7z");
> char[] password = "password".toCharArray();
> try (SevenZFile f = new SevenZFile(archive, password))
> {
>   SevenZArchiveEntry entry = StreamSupport.stream(f.getEntries().spliterator(), false)
>     .filter(e -> !"alberta-amazing-attraction-banff-417074.jpg".equals(e.getName()))
>     .findFirst().orElseGet(null);
>   assert entry != null;
>   for (int i = 0; i < 100; i++)
>   {
>     InputStream is = f.getInputStream(entry);
>     BufferedImage img = ImageIO.read(is);
>     assert img != null;
>     System.out.println("Succeeded " + (i + 1) + " times");
>   }
> }{code}
> Below is the output I receive on version 1.20
> {code:java}
> Succeeded 1 times
> Succeeded 2 times
> Exception in thread "main" java.io.IOException: Checksum verification failed
>     at org.apache.commons.compress.utils.ChecksumVerifyingInputStream.read(ChecksumVerifyingInputStream.java:61)
>     at org.apache.commons.compress.utils.ChecksumVerifyingInputStream.skip(ChecksumVerifyingInputStream.java:102)
>     at org.apache.commons.compress.utils.IOUtils.skip(IOUtils.java:113)
>     at org.apache.commons.compress.archivers.sevenz.SevenZFile.getCurrentStream(SevenZFile.java:1318)
>     at org.apache.commons.compress.archivers.sevenz.SevenZFile.getInputStream(SevenZFile.java:1354)
>     at org.abitoff.dmav.Test.main(Test.java:11)
> {code}
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)