Peter Alfred Lee created COMPRESS-503:
-----------------------------------------

             Summary: "open when actually needed" for 
MultiReadOnlySeekableByteChannel
                 Key: COMPRESS-503
                 URL: https://issues.apache.org/jira/browse/COMPRESS-503
             Project: Commons Compress
          Issue Type: Improvement
            Reporter: Peter Alfred Lee


When I was adding zip64 support for split zip, I encountered a problem :
When adding testcases in {{Zip64SupportIT}}, I created a split zip with 10,000+ 
split segments. Then I found that I was unable to unzip it because there would 
be too many open files when extracting it. We can oepn the files when actually 
needed and therefore we can successfully extract such split zips with great 
amount of segments.

I have set a threshold of 20 in {{MultiReadOnlySeekableByteChannel}}. The "open 
when actually needed" procedure will only work when the number of split 
segments is greater than the threshold.

 

This may be used in ZipArchiveInputStream and ZipFile cause 
{{MultiReadOnlySeekableByteChannel}} is used in them.

 

Actually this is a pretty rare case cause most split zips would not have too 
many segments. Just thinking about a split zip with 1,000+ segments - it must 
be a nightmare. So I'm not sure if this is needed for 
{{MultiReadOnlySeekableByteChannel.WDYT?}}



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

Reply via email to