{
  "WorkItem": {
    "AffectedComponent": {
      "Name": "",
      "DisplayName": ""
    },
    "ClosedComment": "not a bug",
    "ClosedDate": "2009-11-23T14:52:24.82-08:00",
    "CommentCount": 0,
    "Custom": null,
    "Description": "Just wanted say your recent changes to the Adler32 algorithm now causes incorrect checksums to be generated for certain data. For example the attached data file has an adler of 3703163925 (0xDCB9CC15) which has been confirmed by various other tools. However, your Adler implementation gives the result of 1715522581 (0x6640CC15). Here's how I'm using it:\n \n// declared outside the data reading loop\nuint Adler32 = 1;\n \nfor (...)\n{\n \n   // update the adler for the current window\n   Adler32 = Adler.Adler32(Adler32, targetData, 0, targetLength);\n \n}",
    "LastUpdatedDate": "2013-05-16T05:31:58.723-07:00",
    "PlannedForRelease": "",
    "ReleaseVisibleToPublic": false,
    "Priority": {
      "Name": "Low",
      "Severity": 50,
      "Id": 1
    },
    "ProjectName": "DotNetZip",
    "ReportedDate": "2009-11-21T02:21:27.41-08:00",
    "Status": {
      "Name": "Closed",
      "Id": 4
    },
    "ReasonClosed": {
      "Name": "Unassigned"
    },
    "Summary": "Adler32 fails on file",
    "Type": {
      "Name": "Issue",
      "Id": 3
    },
    "VoteCount": 1,
    "Id": 9223
  },
  "FileAttachments": [
    {
      "FileId": 2433,
      "FileName": "data",
      "DownloadUrl": ".\\2433"
    }
  ],
  "Comments": [
    {
      "Message": "Hi Wyatt.  2 things.  First, I don't see the problem you've described.  I get 0xDCB9CC15 , using this code:\r\n\r\n    public void Run()\r\n    {\r\n        string filename = \"wyatt.data\";\r\n        uint adler = 1;\r\n        int n;\r\n        byte[]  buffer = new byte[2048];\r\n        using (var fs = File.OpenRead(filename))\r\n        {\r\n            while((n=fs.Read(buffer,0,buffer.Length))>0)\r\n            {\r\n                adler = Adler.Adler32(adler, buffer, 0, n);\r\n            }\r\n        }\r\n\r\n        System.Console.WriteLine(\"adler = 0x{0:X8}\", adler);\r\n    }\r\n\r\nMaybe there's an error in your code. \r\n\r\nSecond, the Adler checksum is not a public interface on DotNetZip.  It's not documented for use externally.  It's used only in GZIP compression.  Is your GZIP compression failing to decompress?    or something?    I'd be happy to look at it, if you're having a problem in one of the documented interfaces. \r\n\r\n\r\n",
      "PostedDate": "2009-11-21T03:20:17.64-08:00",
      "Id": -2147483648
    },
    {
      "Message": "2nd point first - I'm no longer using your adler32 implementation, so it's no longer a problem for me. As far as reproducing the problem, try this code:\r\n\r\nuint adler = 1;\r\nbyte[] completeDataBlock = new byte[3944863];\r\n\r\n//TODO: read in complete data\r\n\r\nadler = Adler.Adler32(adler, completeDataBlock , 0, 3944863);\r\n\r\n// adler will equal 0x6640CC15. - should be 0xDCB9CC15\r\n\r\nThis is no longer a critical issue for me, I just thought you'd like to know there's something screwy with the way your Adler32 is implemented. Maybe your usage never brings about this behavior.",
      "PostedDate": "2009-11-21T18:33:00.277-08:00",
      "Id": -2147483648
    },
    {
      "Message": "",
      "PostedDate": "2009-11-23T14:52:24.82-08:00",
      "Id": -2147483648
    },
    {
      "Message": "",
      "PostedDate": "2013-02-21T18:43:47.253-08:00",
      "Id": -2147483648
    },
    {
      "Message": "",
      "PostedDate": "2013-05-16T05:31:58.723-07:00",
      "Id": -2147483648
    }
  ]
}