You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@commons.apache.org by "Dawid Weiss (JIRA)" <ji...@apache.org> on 2016/02/23 16:58:18 UTC
[jira] [Created] (COMPRESS-339) deprecate get() methods on
SevenZFile and add getNextEntry().getInputStream() instead
Dawid Weiss created COMPRESS-339:
------------------------------------
Summary: deprecate get() methods on SevenZFile and add getNextEntry().getInputStream() instead
Key: COMPRESS-339
URL: https://issues.apache.org/jira/browse/COMPRESS-339
Project: Commons Compress
Issue Type: Improvement
Reporter: Dawid Weiss
Priority: Minor
This is a conclusion from me looking at {{SevenZFile}} -- its API is currently very odd; shaped much like InputStream (three flavors of get method), SevenZFile doesn't actually implement InputStream so it needs to be wrapped in awkward custom code. This can result in very realistic performance degradation when somebody calls get() (a single byte at a time) repeatedly over and over again.
I think it would make a lot of sense to deprecate and eventually remove those methods from SevenZFile, replacing them with a method getInputStream() on an SevenZArchiveEntry. This method would return a low-level stream leading to the entry's decoded data (possibly buffered to decode in sensible blocks). This would also open up the possibility of returning thread-safe SevenZArchiveEntry instances so that multiple entries could be decompressed in parallel, for example.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)