1

Closed

Creating a split archive does not close intermediate streams

description

ver 1.9.1.5
After creating a split archive, you will sometimes get errors when the application continues to manipulate/use additional split zip archives.
 
The problem is that some intermediate files used in creating the split zip archive do not call .Close() So the files are left "open" and additional zip manipulation can generate a "file already in use" error.
 
Proposed fix: in ZipSegmentedStream.cs approx line 103 should be modified to check for a non-null _innerStream and .Close() it before creating a new one. (this is similar in concept to what is done in the _SetReadStream() and _SetWriteStream() methods.
example replacement code:
    private void _SetUpdateStream()
    {
        // bug fix
        if (_innerStream != null)
        {
            _innerStream.Close();
        }
        _innerStream = new FileStream(CurrentName, FileMode.Open);
    }
Closed Jun 15, 2011 at 8:05 PM by Cheeso
this is fixed in changeset 79174. The first binary to get this fix is v1.9.1.6.

comments