{
  "WorkItem": {
    "AffectedComponent": {
      "Name": "",
      "DisplayName": ""
    },
    "ClosedComment": "",
    "ClosedDate": null,
    "CommentCount": 0,
    "Custom": null,
    "Description": "Version is 1.9.1.8\n\nWhen \n- using the constructor ZipOutputStream(String fileName) to create a ZIP file on a removable device (in my case: USB)\n- removing the drive on which the stream is being created while the stream is open and written to\n- calling Close() on the zip stream\n\nthe underlying FileStream object that is internally created by the ZipOutputStream throws an IOException in the garbage collector thread.\n\nThe problem does not occur if I use ZipOutputStream(Stream) and call Close() on the target stream before the GC tries to.\n\nThe difference between the two approaches is that when using ZipOutputStream(String fileName), calling Close first calls FlushWrite on the target FileStream before Close. FlushWrite fails with an exception, so Close is never called on the FileStream, meaning that the GC will try to close that FileStream later, which it can't (IOException) because the drive was removed before.",
    "LastUpdatedDate": "2016-04-07T00:16:44.133-07:00",
    "PlannedForRelease": "",
    "ReleaseVisibleToPublic": false,
    "Priority": {
      "Name": "Unassigned",
      "Severity": 0,
      "Id": 0
    },
    "ProjectName": "DotNetZip",
    "ReportedDate": "2016-04-07T00:16:44.133-07:00",
    "Status": {
      "Name": "Proposed",
      "Id": 1
    },
    "ReasonClosed": {
      "Name": "Unassigned"
    },
    "Summary": "ZipOutputStream causes exception in GC thread",
    "Type": {
      "Name": "Unassigned",
      "Id": 5
    },
    "VoteCount": 1,
    "Id": 17641
  },
  "FileAttachments": [],
  "Comments": []
}