)]}'
{
  "log": [
    {
      "commit": "7b379944efe1f63511831f5555782310a4f3296d",
      "tree": "1339e49c52ea45d6a4d415ad763a79f6b8c28228",
      "parents": [
        "26681fbdb77f6dfaf2f2613d4ad860a224e84b71"
      ],
      "author": {
        "name": "Marco Schroeter",
        "email": "mschroeter@biodataanalysis.de",
        "time": "Thu Mar 12 10:30:49 2020 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Jun 15 22:32:43 2020 +0200"
      },
      "message": "Thrift.csproj: Stop writing AssemblyAttributes.cs to /tmp\nClient: netstd\nPatch: Marco Schroeter\n\nThis closes #2167\n"
    },
    {
      "commit": "26681fbdb77f6dfaf2f2613d4ad860a224e84b71",
      "tree": "b742ea0959bd5e90e1748323a870291ef8ad8e9f",
      "parents": [
        "3f78c70bbba82c733b1545d39eb5b489ac384e4c"
      ],
      "author": {
        "name": "zeshuai007",
        "email": "51382517@qq.com",
        "time": "Wed Jun 03 17:24:38 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Jun 14 14:17:11 2020 +0200"
      },
      "message": "THRIFT-5225: Use nullptr instead of NULL\nPatch: Zezeng Wang\n\nThis closes #2168\n"
    },
    {
      "commit": "dabfea2f98a9ab605748dea55b1efbb1932b361f",
      "tree": "ac141f9f985ad0aa540b9b6111b8c9ffcfb39728",
      "parents": [
        "cfbb905034c928f073639af00b30d74951744b61"
      ],
      "author": {
        "name": "max ulidtko",
        "email": "ulidtko@gmail.com",
        "time": "Tue May 19 21:44:46 2020 +0300"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Jun 09 23:09:25 2020 +0200"
      },
      "message": "THRIFT-5186: Rewrite address resolution in T{Nonblocking,}ServerSocket\nClient: cpp\nPatch: Max Ulidtko\n\nThis closes #2151\n"
    },
    {
      "commit": "cfbb905034c928f073639af00b30d74951744b61",
      "tree": "39e689e4941568f5b05892fcfbba02c0573eddeb",
      "parents": [
        "e382275bad2bd11fb5df33dd7db520fd7596f4ac"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Tue Jun 09 13:07:38 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Jun 09 21:07:38 2020 +0100"
      },
      "message": "THRIFT-5214: Reset read deadline in socketConn\n\nClient: go\r\n\r\nThis is a slightly different, and less error-prone approach from the\r\nfix in e382275b.\r\n\r\nThe previous approach relies on passing the set socket timeout into the\r\nunderlying socketConn from TSocket and TSSLSocket. But since we have so\r\nmany different constructors for TSocket and TSSLSocket, some makes the\r\ninitial connection in the constructor and some does not, there are so\r\nmany different places we would need to remember to pass socketTimeout\r\ninto socketConn. In the future, when we add another constructor to them,\r\nwe could either forget to pass the socket timeout into socketConn, or\r\ntry to pass it while we haven\u0027t constructed socketConn yet (which will\r\ncause panic), both are bad.\r\n\r\nIn this approach we just clear the read deadline in the connectivity\r\ncheck read. Because that\u0027s a non-blocking read, it would work just fine\r\nwithout a read deadline."
    },
    {
      "commit": "e382275bad2bd11fb5df33dd7db520fd7596f4ac",
      "tree": "274cea670a8b8388f62c97b25bd18b5be6933fdb",
      "parents": [
        "c9890cb873f127137abd513a7ebdf0186ee8c88c"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Mon Jun 08 06:06:17 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 14:06:17 2020 +0100"
      },
      "message": "THRIFT-5214: Push read deadline in socketConn\n\nClient: go\r\n\r\nWe added socketConn to go library for connectivity check in\r\nhttps://github.com/apache/thrift/pull/2153, but forgot to push read\r\ndeadline on the socket when doing the connectivity checks. This caused\r\nthe issue of large number of connectivity checks to fail with I/O\r\ntimeout errors."
    },
    {
      "commit": "c9890cb873f127137abd513a7ebdf0186ee8c88c",
      "tree": "ba2ffa394398ea56c21f361d873627264a628c60",
      "parents": [
        "9fd134f269ccadd3a77a198d0c27c0a0d7c9c723"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Mon Jun 08 04:32:21 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 12:32:21 2020 +0100"
      },
      "message": "THRIFT-5214: Partial rewrite of TFramedTransport\n\nClient: go\r\n\r\nWhile debugging the issue in THRIFT-5214, I original thought that was a\r\nbug in TFramedTransport implementation, so I took some time scrutinize\r\nthe TFramedTransport code. Although in the end there\u0027s no bug, the\r\ncurrent implementation of TFramedTransport, especially in the Read\r\nfunction, has some weird handling while at frame boundary, which is both\r\nerror-prone and hard to follow (I did found and fixed one bug there in\r\nhttps://github.com/apache/thrift/pull/1810 before).\r\n\r\nThe new implementation reads the whole frame into a buffer, which would\r\nuse slightly more memory, but it follows the pattern of TFramedTransport\r\nimplementation of other languages (e.g. Java), and also the pattern we\r\nhandle frame in THeaderTransport. It also reduced the complexity and\r\nweirdness of the frame boundary handling in Read implementation.\r\n\r\nThis rewrite also removes the print call from library code."
    },
    {
      "commit": "9fd134f269ccadd3a77a198d0c27c0a0d7c9c723",
      "tree": "620a50a1f1bfb4456a9792fed90b285ccfae8719",
      "parents": [
        "0acf23b7cf39922a2eee9b969e4e73989050f0d6"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Mon Jun 08 04:30:14 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Jun 08 12:30:14 2020 +0100"
      },
      "message": "Use io.CopyN to simplify THeaderTransport code\n\nClient: go\r\n\r\nIn THeaderTransport implementation, use io.CopyN instead of\r\nio.Copy+io.LimitReader.\r\n\r\nUnderlying io.CopyN is actually implemented with io.Copy+io.LimitReader\r\n[0], but it also does some extra checks we can take advantage of. It\r\nalso simplifies the code in thrift repo.\r\n\r\n[0]: https://github.com/golang/go/blob/83b181c68bf332ac7948f145f33d128377a09c42/src/io/io.go#L340"
    },
    {
      "commit": "b1628cf8bcbe6c87b117004beb3de6316417739c",
      "tree": "472483bb7d5882a5025f514701eed757e698bab5",
      "parents": [
        "bde5cbc0788b936aff516e2c0527ff950cc9b466"
      ],
      "author": {
        "name": "wangyunjian",
        "email": "wangyunjian@huawei.com",
        "time": "Sun Mar 01 16:27:16 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Jun 04 21:25:58 2020 +0200"
      },
      "message": "THRIFT-5122: Fix memory leak on accept error in thrift_simple_server_serve()\nClient: c_glib\nPatch: wangyunjian\n\nThis closes #2039\n\nSigned-off-by: wangyunjian \u003cwangyunjian@huawei.com\u003e\n"
    },
    {
      "commit": "bde5cbc0788b936aff516e2c0527ff950cc9b466",
      "tree": "dbd75297c718a7ebbf5b36f4dd50f4a73c3ae4a3",
      "parents": [
        "eac4d0c79a5fc550fb61bc18f20d3b5aae8f6e7f"
      ],
      "author": {
        "name": "Mario Emmenlauer",
        "email": "mario@emmenlauer.de",
        "time": "Tue Jun 02 11:06:59 2020 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Jun 04 21:18:01 2020 +0200"
      },
      "message": "Added IsOpen() and GetPort() for netstd transports\nClient: netstd\nPatch: Mario Emmenlauer\n\nThis closes #2166\n"
    },
    {
      "commit": "eac4d0c79a5fc550fb61bc18f20d3b5aae8f6e7f",
      "tree": "df1649a839c3b5ad05c5f4105dfc6ea85e988891",
      "parents": [
        "fa770f61e9fd26af6bd6f0f2f4c3f7815523d0d8"
      ],
      "author": {
        "name": "Mario Emmenlauer",
        "email": "mario@emmenlauer.de",
        "time": "Thu Feb 20 17:12:29 2020 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Jun 03 23:10:36 2020 +0200"
      },
      "message": "THRIFT-5114 Simplified reallocation of TMemoryBuffer\nClient: cpp\nPatch: Mario Emmenlauer\n\nThis closes #2030\n"
    },
    {
      "commit": "36bf0a491e900f09b894b54dbe037262acec73e5",
      "tree": "1c12389538b52ace31728cfdbe91e71fbfae2b72",
      "parents": [
        "b559359b0b875cd7d4919f3120a0089f6d74e09a"
      ],
      "author": {
        "name": "Nathan Breakwell",
        "email": "nathan.breakwell@sophos.com",
        "time": "Tue Mar 03 12:20:13 2020 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat May 30 14:59:48 2020 +0200"
      },
      "message": "Make named pipe security configurable by security descriptor string\nClient: cpp\nPatch: Nathan Breakwell\n\nThis closes #2083\n"
    },
    {
      "commit": "affea7bee468d4abc751fbbd1c2692ba5c7ac0e4",
      "tree": "50a4c17061522db262525a4c5f5d105a51716b41",
      "parents": [
        "05023e81b264f249affdacad4ebae788b3ada85c"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri May 22 17:28:30 2020 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed May 27 01:32:14 2020 +0200"
      },
      "message": "THRIFT-5216 generate DeepCopy methods\nClient: netstd\nPatch: Jens Geyer\n\nThis closes #2155\n"
    },
    {
      "commit": "05023e81b264f249affdacad4ebae788b3ada85c",
      "tree": "4fba9d044a814649779bed8c61b87cbb871b6080",
      "parents": [
        "d28f39fbc7bb9607a150544dd8f73f027c898c9b"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Tue May 26 15:31:20 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 26 23:31:20 2020 +0100"
      },
      "message": "THRIFT-5214: Connectivity check on go\u0027s TSocket\n\nClient: go\r\n\r\nImplement connectivity check on go\u0027s TSocket and TSSLSocket for\r\nnon-Windows systems.\r\n\r\nThe implementation is inspired by\r\nhttps://github.blog/2020-05-20-three-bugs-in-the-go-mysql-driver/"
    },
    {
      "commit": "d28f39fbc7bb9607a150544dd8f73f027c898c9b",
      "tree": "d51b55f7568fc0c78eb992be4bd48f1226841eb7",
      "parents": [
        "0198542201a6bd7e09ebd5a8b1ac14d3cb2b2bb7"
      ],
      "author": {
        "name": "Eric Chen",
        "email": "taiyang.chen@gmail.com",
        "time": "Tue May 19 02:48:43 2020 -0700"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue May 26 21:57:13 2020 +0200"
      },
      "message": "THRIFT-5129: Fix swift TSocketTransport on Mac\nClient: Swift\nPatch: Eric Chen\n\nThis closes #2149\n"
    },
    {
      "commit": "0198542201a6bd7e09ebd5a8b1ac14d3cb2b2bb7",
      "tree": "5a4723f611c40488dea543bcb7762fda0a14a20d",
      "parents": [
        "797fe252e0df18a24aa025d00d1d53c288ef2d4f"
      ],
      "author": {
        "name": "Eric Chen",
        "email": "taiyang.chen@gmail.com",
        "time": "Fri May 22 22:05:11 2020 -0700"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue May 26 21:52:05 2020 +0200"
      },
      "message": "THRIFT-5195: Handle Thrift union type sending for Swift\nClient: Swift\nPatch: Eric Chen\n\nThis closes #2154\n"
    },
    {
      "commit": "797fe252e0df18a24aa025d00d1d53c288ef2d4f",
      "tree": "ed80962526773a1a4392253dedc3465a3a605040",
      "parents": [
        "e6d7d13c35f5c9fe57889d7e77b0ba63910b1052"
      ],
      "author": {
        "name": "zeshuai007",
        "email": "51382517@qq.com",
        "time": "Wed May 20 15:20:07 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue May 26 21:46:16 2020 +0200"
      },
      "message": "Supplement TNonblockingServer.py testcase\nClient: py\nPatch: Zezeng Wang\n\nThis closes #2150\n"
    },
    {
      "commit": "e6d7d13c35f5c9fe57889d7e77b0ba63910b1052",
      "tree": "f0cb43da0edf1822cb8852db587adc746475a40b",
      "parents": [
        "eb8e8437a59fe7c0ca522be53a69f4e34bedc4f1"
      ],
      "author": {
        "name": "James Lacey",
        "email": "jamlacey@gmail.com",
        "time": "Fri May 22 08:46:26 2020 -0700"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue May 26 21:35:19 2020 +0200"
      },
      "message": "THRIFT-5215: Remove portable_endian.h\nClient: cpp\nPatch: James Lacey\n\nThis closes #2152\n"
    },
    {
      "commit": "dd34c5281344d0f1c10b2f7daddfb032bc6e5cb3",
      "tree": "ada9361224009ed62d359675a57b959e916d0be5",
      "parents": [
        "f8103c69eaaa23fe7fff4d8413240063b9ec56d2"
      ],
      "author": {
        "name": "rel1ve",
        "email": "rel1ve@hotmail.com",
        "time": "Wed Mar 11 22:17:57 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu May 21 12:32:27 2020 +0200"
      },
      "message": "When I use --with-zlib args for cross-compiling, it failed without \"$(ZLIB_LDFLAGS)\".\nbuild system\nPatch: rel1ve \u003crel1ve@hotmail.com\u003e\n\nThis closes #2056\n"
    },
    {
      "commit": "f8103c69eaaa23fe7fff4d8413240063b9ec56d2",
      "tree": "2ce00fa0913ed94f720b30d132c8949a7afdb7af",
      "parents": [
        "7de1f5d7f394b49624e7278937d7ff665bfc642a"
      ],
      "author": {
        "name": "David Mollitor",
        "email": "dmollitor@apache.org",
        "time": "Wed May 20 09:26:31 2020 -0400"
      },
      "committer": {
        "name": "David Mollitor",
        "email": "dmollitor@apache.org",
        "time": "Wed May 20 09:26:36 2020 -0400"
      },
      "message": "THRIFT-5202: TNonblockingMultiFetchClient Use SLF4J Parameterized Logging\nClient: java\nPatch: David Mollitor\n\nThis closes #2137\n\nUse SLF4J API to log full Exception details.  Use SLF4J parameterized logging instead of String format.\n"
    },
    {
      "commit": "a082592d439d6aa578507ff52198038e5e08006d",
      "tree": "d1e033c63aa8ea7d3d57a870a19161b90f5e3ceb",
      "parents": [
        "1edf32926d980573d23a292ae72e96db92ac43c1"
      ],
      "author": {
        "name": "Jano Svitok",
        "email": "jsv@whitestein.com",
        "time": "Fri Mar 06 08:44:10 2020 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed May 20 00:39:49 2020 +0200"
      },
      "message": "THRIFT-5128 Swift TFramedTransport does not work using present code\nClient: Swift\nPatch: Jano Svitok\n\nThis closes #2047\n"
    },
    {
      "commit": "1edf32926d980573d23a292ae72e96db92ac43c1",
      "tree": "de56b74219dc76ec71c2174448f5086b845ecc1b",
      "parents": [
        "506e311c381677928ab68fd62e441deb24f2f7c3"
      ],
      "author": {
        "name": "Jano Svitok",
        "email": "jsv@whitestein.com",
        "time": "Fri Feb 28 12:44:59 2020 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed May 20 00:28:58 2020 +0200"
      },
      "message": "THRIFT-5125: Swift server does not work using present code\nClient: Swift\nPatch: Jano Svitok\n\nThis closes #2038\n"
    },
    {
      "commit": "1ab096c80af1a2bca73aef78675de914a1834fd9",
      "tree": "e560d0e5f2fd2f76bee7c94e9e3d16789c34ab31",
      "parents": [
        "dce229911cd61a441961df2219623fb166b5d139"
      ],
      "author": {
        "name": "penenin",
        "email": "penenin@users.noreply.github.com",
        "time": "Mon May 18 12:27:31 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon May 18 20:27:31 2020 +0100"
      },
      "message": "THRIFT-5185: Support for using WebSockets as a server transport\n\nClient: cpp"
    },
    {
      "commit": "dce229911cd61a441961df2219623fb166b5d139",
      "tree": "c96204f51d0147f4abccd14fe1691280d35698ce",
      "parents": [
        "261de348fe0e83ca2f4c7398f2f03ff28d3eb81e"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat May 16 23:02:27 2020 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun May 17 22:34:10 2020 +0200"
      },
      "message": "THRIFT-5210 further refactoring and performance optimizations\nClient: netstd\nPatch: Jens Geyer\n\nThis closes #2146\n"
    },
    {
      "commit": "261de348fe0e83ca2f4c7398f2f03ff28d3eb81e",
      "tree": "b18ac20125391f2023bb5ee5c5b5ce8d708d1ccc",
      "parents": [
        "53239655b7f48e741d9112ae8ca739c622268d7c"
      ],
      "author": {
        "name": "Philipp Hausmann",
        "email": "philipp.hausmann@tiko.energy",
        "time": "Wed Apr 22 16:20:46 2020 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun May 17 14:44:59 2020 +0200"
      },
      "message": "THRIFT-5211 Handle incomplete reads correctly\nClient: Haskell\nPatch: Philipp Hausmann\n\nThis closes #2108\n\nThe read functions for handles promise to return *up* to the requested\nnumber of bytes. This means in case we read less bytes, we should try\nagain to read some more bytes.\n"
    },
    {
      "commit": "ad3e440955c56627da01eb7149a19afe67ce2954",
      "tree": "792d7b4d5c1c46f24422dd0ba65a23c69ce71418",
      "parents": [
        "be3f7321cf0b7cff5d178ac09da02fc68dac6bd5"
      ],
      "author": {
        "name": "Mario Emmenlauer",
        "email": "mario@emmenlauer.de",
        "time": "Tue Apr 07 22:17:19 2020 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri May 15 21:59:15 2020 +0200"
      },
      "message": "TSocketTransport.cs: Fixed a problem with initializing IPAddress\nClient: netstd\nPatch: Mario Emmenlauer\n\nThis closes #2140\n"
    },
    {
      "commit": "be3f7321cf0b7cff5d178ac09da02fc68dac6bd5",
      "tree": "24e62ed62f965d23815c9cbb18cf47c5d6168248",
      "parents": [
        "26e6c84cde490a22d39c43ba3903dd94bbb8497f"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Thu May 14 00:28:44 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 14 08:28:44 2020 +0100"
      },
      "message": "Make TTransportException unwrappable on Go 1.13+\n\nClient: go\r\n\r\nGo 1.13 introduced a new, optional, hidden interface for error\r\nimplementations to make them unwrappable [1]. We currently already kind\r\nof support that (via TTransportException.Err), so just add a new\r\nfunction to make it Go 1.13+ compatible.\r\n\r\n[1] https://pkg.go.dev/errors@go1.13?tab\u003ddoc#pkg-overview"
    },
    {
      "commit": "26e6c84cde490a22d39c43ba3903dd94bbb8497f",
      "tree": "7e0c022937406cdedd6ab75100cba3a7d51b99a3",
      "parents": [
        "64ac65ea7e0763c32d6dca988a2c779f89bece84"
      ],
      "author": {
        "name": "zeshuai007",
        "email": "51382517@qq.com",
        "time": "Wed May 06 14:37:43 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed May 13 23:56:08 2020 +0200"
      },
      "message": "Add testcase for compactprotocol(python)\nClient: py\nPatch: zeshuai007 \u003c51382517@qq.com\u003e\n\nThis closes #2129\n"
    },
    {
      "commit": "64ac65ea7e0763c32d6dca988a2c779f89bece84",
      "tree": "15dc223135100c6ec9dc2f64e298cba3fde74ead",
      "parents": [
        "55680af8fa075868abd7830f9e52008585de4adc"
      ],
      "author": {
        "name": "Tim Heilig",
        "email": "theilig@box.com",
        "time": "Thu May 07 23:19:16 2020 -0700"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed May 13 23:49:24 2020 +0200"
      },
      "message": "THRIFT-5199: Fix infinite loop writing to closed TSocket in PHP\nClient: php\nPatch: Tim Heilig\n\nThis closes #2134\n"
    },
    {
      "commit": "47e9d8f13e5194e0f69cea3942c00b8e3ea6be9f",
      "tree": "85ec1557d510407851979c527b6a5df8dbd88aad",
      "parents": [
        "9b9567b23378c821b460cfe54b70b9d189bf194d"
      ],
      "author": {
        "name": "David Mollitor",
        "email": "dmollitor@apache.org",
        "time": "Mon May 11 10:26:37 2020 -0400"
      },
      "committer": {
        "name": "David Mollitor",
        "email": "dmollitor@apache.org",
        "time": "Mon May 11 10:30:17 2020 -0400"
      },
      "message": "THRIFT-5197: TSSLTransportFactory Do Not Wrap NOT_OPEN Exception Type for Client\nClient: java\nPatch: David Mollitor\n\nThis closes #2131\n\nThe class TSSLTransportFactory is wrapping TTransportExceptions, which have a particular \"type,\"\nin a type-less TTransportException and therefore the Exception type is lost.\n"
    },
    {
      "commit": "9b9567b23378c821b460cfe54b70b9d189bf194d",
      "tree": "f5403a348992e88e8d5240b4fbb88f77dc281f08",
      "parents": [
        "bbc5e06a2e36d788b095fb37a52c90fc4d54b211"
      ],
      "author": {
        "name": "max ulidtko",
        "email": "ulidtko@gmail.com",
        "time": "Mon Apr 27 16:04:27 2020 +0300"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri May 08 09:23:47 2020 +0200"
      },
      "message": "THRIFT-5186: Don\u0027t pass AI_ADDRCONFIG to getaddrinfo()\nClient: cpp,pas,py\nPatch: Max Ulidtko\n\nThis closes #2124\n\nIf a host doesn\u0027t have assigned IPv4 or IPv6 addresses, thrift communication\nover localhost-only is impossible due to thrift library bug. It happens\nwhen making getaddrinfo syscall with AI_ADDRCONFIG flag.\n\nFrom man getaddrinfo(3):\nIf  hints.ai_flags  includes  the  AI_ADDRCONFIG  flag,  then  IPv4  addresses\nare returned in the list pointed to by res only if the local system has at least\none IPv4 address configured, and IPv6 addresses are returned only if the local\nsystem has at least one IPv6 address configured.  The loopback address is not\nconsidered for this case as valid as a configured address.\n\nUpstream bug with AI_ADDRCONFIG ai_flags was fixed for cpp library and win32\nplatform only. See https://issues.apache.org/jira/browse/THRIFT-2539\n\nPatch based on Thrift 0.13.0, commit cecee50308fc7e6f77f55b3fd906c1c6c471fa2f.\n"
    },
    {
      "commit": "bbc5e06a2e36d788b095fb37a52c90fc4d54b211",
      "tree": "844251f7c5958b6629e48d9b3298934fcc70d628",
      "parents": [
        "abc2ec60964538558fd99f72a4d4c16820e8bfb4"
      ],
      "author": {
        "name": "zeshuai007",
        "email": "51382517@qq.com",
        "time": "Thu May 07 17:10:32 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri May 08 09:18:46 2020 +0200"
      },
      "message": "Supplement TZlibTransport.py testcase\nClient: py\nPatch: zeshuai007 \u003c51382517@qq.com\u003e\n\nThis closes #2132\n"
    },
    {
      "commit": "0c173bf9e02ee218ee7427aa0521845f674a3dd3",
      "tree": "a0d1b165a5ca116907acf4f224c08b7b1558ba75",
      "parents": [
        "48730688fbf00b03f0dcdf3eb44963ad894bd98e"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Thu Apr 30 23:49:29 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 01 07:49:29 2020 +0100"
      },
      "message": "THRIFT-5164: Small cleanup on example code\n\nClient: go\r\n\r\nGodoc requires at least one other exported type/function to render the\r\nwhole example file in the example, so export\r\nsimpleProcessorLoggingMiddleware to make the example of\r\nProcessorMiddleware more helpful.\r\n\r\nCurrently it\u0027s rendered in a not very helpful way:\r\nhttps://pkg.go.dev/github.com/apache/thrift@v0.13.1-0.20200430141240-5cffef964a08/lib/go/thrift?tab\u003ddoc#example-ProcessorMiddleware\r\n\r\nCompare to the client middleware example rendering:\r\nhttps://pkg.go.dev/github.com/apache/thrift@v0.13.1-0.20200430141240-5cffef964a08/lib/go/thrift?tab\u003ddoc#example-ClientMiddleware\r\n\r\nWhile I\u0027m here, also update CHANGES.md to mention ClientMiddleware.\r\n\r\n[skip ci]"
    },
    {
      "commit": "5cffef964a081314df70b76f8650bd17bfdd55e6",
      "tree": "e9c4393372fb97723d8e467b4f8aaf7221509940",
      "parents": [
        "9c757973462d5db9ad7eaabc41d9f1a531ed32d2"
      ],
      "author": {
        "name": "Andrew Boyle",
        "email": "pacejackson@users.noreply.github.com",
        "time": "Thu Apr 30 07:12:40 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 30 15:12:40 2020 +0100"
      },
      "message": "THRIFT-5164: Add middleware framework for Go clients\n\nThis commit adds a simple middleware framework for Go clients.\r\n\r\nIt provides:\r\n\r\n * A `ClientMiddleware` function interface used to define the actual middleware\r\n * `WrapClient`, the function that you use to wrap a `TClient` in a list of middleware\r\n * A helper `WrappedTClient` struct to help with developing middleware\r\n\r\nClient: go"
    },
    {
      "commit": "39381695eb456349b02e68d9167181ae41656b73",
      "tree": "4dd236706cf4e65468cedf3ee3bb144fa6a4abec",
      "parents": [
        "371d92f159d4e518f1de81519b3a9de629ba8970"
      ],
      "author": {
        "name": "Zezeng Wang",
        "email": "51382517@qq.com",
        "time": "Tue Apr 28 14:24:58 2020 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Apr 28 07:24:58 2020 +0100"
      },
      "message": "Add file and memory buffer tests for Python\n\nClient: py"
    },
    {
      "commit": "87462913428f9463c537223f2d23bbbf56cddb43",
      "tree": "6851251b0e51f073901c305933086a140ce2f9bf",
      "parents": [
        "00c039adeb551b297276fcb88131f1cfe82be1cd"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Apr 27 20:36:34 2020 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Apr 27 22:56:21 2020 +0200"
      },
      "message": "THRIFT-5188 Occasional ERROR_INSUFFICIENT_BUFFER at WinHttpQueryHeaders()\nClient: Delphi\nPatch: Jens Geyer\n"
    },
    {
      "commit": "00c039adeb551b297276fcb88131f1cfe82be1cd",
      "tree": "0c47005559fb05eb2663da67e030c6e45c521ecb",
      "parents": [
        "52655cec793a5f2d276942e79de219e299436535"
      ],
      "author": {
        "name": "Andrew Boyle",
        "email": "pacejackson@users.noreply.github.com",
        "time": "Mon Apr 27 11:32:24 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 19:32:24 2020 +0100"
      },
      "message": "THRIFT-5164: Add middleware framework for Go servers\n\nThis commit adds a simple middleware framework for Go servers.\r\n\r\nIt provides:\r\n\r\n * A `ProcessorMiddleware` function interface used to define the actual middleware\r\n * `WrapProcessor`, the function that you use to wrap a `TProcessor` in a list of middleware\r\n * A helper `WrappedTProcessorFunction` struct to help with developing middleware\r\n\r\nThis is a breaking change for any custom implementations of the `TProcessor`\r\ninterface, but does not effect the code generated by compiling Thrift files. It\r\nadds two functions to the interface that are a part of the generated `TProcessor`\r\ncode, but were not defined in the interface explicitly.\r\n"
    },
    {
      "commit": "7c4bdf9914fcba6c89e0f69ae48b9675578f084a",
      "tree": "2309efb79421d20cbb18876736dcac54a5bba1d3",
      "parents": [
        "c3728122d2ddb2e0236b1e08bdb5e24b8baae9dd"
      ],
      "author": {
        "name": "penenin",
        "email": "penenin@users.noreply.github.com",
        "time": "Mon Apr 27 01:11:47 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 09:11:47 2020 +0100"
      },
      "message": "THRIFT-5184: Fix header check for WebSocket connections\n\nWhen establishing a WebSocket connection, Firefox sends Connection: keep-alive, Upgrade instead of just Connection: Upgrade. Check to see if Upgrade is in the header instead of checking to see if it is the entire header value.\r\n\r\nClient: d"
    },
    {
      "commit": "c3728122d2ddb2e0236b1e08bdb5e24b8baae9dd",
      "tree": "d24ac1387ab21c6cccd1b1163d1e5b01b539abb0",
      "parents": [
        "b416ffa72dbcab8ed8a156c95cb8e480ed46a438"
      ],
      "author": {
        "name": "Zezeng Wang",
        "email": "51382517@qq.com",
        "time": "Mon Apr 27 15:48:19 2020 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 08:48:19 2020 +0100"
      },
      "message": "Supplement TBinaryprotocol module testcase\n\nClient: py"
    },
    {
      "commit": "3127e4abd94728a60849c80bed84c2c338067a01",
      "tree": "7ede95703e35103cd1d28df7eb5f1c5f60f93620",
      "parents": [
        "b83ae2cedf8a345142c3b96e9b529a65fe41bc16"
      ],
      "author": {
        "name": "Jano Svitok",
        "email": "jsv@whitestein.com",
        "time": "Mon Apr 27 09:12:42 2020 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Apr 27 08:12:42 2020 +0100"
      },
      "message": "THRIFT-5150: Fix compilation with Swift 5.2\n\n- (OS X and Linux) type \u0027TSet\u003cElement\u003e\u0027 does not conform to protocol \u0027Collection\u0027\r\n- (Linux only) kCFSocketCloseOnInvalidate has Int type\r\n\r\nClient: swift"
    },
    {
      "commit": "b83ae2cedf8a345142c3b96e9b529a65fe41bc16",
      "tree": "5d9b9bdb1a94ac978abe7efc9da6dc9bb043b6c0",
      "parents": [
        "b94c16638555c4efa191092bf0f14ce45c3621b8"
      ],
      "author": {
        "name": "zeshuai007",
        "email": "51382517@qq.com",
        "time": "Fri Apr 24 11:35:55 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Apr 26 13:29:48 2020 +0200"
      },
      "message": "supplementary testcase for TJSONProtocol\nClient: py\nPatch: zeshuai007 \u003c51382517@qq.com\u003e\n\nThis closes #2113\n"
    },
    {
      "commit": "b94c16638555c4efa191092bf0f14ce45c3621b8",
      "tree": "e1610cc87cf52e30f5932756e4026152b467b03d",
      "parents": [
        "2d2df9e89210a768134a185808769566e2cd9aa8"
      ],
      "author": {
        "name": "Dmitry Maluka",
        "email": "dmitrymaluka@gmail.com",
        "time": "Sat Apr 18 13:51:29 2020 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Apr 26 13:25:08 2020 +0200"
      },
      "message": "THRIFT-5177: getaddrinfo() should not be used for Unix sockets\nClient: cpp\nPatch: Dmitry Maluka\n\nThis closes #2102\n"
    },
    {
      "commit": "2d2df9e89210a768134a185808769566e2cd9aa8",
      "tree": "0fcd556b0501227bc5b94ff384deb40989b1ca53",
      "parents": [
        "5ef8e3ec2ab39ea37f8437ae1b7ca1966287a934"
      ],
      "author": {
        "name": "Mario Emmenlauer",
        "email": "memmenlauer@biodataanalysis.de",
        "time": "Fri Apr 24 18:02:18 2020 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 24 17:02:18 2020 +0100"
      },
      "message": "Allow wrapping TTransportFactory into a TZlibTransportFactory\n\nClient: cpp"
    },
    {
      "commit": "25f81d11c2adb60ce50425879962a3f68efc4afa",
      "tree": "6642e1986780c2310e59cf43e12d967652211911",
      "parents": [
        "b4711a617821a0610e377f048abf8dfe0c701773"
      ],
      "author": {
        "name": "Mario Emmenlauer",
        "email": "memmenlauer@biodataanalysis.de",
        "time": "Fri Apr 24 15:45:05 2020 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 24 14:45:05 2020 +0100"
      },
      "message": "Rework NodeJS / Javascript consistency \n\nClient: js\r\n\r\n* Re-worked consistency of browser.js and index.js in lib/nodejs\r\n\r\n* Wrap non-standard V8 method \u0027Error.captureStackTrace()\u0027"
    },
    {
      "commit": "b4711a617821a0610e377f048abf8dfe0c701773",
      "tree": "c5cd659bf744e9b002da83f113d43c9b2c2f244b",
      "parents": [
        "04574379a43dd2a05766f3e06eb9852a9b6fa5da"
      ],
      "author": {
        "name": "Alexander Edge",
        "email": "alex@alexedge.co.uk",
        "time": "Fri Apr 24 14:43:03 2020 +0100"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 24 14:43:03 2020 +0100"
      },
      "message": "Swift 5.1 support\n\nUse stdlib Result instead of TAsyncResult\r\n\r\nFix: deprecations for `withUnsafeBytes`\r\n\r\nBump CI job Xcode version\r\n\r\nHash (into)\r\n\r\nCo-authored-by: Sophie Lambrakis \u003cSLambrakis@users.noreply.github.com\u003e\r\nCo-authored-by: Alexander Edge \u003calex@alexedge.co.uk\u003e"
    },
    {
      "commit": "04574379a43dd2a05766f3e06eb9852a9b6fa5da",
      "tree": "9df2bc0dbb01398c238dfa81dd47a2937f9d1b2c",
      "parents": [
        "802793638b3e06d8b9031ae4d0b765735165c598"
      ],
      "author": {
        "name": "Mario Emmenlauer",
        "email": "memmenlauer@biodataanalysis.de",
        "time": "Fri Apr 24 11:44:41 2020 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 24 10:44:41 2020 +0100"
      },
      "message": "TOutput: Add further parsers for errno-to-string conversion for Windows\n\n"
    },
    {
      "commit": "ed0bad34301741c6ea7473e891d1c6886e8db9e1",
      "tree": "45dae220a227ba083a2c165d0f7f6b1ad45d4c88",
      "parents": [
        "e98ba9cb841153fcbe2185ca44c77dbbc745ceb3"
      ],
      "author": {
        "name": "Mario Emmenlauer",
        "email": "memmenlauer@biodataanalysis.de",
        "time": "Fri Apr 24 08:50:43 2020 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 24 07:50:43 2020 +0100"
      },
      "message": "Add isOpen() to TServerTransport\n\nClient: cpp"
    },
    {
      "commit": "e98ba9cb841153fcbe2185ca44c77dbbc745ceb3",
      "tree": "27665964d51141aa241ac733d3a91406c5520221",
      "parents": [
        "d5a9bf2b30b4f9533f4ef13ee1a4fdce1036bbaa"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Thu Apr 23 23:39:04 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 24 07:39:04 2020 +0100"
      },
      "message": "THRIFT-5183: Don\u0027t try to read next frame in THeaderTransport.Read\n\nTrying to read the next frame will likely cause the Read call blocking\r\nindefinitely and eventually lead to timeout. See the JIRA ticket for\r\nmore context.\r\n\r\nClient: go"
    },
    {
      "commit": "d5a9bf2b30b4f9533f4ef13ee1a4fdce1036bbaa",
      "tree": "548b440d22a06a749f0ea06147deddfb6a78fa05",
      "parents": [
        "93171d2482f98d77887874afc3bbb73f0bbb65c2"
      ],
      "author": {
        "name": "Kengo Seki",
        "email": "sekikn@apache.org",
        "time": "Fri Apr 24 05:58:00 2020 +0900"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Apr 23 21:58:00 2020 +0100"
      },
      "message": "THRIFT-5171: Fix maven-ant-tasks to use HTTPS instead of HTTP\n\nClient: js, json"
    },
    {
      "commit": "93171d2482f98d77887874afc3bbb73f0bbb65c2",
      "tree": "d377bd31b8cfcaae4538b72e15a2baa83dc42c24",
      "parents": [
        "6064696ae08e9764f588143f8ffd380b95405aca"
      ],
      "author": {
        "name": "Mario Emmenlauer",
        "email": "memmenlauer@biodataanalysis.de",
        "time": "Wed Oct 23 17:32:34 2019 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Apr 22 21:17:33 2020 +0200"
      },
      "message": "THRIFT-5109 Misc Cmake build improvements\nPatch: Mario Emmenlauer\n\nThis closes #2094\n"
    },
    {
      "commit": "6064696ae08e9764f588143f8ffd380b95405aca",
      "tree": "3f7c6687cf478afb1526d4289612222e3ce5736a",
      "parents": [
        "df2f5d2cf321f070a356872eea13dd3f68891043"
      ],
      "author": {
        "name": "Mario Emmenlauer",
        "email": "mario@emmenlauer.de",
        "time": "Wed Apr 15 10:26:09 2020 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Apr 22 21:15:14 2020 +0200"
      },
      "message": "lib/js/Gruntfile.js: Generalized to add some level of Windows CMD support (not complete yet)\n"
    },
    {
      "commit": "df2f5d2cf321f070a356872eea13dd3f68891043",
      "tree": "08861614944019ea64998feaffbabfe2369f4399",
      "parents": [
        "57c2507208aede3ec60c7bab50aaeb093fe44eca"
      ],
      "author": {
        "name": "Mario Emmenlauer",
        "email": "mario@emmenlauer.de",
        "time": "Mon Apr 20 14:07:54 2020 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Apr 21 23:37:28 2020 +0200"
      },
      "message": "THRIFT-5178: Add constructor with default host to THttpClient\nClient: cpp\nPatch: Mario Emmenlauer\n\nThis closes #2105\n\nThe new default host is localhost. Also, the new default path is /service. This works around issue THRIFT-5180 where a path is required for the THttpTransport in Unix domain sockets.\n"
    },
    {
      "commit": "57c2507208aede3ec60c7bab50aaeb093fe44eca",
      "tree": "f12fc1b5109226b044ac88b39c4a227042fad6aa",
      "parents": [
        "dd7e11798ba524f7ae6204b68f073ee696deb595"
      ],
      "author": {
        "name": "zeshuai007",
        "email": "51382517@qq.com",
        "time": "Thu Apr 09 11:17:05 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Apr 21 23:29:14 2020 +0200"
      },
      "message": "THRIFT-5168 Useless generated code when .thrift file only has service type\nClient: cpp\nPatch: zeshuai007 \u003c51382517@qq.com\u003e\n\nThis closes #2095\n"
    },
    {
      "commit": "dd7e11798ba524f7ae6204b68f073ee696deb595",
      "tree": "2b512c0359feb39b7f8abab18a81f1d3f8429f96",
      "parents": [
        "35a3942e7078bc55cd21890b12d206d9bf0514d3"
      ],
      "author": {
        "name": "gaganso",
        "email": "gagan.somashekar@gmail.com",
        "time": "Mon Apr 20 03:20:05 2020 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Apr 20 23:32:52 2020 +0200"
      },
      "message": "Removed a duplicate line + Fixed typo in the comments of lib/cpp/src/thrift/concurrency/Thread.h\nClient: cpp\nPatch: gaganso \u003cgagan.somashekar@gmail.com\u003e\n\nThis closes #2104\n"
    },
    {
      "commit": "35a3942e7078bc55cd21890b12d206d9bf0514d3",
      "tree": "b59253146ca16a6382c40df2680d8554a17bd253",
      "parents": [
        "9e864d57026b4905862108418ba9482892fb1f65"
      ],
      "author": {
        "name": "zeshuai007",
        "email": "51382517@qq.com",
        "time": "Fri Apr 17 11:14:01 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Apr 20 23:30:21 2020 +0200"
      },
      "message": "Update libthrift.vcxproj and libthrift.vcxproj.filters: remove xxxThreadFactory.h file which has been removed\nClient: cpp\nPatch: zeshuai007 \u003c51382517@qq.com\u003e\n\nThis closes #2100\n"
    },
    {
      "commit": "9e864d57026b4905862108418ba9482892fb1f65",
      "tree": "337799e20c994eb79d34b59221d84a8f3d1b9198",
      "parents": [
        "5f352754225158f60594a5f19ba8d03261854327"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Fri Apr 17 11:53:39 2020 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri Apr 17 19:53:39 2020 +0100"
      },
      "message": "Add UnsetHeader to go library\n\nClient: go\r\n\r\nWe already have SetHeader and GetHeader helper functions in the go\r\nlibrary to deal with THeader injected into the context object. But we\r\ndidn\u0027t provide a way to unset/delete a key from the context object.\r\n\r\nThis will be useful with the TSimpleServer.SetForwardHeaders API. In the\r\nscenario that a thrift server want to auto forward certain headers to\r\nother upstream thrift servers as the fallback, but during the handling\r\nof the request might decide to remove some of the auto forward headers.\r\nThis is also achievable through mutate the write header list, but since\r\nthat\u0027s a list, finding one key from the list and remove it is much more\r\nhassle."
    },
    {
      "commit": "81334cd7345d3b5af165aa875b733a491f1fd5c7",
      "tree": "36bfe1c82c3f584c7c6c057793c097ef327f6341",
      "parents": [
        "69642f389a06f5ba1b374de52c6b0e29892035d8"
      ],
      "author": {
        "name": "lvqian",
        "email": "qlv1@xiaohongshu.com",
        "time": "Thu Mar 26 19:08:55 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Apr 13 18:11:03 2020 +0200"
      },
      "message": "THRIFT-5152: introduce connect timeout and socket timeout\nClient: Go\nPatch: Qian Lv\n\nThis closes #2071\n"
    },
    {
      "commit": "69642f389a06f5ba1b374de52c6b0e29892035d8",
      "tree": "9d06931572c79d9fc370fab464b0c124698beaec",
      "parents": [
        "daa7669a7665539a484815a7d5200651ba74df9a"
      ],
      "author": {
        "name": "Joao Antonio",
        "email": "joao.p.antonio@gmail.com",
        "time": "Sat Apr 04 15:39:03 2020 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Apr 13 18:06:56 2020 +0200"
      },
      "message": "THRIFT-5165: THttpClient saves session cookie.\nClient: py\nPatch: Joao Antonio\n\nThis closes #2086\n"
    },
    {
      "commit": "6bbdb1a46ce6ba0ac4e27e29b2c9c9eef107186c",
      "tree": "7c0d2a28567427313cb857e607460c87afba52cd",
      "parents": [
        "f44b6ee8db9342d804c6ba01da9953e791021bfe"
      ],
      "author": {
        "name": "James Lacey",
        "email": "jamlacey@gmail.com",
        "time": "Mon Apr 06 09:17:59 2020 -0700"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Apr 09 21:52:46 2020 +0200"
      },
      "message": "THRIFT-5166: Add support for using WebSockets as a server transport.\nClient: d\nPatch: James Lacey\n\nThis closes #2087\n"
    },
    {
      "commit": "5159da90964b774e6ff952efaf2bce516538ae50",
      "tree": "237780854042b91e99dfec076d51ea8d46171d0a",
      "parents": [
        "13e6f9ec89ae4f8f87165eccea88442e83afb314"
      ],
      "author": {
        "name": "eric.bleher@software-managed.com",
        "email": "eric.bleher@software-managed.com",
        "time": "Wed Apr 08 15:53:04 2020 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Apr 09 21:22:46 2020 +0200"
      },
      "message": "THRIFT-5172 NetStd OutOfMemoryException\nClient: netstd\nPatch: Eric Bleher\n\nThis closes #2093\n"
    },
    {
      "commit": "13e6f9ec89ae4f8f87165eccea88442e83afb314",
      "tree": "1ba533af7eeb6a2c3d549f81e5ac796510fb94a6",
      "parents": [
        "818105653db4916f9e8b59b8fb8f074cb083c30b"
      ],
      "author": {
        "name": "cyy",
        "email": "cyyever@outlook.com",
        "time": "Thu Dec 12 21:13:31 2019 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Apr 06 22:47:20 2020 +0200"
      },
      "message": "THRIFT-5047:fix openssl switch\nClient: cpp\nPatch: Yuanyuan Chen\n\nThis closes #1962\n"
    },
    {
      "commit": "818105653db4916f9e8b59b8fb8f074cb083c30b",
      "tree": "8f376aae4f4783d2e1bd13e00452b06241860b78",
      "parents": [
        "dbb95e438f90609c8bc70b6953f65e97afedbb1b"
      ],
      "author": {
        "name": "James Lacey",
        "email": "jamlacey@gmail.com",
        "time": "Fri Mar 27 19:14:33 2020 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Apr 04 20:52:26 2020 +0200"
      },
      "message": "THRIFT-5156: Fix library compilation on Windows and compiler warnings\nClient: d\nPatch: James Lacey\n\nThis closes #2075\n"
    },
    {
      "commit": "dbb95e438f90609c8bc70b6953f65e97afedbb1b",
      "tree": "b8728bcc3bafcaf080a3ade0640b9fbf4452b5de",
      "parents": [
        "102428d35da461aec0f3d8a513e4a21bb56ddb69"
      ],
      "author": {
        "name": "Kevin Wojniak",
        "email": "kainjow@users.noreply.github.com",
        "time": "Sat Jan 25 12:37:23 2020 -0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Apr 03 21:17:25 2020 +0200"
      },
      "message": "THRIFT-5076 Improve CMake OpenSSL usage\nClient: c_glib\nPatch: Kevin Wojniak\n\nThis closes #1994\n"
    },
    {
      "commit": "102428d35da461aec0f3d8a513e4a21bb56ddb69",
      "tree": "a2872b4663a3c7a33c867a83f885f47c1daa4dbf",
      "parents": [
        "dfd6df7588564739be7a1eba8a7c3ed83ee27a4b"
      ],
      "author": {
        "name": "Márton Csordás",
        "email": "csordasmarton92@gmail.com",
        "time": "Sat Mar 14 10:30:12 2020 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Apr 03 02:19:11 2020 +0200"
      },
      "message": "THRIFT-5163 adds Q to exports for browserify\nClient: NodeJS\nPatch: Márton Csordás\n\nThis closes #2061\n"
    },
    {
      "commit": "dfd6df7588564739be7a1eba8a7c3ed83ee27a4b",
      "tree": "d91b0575c3c1603a69de7c218e1dc6f6c0a3e4c6",
      "parents": [
        "86396c688068c428d997ad3209823ab5a2e3dcae"
      ],
      "author": {
        "name": "Márton Csordás",
        "email": "csordasmarton92@gmail.com",
        "time": "Thu Apr 02 12:23:22 2020 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Apr 03 02:12:25 2020 +0200"
      },
      "message": "THRIFT-3356: handle undefined captureStackTrace\nClient: nodejs\nPatch: Márton Csordás\n\nThis closes #2082\n"
    },
    {
      "commit": "86396c688068c428d997ad3209823ab5a2e3dcae",
      "tree": "1ef219789ba0425bc3a7095017d2eb9c8915be6e",
      "parents": [
        "3b56a036c38aaa0575760c958f57067119ad51b3"
      ],
      "author": {
        "name": "zeshuai007",
        "email": "51382517@qq.com",
        "time": "Tue Mar 31 14:38:20 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Mar 31 23:06:36 2020 +0200"
      },
      "message": "Add testcase for other condition judgment in the readJSONDouble function\nClient: cpp\nPatch: zeshuai007 \u003c51382517@qq.com\u003e\n\nThis closes #2080\n"
    },
    {
      "commit": "8ec585793c63c765a18ec97335eda6b89b494ab5",
      "tree": "c60fe2222055abcbd0e96ca384430a3938cc95fd",
      "parents": [
        "11fc716a20474a7b668654f96db43d97a09bc318"
      ],
      "author": {
        "name": "Kanishth Karthik",
        "email": "kanishthkarthik@gmail.com",
        "time": "Thu Mar 26 01:29:50 2020 +0530"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Mar 29 18:28:05 2020 +0200"
      },
      "message": "THRIFT-4963: Fix deadlock in ThreadManager::Worker::run\nClient: cpp\nPatch: Kanishth Karthi\n\nThis closes #2070\n"
    },
    {
      "commit": "dfe7f30070498c7463ab61720133eff1bcd11cc3",
      "tree": "7a15e03bddc2df150112b16470027d90d61af9dd",
      "parents": [
        "aeda987cc42ef7dcf57682b7ee168e7dfdbd5f57"
      ],
      "author": {
        "name": "panivko",
        "email": "vladimir.panivko@together.com",
        "time": "Wed Mar 04 15:05:17 2020 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Mar 27 21:44:05 2020 +0100"
      },
      "message": "THRIFT-5130 Use Apcu instead of APC\nClient: PHP\nPatch: Vladimir Panivko\n\nThis closes #2041\n"
    },
    {
      "commit": "aeda987cc42ef7dcf57682b7ee168e7dfdbd5f57",
      "tree": "2021c1fd974a2e1661410b62a9c9c4c5856f40dd",
      "parents": [
        "4a33b188f44ce097e25ca56ebd48026b41effd6a"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Mar 22 15:01:28 2020 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Mar 22 15:30:37 2020 +0100"
      },
      "message": "THRIFT-5146 Align Delphi to the test suite arguments rules (its \"--switch\u003dvalue\", not \"--switch value\")\nClient: Delphi\nPatch: Jens Geyer\n"
    },
    {
      "commit": "4a33b188f44ce097e25ca56ebd48026b41effd6a",
      "tree": "fefc19cf2460bf72709faf988bc186f5bb93a0de",
      "parents": [
        "24ab31fc5738532b082c7b0638bfcd2a7a26d7c5"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Mar 22 13:46:34 2020 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Mar 22 15:30:27 2020 +0100"
      },
      "message": "THRIFT-5145 Streamline --pipe and --named-pipe options in the code base\nClient: Test suite\nPatch: Jens Geyer\n\nThis closes #2065\n"
    },
    {
      "commit": "655f52590d23443a432a3326cbb64ca93cb4b90a",
      "tree": "bc967fd4d898d6b35e0276fbd41dbe21ca189290",
      "parents": [
        "4b66a9d8812cf2c19f15382c56ec8e1327b6f2a1"
      ],
      "author": {
        "name": "zeshuai007",
        "email": "51382517@qq.com",
        "time": "Sat Mar 21 10:52:03 2020 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Mar 22 13:22:37 2020 +0100"
      },
      "message": "Fix some compile warnings\nClient: c_glib\nPatch: zeshuai007 \u003c51382517@qq.com\u003e\n\nThis closes #2063\n"
    },
    {
      "commit": "4b66a9d8812cf2c19f15382c56ec8e1327b6f2a1",
      "tree": "c8543ba44a93c29f1bcfbc2a3d5548b0a4a7b1db",
      "parents": [
        "eccd2e879e73bbc1a948b31139ac1d4c383c0335"
      ],
      "author": {
        "name": "Mikel Blanchard",
        "email": "mblanchard@macrosssoftware.com",
        "time": "Thu Mar 05 00:46:21 2020 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Mar 19 23:13:03 2020 +0100"
      },
      "message": "THRIFT-5133: Use ArrayPool when reading and writing strings to improve performance\nClient: netstd\nPatch: Mikel Blanchard\n\nThis closes #2057\n"
    },
    {
      "commit": "dad2bf87da9e46382b088544eba56b1829e25d92",
      "tree": "822a4eed86e231ed7387365e9a3208ae1f410d18",
      "parents": [
        "b013dc004a019c9a30689b8e49ade34c3b18b7e5"
      ],
      "author": {
        "name": "Kevin Wojniak",
        "email": "kainjow@users.noreply.github.com",
        "time": "Fri Jul 05 03:42:02 2019 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Mar 15 12:20:08 2020 +0100"
      },
      "message": "Fix several warnings in c_glib lib and incorrect error message\nCLient: c_glib\nPatch: Kevin Wojniak\n\nThis closes #1830\n"
    },
    {
      "commit": "b013dc004a019c9a30689b8e49ade34c3b18b7e5",
      "tree": "931f9b2f70f4ecdfe99e58a26d4c3032d5693df8",
      "parents": [
        "ed1711e8611a2acc89b178a1cc0924b215e07a4c"
      ],
      "author": {
        "name": "Alexander Edge",
        "email": "alex@alexedge.co.uk",
        "time": "Thu Feb 27 11:25:55 2020 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Mar 14 15:41:12 2020 +0100"
      },
      "message": "THRIFT-5121: Fix inverted logic when testing message type\nClient: Swift\nPatch: Alexander Edge\n\nThis closes #2036\n"
    },
    {
      "commit": "2e115774776f2e5bcfe826e30548feab030fb263",
      "tree": "a0ed09d5766b2aa5f8509b786e2ec66d79b0be26",
      "parents": [
        "e791760098b6a9490e19af2b18a3e002f561973b"
      ],
      "author": {
        "name": "Jano Svitok",
        "email": "jsv@whitestein.com",
        "time": "Fri Mar 06 09:01:43 2020 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Mar 07 11:12:13 2020 +0100"
      },
      "message": "THRIFT-5111: Upgrade rust to 1.36.0\nClient: Rust\nPatch: Jano Svitok\n\nThis closes #2050\n\nAlso contains portions of THRIFT-4547: Upgrade Swift in docker to 5.1.4\nClient: Swift\nPatch: Jano Svitok\n\nLinux version 4.2.0 does not have FileHandle.acceptConnectionInBackgroundAndNotify()\nimplemented. We need at least 5.1 for TSocketServer to run in docker.\n\nIn the meantime, URLRequest was moved to FoundationNetworking.\nTo keep compatibility with previous versions, conditional import is\nused.\n"
    },
    {
      "commit": "e791760098b6a9490e19af2b18a3e002f561973b",
      "tree": "efa6d60378ab23f37b3b7ea0d0c677dce00e159b",
      "parents": [
        "1b7b00cde9cdd4a0dd9f09f240df551c87d4ab27"
      ],
      "author": {
        "name": "Nik Clayton",
        "email": "nik.clayton@dfinity.org",
        "time": "Thu Mar 05 11:51:15 2020 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Mar 07 10:59:24 2020 +0100"
      },
      "message": "THRIFT-5131: Require \u003e\u003d 1.1.4 of integer-encoding dependency\nClient: Rust\nPatch: Nik Clayton\n\nThis closes #2045\n\nVersions 1.1.0 - 1.1.3 of the integer-encoding crate had a bug where\nnumbers larger than 0x4000_0000_0000_0000 would cause a panic during\ndecoding.\n\nAdd a test to be sure that numbers up to i64::maxvalue() encode and\ndecode successfully.\n"
    },
    {
      "commit": "1b7b00cde9cdd4a0dd9f09f240df551c87d4ab27",
      "tree": "e9c875912ae123c278b429a461c590c94f764b65",
      "parents": [
        "56700e469d5d0659994a3963ad5a111740cf8277"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Feb 26 22:01:18 2020 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Feb 28 19:20:27 2020 +0100"
      },
      "message": "CI broken, reverting following PRs\nreverted https://github.com/apache/thrift/pull/2025\nreverted https://github.com/apache/thrift/pull/2026\nReverted https://github.com/apache/thrift/pull/2021\n"
    },
    {
      "commit": "56700e469d5d0659994a3963ad5a111740cf8277",
      "tree": "db903818e332aa6887f2efd2797163ffa4268d67",
      "parents": [
        "4903d18fca988871bcedce3b420fef2cd9682ca1"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sat Feb 22 16:51:51 2020 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Feb 28 19:18:34 2020 +0100"
      },
      "message": "THRIFT-4982 Remove deprecated C# bindings from the code base\nClient: csharp\nPatch: Jens Geyer\n\nThis closes #2027\n"
    },
    {
      "commit": "4903d18fca988871bcedce3b420fef2cd9682ca1",
      "tree": "7addbe47c8f8791b15c2726fedae888e1ab61592",
      "parents": [
        "aec555aac89ec9634e99ce0f4f0aec5799e6e3d8"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Feb 27 20:27:03 2020 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Feb 27 20:37:50 2020 +0100"
      },
      "message": "THRIFT-5123 add possibility to query HTTP status code with WinHTTP\nClient: delphi\nPatch: Jens Geyer\n"
    },
    {
      "commit": "aec555aac89ec9634e99ce0f4f0aec5799e6e3d8",
      "tree": "2e0ee1b7ebb933ca481965a944fe788fccaa107a",
      "parents": [
        "b7b02afcd835639a0735731a63ff5b1386879c97"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Feb 26 00:14:25 2020 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Feb 26 22:14:12 2020 +0100"
      },
      "message": "make dist fails due to CMakeList.txt files missing from the generated tarball\n"
    },
    {
      "commit": "b7b02afcd835639a0735731a63ff5b1386879c97",
      "tree": "0fb9ff167e671d993f5613edd6f1442b7d76e19a",
      "parents": [
        "4b475af6943d99a21e2b79578167a4d228fe0df1"
      ],
      "author": {
        "name": "Mario Emmenlauer",
        "email": "mario@emmenlauer.de",
        "time": "Mon Feb 24 22:25:24 2020 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Feb 25 23:21:57 2020 +0100"
      },
      "message": "THRIFT-5115 PR #2022 Updated gradle to 6.2 broke CI\nClient: java\nPatch: Mario Emmenlauer\n\nThis closes #2031\n\nDowngraded gradle to 5.6.4 after problems with 6.x in AS3\n"
    },
    {
      "commit": "4b475af6943d99a21e2b79578167a4d228fe0df1",
      "tree": "4a05105272003cef1b478b5d96bc0fa508fb7b61",
      "parents": [
        "66d110bcce5c7e1b0deeacd28b046fb4a9c0249b"
      ],
      "author": {
        "name": "Alexander Edge",
        "email": "alex@alexedge.co.uk",
        "time": "Mon Feb 24 10:37:25 2020 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Feb 24 19:00:49 2020 +0100"
      },
      "message": "THRIFT-5084: Multiplexed processor in Swift – explicit return statements\nClient: swift\nPatch: Alexander Edge\n\nThis closes #2028\n"
    },
    {
      "commit": "66d110bcce5c7e1b0deeacd28b046fb4a9c0249b",
      "tree": "b1ae0dc60fa26890bf434b90ddf8dd59e165de9d",
      "parents": [
        "13cbc8defa0877c14af42666b9a7575dea78de72"
      ],
      "author": {
        "name": "Mario Emmenlauer",
        "email": "mario@emmenlauer.de",
        "time": "Mon Apr 15 13:36:02 2019 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Feb 23 15:12:19 2020 +0100"
      },
      "message": "THRIFT-5109 Misc Cmake build improvements\nPatch: Mario Emmenlauer\n\nThis closes #2017\nThis closes #2018\nThis closes #2019\n\n- build/cmake/DefineInstallationPaths.cmake: fixed the library path\n- build/cmake/ThriftMacros.cmake: do not enforce debug suffix \u0027d\u0027\n- lib/java/CMakeLists.txt: allow to override JAVA_INSTALL_DIR\n"
    },
    {
      "commit": "b70dc1e61c5c4637d16160df3197164e0bef79bf",
      "tree": "d450d55ef2dc9944e3f714e833b78138a5b2e8b0",
      "parents": [
        "f8b3698ab49c5997760867a85f85b01ba9768e8e"
      ],
      "author": {
        "name": "Mario Emmenlauer",
        "email": "memmenlauer@biodataanalysis.de",
        "time": "Sat Dec 14 11:23:05 2019 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Feb 23 14:58:10 2020 +0100"
      },
      "message": "Updated gradle to 6.2\nClient: java\nPatch: Mario Emmenlauer\n\nThis closes #2022\n"
    },
    {
      "commit": "f8b3698ab49c5997760867a85f85b01ba9768e8e",
      "tree": "f7049399b16d69d79f1733cdaf25efc72b847d93",
      "parents": [
        "61d502075bf5da10331c201f604acdfefc4d5edc"
      ],
      "author": {
        "name": "Mario Emmenlauer",
        "email": "mario@emmenlauer.de",
        "time": "Sat Feb 22 10:47:31 2020 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Feb 23 14:57:59 2020 +0100"
      },
      "message": "Updated Javascript dependencies\nClient: js\nPatch: Mario Emmenlauer\n\nThis closes #2023\n"
    },
    {
      "commit": "61d502075bf5da10331c201f604acdfefc4d5edc",
      "tree": "edac8ef77dcd0eceb0dedbf035ecaf428ea8e86e",
      "parents": [
        "f5a9a30e345fc8cf52d37388cb7b9ab741a3a4ac"
      ],
      "author": {
        "name": "Mario Emmenlauer",
        "email": "memmenlauer@biodataanalysis.de",
        "time": "Wed Oct 23 17:32:34 2019 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Feb 23 14:51:48 2020 +0100"
      },
      "message": "THRIFT-5109 Misc Cmake build improvements\nPatch: Mario Emmenlauer\n\nThis closes #2026\nThis closes #2025\nThis closes #2021\n"
    },
    {
      "commit": "f5a9a30e345fc8cf52d37388cb7b9ab741a3a4ac",
      "tree": "e7e90217c66f1e64217ce32a34b222a8507f570b",
      "parents": [
        "d858a8d4bcdc8767b4a89e3636e61f486ad9366f"
      ],
      "author": {
        "name": "Mario Emmenlauer",
        "email": "memmenlauer@biodataanalysis.de",
        "time": "Thu Aug 22 22:08:16 2019 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Feb 23 14:50:30 2020 +0100"
      },
      "message": "THRIFT-5110 Added a number of required libs for using static OpenSSL\nClient: cpp\nPatch: Mario Emmenlauer\n\nThis closes #2020\n"
    },
    {
      "commit": "a89036c8c3d05be4e6186de0864335beef01294a",
      "tree": "b2b7caa20db4d472c1fe1576a03222faee4d86be",
      "parents": [
        "f0c761e171782565f74ff3cd7d0e9ce8e1d2b6ad"
      ],
      "author": {
        "name": "Alexander Edge",
        "email": "alex@alexedge.co.uk",
        "time": "Wed Feb 05 17:03:53 2020 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Feb 21 21:57:37 2020 +0100"
      },
      "message": "THRIFT-5084: Multiplexed processor in Swift\nClient: Swift\nPatch: Alexander Edge\n\nThis closes #2002\n"
    },
    {
      "commit": "f0c761e171782565f74ff3cd7d0e9ce8e1d2b6ad",
      "tree": "c72f74fb3f3c2eb2c93c114652f24ff993861e7c",
      "parents": [
        "ea4a086757f834880220c50392532b60751c6885"
      ],
      "author": {
        "name": "Kengo Seki",
        "email": "sekikn@apache.org",
        "time": "Thu Jan 09 18:48:29 2020 +0900"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Feb 21 21:41:27 2020 +0100"
      },
      "message": "THRIFT-5059: Add cross tests for TZlibTransport in D\nClient: D\nPatch: Kengo Seki\n\nThis closes #1977\n"
    },
    {
      "commit": "ea4a086757f834880220c50392532b60751c6885",
      "tree": "d93055380b3b0cc1e1338cafb2df5f72e4645685",
      "parents": [
        "bd26d385693e4f172c348dc27f9d1e23288c50cf"
      ],
      "author": {
        "name": "wangyunjian",
        "email": "wangyunjian@huawei.com",
        "time": "Tue Feb 18 09:11:53 2020 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Feb 21 21:35:39 2020 +0100"
      },
      "message": "THRIFT-5102: Fix memory leak in thrift_simple_server_serve()\nClient: c_glib\nPatch: wangyunjian\n\nThis closes #2012\n\nSigned-off-by: wangyunjian \u003cwangyunjian@huawei.com\u003e\n"
    },
    {
      "commit": "bd26d385693e4f172c348dc27f9d1e23288c50cf",
      "tree": "198cb3fa65ce742106f89f2a5132722646b3ae43",
      "parents": [
        "d8480c9ac14f133d272372530e33619b2a64ddf7"
      ],
      "author": {
        "name": "wangyunjian",
        "email": "wangyunjian@huawei.com",
        "time": "Sat Feb 15 08:29:59 2020 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Feb 21 21:25:45 2020 +0100"
      },
      "message": "THRIFT-5094: Fix memory leak in thrift_server_set_property()\nClient: c_glib\nPatch: wangyunjian\n\nThis closes #2008\n\nSigned-off-by: wangyunjian \u003cwangyunjian@huawei.com\u003e\n"
    },
    {
      "commit": "d8480c9ac14f133d272372530e33619b2a64ddf7",
      "tree": "599d8fdb844d748293c7439f9eaa21003e1d0687",
      "parents": [
        "7b712f42d7bc03610511abd397845983deafa258"
      ],
      "author": {
        "name": "wangyunjian",
        "email": "wangyunjian@huawei.com",
        "time": "Sun Feb 16 08:43:03 2020 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Feb 21 21:15:29 2020 +0100"
      },
      "message": "THRIFT-5101: Return NULL install of FALSE for thrift_server_socket_accept()\nClient: c_glib\nPatch: wangyunjian\n\nThis closes #2011\n\nSigned-off-by: wangyunjian \u003cwangyunjian@huawei.com\u003e\n"
    },
    {
      "commit": "7b712f42d7bc03610511abd397845983deafa258",
      "tree": "3ee0c4bcd77ce5e184e5478fc42af772e92da755",
      "parents": [
        "222362cc70d66b5f8bb6422622fcf384407b54c8"
      ],
      "author": {
        "name": "Jeffrey Han",
        "email": "jeffreyhan@fb.com",
        "time": "Thu Feb 20 14:18:23 2020 -0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Fri Feb 21 21:08:19 2020 +0100"
      },
      "message": "THRIFT-5106: Fix various Lua library and compiler issues\nClient: lua\nPatch: Jeffrey Han\n\nThis closes #2014\n"
    },
    {
      "commit": "222362cc70d66b5f8bb6422622fcf384407b54c8",
      "tree": "75b7dfae3176559c58d17a833f2852f1b6a66f79",
      "parents": [
        "c8e46cf861cd1ebae273e968bb3995f778d998f1"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Feb 16 01:54:56 2020 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Feb 16 13:19:43 2020 +0100"
      },
      "message": "THRIFT-5095 ToString() should print entire structure, not just the top-level data\nClient: netstd\nPatch: Jens Geyer\n\nThis closes #2009\n"
    },
    {
      "commit": "c8e46cf861cd1ebae273e968bb3995f778d998f1",
      "tree": "ce8c58fe448fa65fb127c277dee52f7affad066f",
      "parents": [
        "bb5f7ec6b06220808cd20c8488fe8f90a54f3929"
      ],
      "author": {
        "name": "Tobias Mayer",
        "email": "tobim@fastmail.fm",
        "time": "Sun Feb 16 10:36:11 2020 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun Feb 16 13:18:24 2020 +0100"
      },
      "message": "THRIFT-5097: Fix exported version in cmake module\nPatch: Tobias Mayer\n\nThis closes #2010\n"
    },
    {
      "commit": "aa9e7e8f5966ec9233ef418bab81b48c5a539028",
      "tree": "4c9eb270297b93a075be2cafda03cda4ba739488",
      "parents": [
        "b012318fc8f1d3de4c64514d5d32cb424952d905"
      ],
      "author": {
        "name": "Renan I. Del Valle",
        "email": "commit@ridv.xyz",
        "time": "Thu Feb 13 11:20:04 2020 -0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Feb 13 22:42:14 2020 +0100"
      },
      "message": "THRIFT-5092: Return an error instead of causing a panic when attempting to write to a closed client.\nClient: go\nPatch: Renan I. Del Valle\n\nThis closes #2005\n"
    },
    {
      "commit": "b012318fc8f1d3de4c64514d5d32cb424952d905",
      "tree": "d7400d3ced0335c6c58713fedeeae5c58309c66e",
      "parents": [
        "ded326101af3c6c9daad9814ce6404d385f36a1f"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Feb 12 12:16:19 2020 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Feb 12 22:40:42 2020 +0100"
      },
      "message": "THRIFT-5088 Memory leak in TWinHttpTransport\nClient: Delphi\nPatch: Jens Geyer\n"
    },
    {
      "commit": "77c4afae16207a8a806162fa8b6418f329ad5fa3",
      "tree": "afbff38d027455624f17d19dd5f50ab8ec829b14",
      "parents": [
        "baddaa8612fe70070208d30b91d820e99fb2a716"
      ],
      "author": {
        "name": "Gaurav Singh",
        "email": "gaurav1086@gmail.com",
        "time": "Sun Feb 02 20:13:07 2020 -0500"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Feb 06 23:06:07 2020 +0100"
      },
      "message": "(no ticket) Propagate exception instead of rethrowing\nClient: cpp\nPatch: Gaurav Singh\n\nThis closes #1999\n"
    },
    {
      "commit": "f049ff374dd8232a1b4e2b3e01f7530936cae0d0",
      "tree": "745fcf4ec4b65b16b227aa4f5243882b9dbd1a63",
      "parents": [
        "f8b004081da0c5006c3a0ce0352b66d2d857405e"
      ],
      "author": {
        "name": "Paulo Neves",
        "email": "ptsneves@gmail.com",
        "time": "Wed Feb 05 11:58:18 2020 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Feb 05 21:40:16 2020 +0100"
      },
      "message": "THRIFT-5083 Reset context on new messages.\nClient: netstd\nPatch: Paulo Neves\n\nThis closes #\n"
    },
    {
      "commit": "cb4c31a0720e5449ac562b65ac7916f583d0cb7f",
      "tree": "9ccccd2f0e69065f0fb3d171245aaa8e05367d49",
      "parents": [
        "e56f717b7f62ba5b1ace7382d728ac7f0fda940f"
      ],
      "author": {
        "name": "Kengo Seki",
        "email": "sekikn@apache.org",
        "time": "Thu Dec 26 14:34:57 2019 +0900"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Jan 28 23:27:48 2020 +0100"
      },
      "message": "THRIFT-5050 Fix MemoryBuffer.pm to raise a proper exception if no data is available\nClient: perl\nPatch: Kengo Seki\n\nThis closes #1967\n"
    },
    {
      "commit": "e56f717b7f62ba5b1ace7382d728ac7f0fda940f",
      "tree": "22db549a08b051c9e1d2c75e4c1b95b1f4671a31",
      "parents": [
        "e8f82da45e63a6477e4165e80358d613de689a82"
      ],
      "author": {
        "name": "Nick Collier",
        "email": "Nick.Collier@Sophos.com",
        "time": "Wed Dec 18 10:54:27 2019 +0000"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Tue Jan 28 23:20:40 2020 +0100"
      },
      "message": "THRIFT-5078 Handle named pipe clients quickly disconnecting\nClient: C++\nPatch: Nick Collier\n\nThis closes #1964\n"
    }
  ],
  "next": "436bce33215a918ebdc89596bc3c5bfafb33feea"
}
