[ https://issues.apache.org/jira/browse/COMPRESS-505?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17050990#comment-17050990 ]
Peter Alfred Lee commented on COMPRESS-505: ------------------------------------------- This is a problem caused by the random access of 7z(which was published by me). I'm working on this. I'll push a PR on github and update this issue. > 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)