)]}'
{
  "log": [
    {
      "commit": "5a9fc65f55bf428a663b559281fce956bd6884c0",
      "tree": "b917a0b6031a2a0012f71924ded144eb7128e49b",
      "parents": [
        "20dbec7cfe9f9b642f5c04d550063e600c35a9db"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Aug 05 23:22:02 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Aug 05 23:22:02 2010 +0000"
      },
      "message": "oops, needed to add an ivy dependency on the servlet api jar\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@982823 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ad776c14256b3dd0b8d3ff6d466416c3f7f1f642",
      "tree": "efa94d2013dd5eeff9dc544bc366033232efb7a4",
      "parents": [
        "d74ca156b3aaff49abca1b52461235031ef522b9"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Aug 05 22:12:01 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Aug 05 22:12:01 2010 +0000"
      },
      "message": "THRIFT-811. rb: http_client_transport.rb: allow custom http headers\n\nAllows setting of custom http headers in http_client_transport.rb \n\nPatch: Tony Kamenick\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@982804 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d74ca156b3aaff49abca1b52461235031ef522b9",
      "tree": "6fd372c2092df793f858be327646cbac8882b0f1",
      "parents": [
        "067a7beb7350818c97edf24086f48cef2a9be1fa"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Aug 05 22:05:35 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Aug 05 22:05:35 2010 +0000"
      },
      "message": "THRIFT-814. java: Include a TServlet in the standard Thrift distribution\n\nThis patch adds a TServlet implementation of the HttpServlet interface to be used with various containers. \n\nPatch: Mathias Herberts\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@982802 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "067a7beb7350818c97edf24086f48cef2a9be1fa",
      "tree": "2c1b867b8316cb486caa510f300e07fc9b6740da",
      "parents": [
        "5226eeaaaa1789fccce5c7cf0a5cef0a38190df8"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Aug 05 21:13:06 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Aug 05 21:13:06 2010 +0000"
      },
      "message": "THRIFT-836. java: Race condition causes CancelledKeyException in TAsyncClientManager\n\nThis patch removes an erroneous key cancellation and adds exception handling for a bunch of different exceptions.\nPatch: Ning Liang\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@982789 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "5226eeaaaa1789fccce5c7cf0a5cef0a38190df8",
      "tree": "82a5e8e1f0e1e1e953d24840c8311799f118b138",
      "parents": [
        "c412a2fad4e25f73a72f9821fd297937d9b2abda"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Aug 05 20:44:53 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Aug 05 20:44:53 2010 +0000"
      },
      "message": "THRIFT-751. java: Add clear() method to TBase\n\nThis patch adds a clear() method to the TBase interface and causes the compiler to generate implementations.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@982774 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d8c7757b9db7ec9839c795eba59119c4fd85b693",
      "tree": "4a087f3b710c3ae3dd6c930ed240a8347a2d205d",
      "parents": [
        "c687712d18ae6db3f5ca06f49acdebf86635e1de"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Jul 29 19:30:47 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Jul 29 19:30:47 2010 +0000"
      },
      "message": "THRIFT-833. java: build.xml in lib/java is missing a classpathref attribute for the javadoc task\n\nTurns out there was a missing classpathref that was causing lots of spurious warnings to be printed. This patch fixes that.\n\nPatch: Nate McCall\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@980548 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "efabb89c75169611801330b71b5fd230d46f8128",
      "tree": "5df1b71ffef7a86d78ce47aece3c30823bda23e3",
      "parents": [
        "76c2dcc4d3d4497a2ec11fefb4a76087fc5fbf79"
      ],
      "author": {
        "name": "T Jake Luciani",
        "email": "jake@apache.org",
        "time": "Wed Jul 28 22:31:12 2010 +0000"
      },
      "committer": {
        "name": "T Jake Luciani",
        "email": "jake@apache.org",
        "time": "Wed Jul 28 22:31:12 2010 +0000"
      },
      "message": "added test case and fix for records contained in arrays\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@980253 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "76c2dcc4d3d4497a2ec11fefb4a76087fc5fbf79",
      "tree": "fe5b6350791b9fd2258b906d209e8deeed7addbb",
      "parents": [
        "d2cc5bb39e2eac4d93cf421707e388c50b62e058"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Jul 28 21:30:24 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Jul 28 21:30:24 2010 +0000"
      },
      "message": "THRIFT-714. java: maxWorkerThreads parameter to THsHaServer has no effect\n\nThis patch removes the non-functioning maxWorkerThreads option and renames minWorkerThreads to workerThreads.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@980234 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d2cc5bb39e2eac4d93cf421707e388c50b62e058",
      "tree": "0bb0038e9eb64104456e6ef07fc30472201fd525",
      "parents": [
        "7ba364f7d80624d378be67624a92cda43665b091"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Jul 28 21:00:06 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Jul 28 21:00:06 2010 +0000"
      },
      "message": "THRIFT-699. rb: Excise unused \u0027native protocol method table\u0027 stuff from thrift_native\n\nThe code was completely unused and superfluous, and now it\u0027s gone.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@980209 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "7ba364f7d80624d378be67624a92cda43665b091",
      "tree": "3efd5d4bfc3d2599f71cce1687a21e25101c3ca3",
      "parents": [
        "a7bd2f20ff8301040e80debdf2d9c91ccbe55c14"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Jul 28 20:45:37 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Jul 28 20:45:37 2010 +0000"
      },
      "message": "revert unintentional partial commit of THRIFT-247\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@980204 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e95d2772b5250b7d9bb0103d361e2e1b009d90ff",
      "tree": "5165cbfc3c1321210b74b182c17427862cce6c26",
      "parents": [
        "23f2348fae272f68622bb12f3c271edf721ca1eb"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Jul 28 19:06:33 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Jul 28 19:06:33 2010 +0000"
      },
      "message": "Add ASL to Thrift.sln\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@980162 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "23f2348fae272f68622bb12f3c271edf721ca1eb",
      "tree": "c9c2d9a7b0edbe0639514885686aa4a5e07084b4",
      "parents": [
        "dcfb0025df86fcc0e372ba33e851981cb54c49fe"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Jul 28 18:23:22 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Jul 28 18:23:22 2010 +0000"
      },
      "message": "add ASL to a handful of files\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@980145 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "dc4a871e120e60f353fc698ab1bc52be884e2f88",
      "tree": "0e606b61336e6d82c9a5fae4e49a2d7851a3b9b9",
      "parents": [
        "c892ac555e74db0b3be99093fb6ffec5468ad316"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Jul 26 17:18:30 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Jul 26 17:18:30 2010 +0000"
      },
      "message": "add license headers to a smattering of files\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@979366 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c892ac555e74db0b3be99093fb6ffec5468ad316",
      "tree": "b6162a98165ef8ddd7a31bba9fca580e77d1080b",
      "parents": [
        "da50d552321c8bcf1108ebaf2ef21c08bf77956d"
      ],
      "author": {
        "name": "Andrew McGeachie",
        "email": "geechorama@apache.org",
        "time": "Wed Jul 21 19:51:04 2010 +0000"
      },
      "committer": {
        "name": "Andrew McGeachie",
        "email": "geechorama@apache.org",
        "time": "Wed Jul 21 19:51:04 2010 +0000"
      },
      "message": "THRIFT-821.  Add a method to get a copy of the TMemoryBuffer\u0027s buffer.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@966385 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "da50d552321c8bcf1108ebaf2ef21c08bf77956d",
      "tree": "ddff9bdee3c6dbb1e81ea8a89911f8223174a295",
      "parents": [
        "99f2ab7790003138124a5791d624ed5651e4908c"
      ],
      "author": {
        "name": "Andrew McGeachie",
        "email": "geechorama@apache.org",
        "time": "Wed Jul 21 19:14:44 2010 +0000"
      },
      "committer": {
        "name": "Andrew McGeachie",
        "email": "geechorama@apache.org",
        "time": "Wed Jul 21 19:14:44 2010 +0000"
      },
      "message": "THRIFT-688. Make TBinaryProtocol obey cocoa memory allocation conventions\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@966369 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "99f2ab7790003138124a5791d624ed5651e4908c",
      "tree": "2ed248ed7ea138be39c8f8e9d2a11145c06a8ce6",
      "parents": [
        "127909c1c948e9248f7ed98f0b5e3a7088d89ca3"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Jul 13 23:11:04 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Jul 13 23:11:04 2010 +0000"
      },
      "message": "THRIFT-818. java: Async client doesn\u0027t send method args\n\nThis patch amends the tests and fixes the bug.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@963901 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "127909c1c948e9248f7ed98f0b5e3a7088d89ca3",
      "tree": "f9891fc53a4706279a7a912d1ce7749502f6a3ed",
      "parents": [
        "95c005a7c69d106591202cfa6eded6354608b307"
      ],
      "author": {
        "name": "T Jake Luciani",
        "email": "jake@apache.org",
        "time": "Sat Jul 10 14:58:51 2010 +0000"
      },
      "committer": {
        "name": "T Jake Luciani",
        "email": "jake@apache.org",
        "time": "Sat Jul 10 14:58:51 2010 +0000"
      },
      "message": "THRIFT-813: fix for broken list deserialization\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@962853 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "623594749c76f65bf964a5dc517128f207d25b42",
      "tree": "2a71297aae11f3b681fa10c215f060dcf6596566",
      "parents": [
        "162b3ac6465d598e834609c8fae5b341f8e941d8"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Jun 24 20:34:34 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Jun 24 20:34:34 2010 +0000"
      },
      "message": "THRIFT-160. csharp: Created THttpTransport for the C# library based on WebHttpRequest\n\nThis patch adds a new THttpTransport to the C# library and adds some related changes to the Makefile and csproj.\n\nPatch: Michael Greene and Todd Gardner\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@957708 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "162b3ac6465d598e834609c8fae5b341f8e941d8",
      "tree": "6d546685b4c03ba11ca5e13b4d5f3f7b41df6ea9",
      "parents": [
        "656683c776f594da98b8df6d00fcb2a316d56171"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Jun 23 21:17:48 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Jun 23 21:17:48 2010 +0000"
      },
      "message": "THRFIT-804. java: CompareTo is broken for unions set to map, set, or list\n\nThis patch fixes TUnion\u0027s compareTo, and factors out the standard part of the comparison to TBaseHelper.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@957350 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c07057e49ff8a2a1d2b772cf8655f55b01893350",
      "tree": "26a275eaeb58c282e143781aae1f19eeb67735e8",
      "parents": [
        "b7887b860bb37148761a81b34f1302939f0329cd"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri Jun 11 17:57:32 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri Jun 11 17:57:32 2010 +0000"
      },
      "message": "THRIFT-528. perl: add PERL_PREFIX to configure.ac\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@953796 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b7887b860bb37148761a81b34f1302939f0329cd",
      "tree": "c6ec8fc984fe5ba6b9ed29b8f7295af227533a99",
      "parents": [
        "d58ccec66090afbbef68471cb635ad731ef03319"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Jun 09 21:30:54 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Jun 09 21:30:54 2010 +0000"
      },
      "message": "THRIFT-789.  Files missing proper Apache license header\n\nAdded the Apache license header to a bunch of files that were missing it.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@953167 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d58ccec66090afbbef68471cb635ad731ef03319",
      "tree": "d1481420fba82e50ff18e7ec2511cc2d4dd86151",
      "parents": [
        "7ceba947212b6709adac7395a29d39376c50c9a4"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed May 26 16:34:48 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed May 26 16:34:48 2010 +0000"
      },
      "message": "THRIFT-768. java: Async client for Java\n\nThis patch adds an implementation of a fully-asynchronous client that makes use of NIO. Stubs for the async method calls are generated along with the existing synchronous ones.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@948492 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "7ceba947212b6709adac7395a29d39376c50c9a4",
      "tree": "10ec3b3cc830888a99ff727938c0a856e34a2964",
      "parents": [
        "d09f09c89d626f145bf429d2e5f0431ea42ea2b3"
      ],
      "author": {
        "name": "Andrew McGeachie",
        "email": "geechorama@apache.org",
        "time": "Wed May 19 15:00:26 2010 +0000"
      },
      "committer": {
        "name": "Andrew McGeachie",
        "email": "geechorama@apache.org",
        "time": "Wed May 19 15:00:26 2010 +0000"
      },
      "message": "THRIFT-733. Don\u0027t use scripting bridge extension\u0027s className method because it\u0027s not available on iPhone.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@946208 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d09f09c89d626f145bf429d2e5f0431ea42ea2b3",
      "tree": "40c79ca0081433b63fea0eecd3441bf36d457080",
      "parents": [
        "9e2fd7987db241b5f35967e157223b398349b07e"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue May 18 21:32:16 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue May 18 21:32:16 2010 +0000"
      },
      "message": "THRIFT-784. erl: Fix two problems with \"make install\"\n\n- Support DESTDIR.\n- Pass proper arguments to install.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@945898 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9e2fd7987db241b5f35967e157223b398349b07e",
      "tree": "383c3be13eb70d040cb115c5be92c05f8466cc7c",
      "parents": [
        "b6657f142e86135fea5d3352f7155165744a7282"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue May 18 16:52:48 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue May 18 16:52:48 2010 +0000"
      },
      "message": "THRIFT-646. erlang: Misc build cleanups\n\n- Use AC_ERLANG_PATH_ERLC to find erlc, instead of the generic\n  AC_PATH_PROG.\n- Also check for erl, just in case it is used internally by checks.\n- Use AC_ERLANG_SUBST_INSTALL_LIB_SUBDIR instead of manual hackery to\n  find the location where Erlang libraries should be installed.  (This\n  doesn\u0027t use the discovered version of Erlang, though.  See\n  http://lists.gnu.org/archive/html/bug-autoconf/2010-05/msg00003.html .)\n- Minor style changes in Makefile.am\n- Remove some hacks we were using in the old makefile that were\n  necessary because we were not using automake.\n- Remove ebin in a \"maintainer-clean-local\" rule to avoid shadowing the\n  default \"maintainer-clean\" rule which handles MAINTAINERCLEANFILES.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@945744 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "3f0b526d2d1893807e2bcfef60af24cbca6a7bbf",
      "tree": "dc9a80c0b499042d75deb29e6037a79024db0f8e",
      "parents": [
        "fb90e77e4509a639390ecb3e435cf8620340676b"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed May 12 21:31:58 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed May 12 21:31:58 2010 +0000"
      },
      "message": "THRIFT-459. Ruby installation always tries to write to /Library/Ruby/site\n\nThis patch adds a RUBY_PREFIX option similiar to JAVA_PREFIX or PY_PREFIX.\n\nPatch: Matthieu Imbert\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@943698 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "fb90e77e4509a639390ecb3e435cf8620340676b",
      "tree": "803a4ea60cc179c9ab1fc5996180f0c5b29bf4e3",
      "parents": [
        "f5d650a5a07e579f045617238995efc834b4f648"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed May 12 20:54:07 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed May 12 20:54:07 2010 +0000"
      },
      "message": "THRIFT-774. java: TDeserializer should provide a partialDeserialize method for primitive types\n\nThis patch adds partialDeserialize* methods for each of the supported Thrift primitives.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@943679 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f5d650a5a07e579f045617238995efc834b4f648",
      "tree": "f66b7fe0c41f9eb8b25ad1d9ee74e2446140793e",
      "parents": [
        "8f293f94c8fc05e2c29ff66891836b8ded4f0f8e"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri May 07 20:08:06 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri May 07 20:08:06 2010 +0000"
      },
      "message": "THRIFT-373. Include js and as3 libraries in release tarballs\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@942198 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8f293f94c8fc05e2c29ff66891836b8ded4f0f8e",
      "tree": "fb2cb3b06a4d19ceb3f5e5dc5e7f765541f217dd",
      "parents": [
        "1873fed34248698975f94d3f7c23afd7491a04c5"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri May 07 20:08:03 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri May 07 20:08:03 2010 +0000"
      },
      "message": "Clean up a little bit of extra whitespace\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@942197 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "1873fed34248698975f94d3f7c23afd7491a04c5",
      "tree": "91b243c4b2904d74fda0553a8de7eb2d9b483a30",
      "parents": [
        "c8ee35805dc23143a8e0e774cee497deea4fa97d"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue May 04 16:32:33 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue May 04 16:32:33 2010 +0000"
      },
      "message": "THRIFT-647. php: Add license header and fix style in Makefile.am\n\nThe attachment was made with the \"licensed for inclusion\" option, so it\nshould get a standard Apache license header.  Our other makefiles use\n$() style for variables and don\u0027t include extra spaces before\nbackslashes.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@940936 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "7173bd96bd7002d3b4ef86f02877b83d80b6c83b",
      "tree": "e1546ec73bc61afb0ed1fe3809116727ea3f68ae",
      "parents": [
        "6a681873383b931c82f5a4ddafb0c58547516eca"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sun May 02 22:54:22 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sun May 02 22:54:22 2010 +0000"
      },
      "message": "THRIFT-646. erl: Erlang library is missing install target\n\nThis patch adds a new install target to the erlang makefile. It also converts the Makefile to Makefile.am\n\nPatch: Anthony Molinaro\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@940326 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "6a681873383b931c82f5a4ddafb0c58547516eca",
      "tree": "26d49d0407697f3138523636eb6024ed1f470424",
      "parents": [
        "06491d7bb591f8b55d4be6b116b246c56af66511"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sun May 02 22:39:31 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sun May 02 22:39:31 2010 +0000"
      },
      "message": "THRIFT-647. php: PHP library is missing install target\n\nThis patch adds a \u0027make install\u0027 target to a new PHP makefile. \n\nPatch: Anthony Molinaro\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@940325 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "06491d7bb591f8b55d4be6b116b246c56af66511",
      "tree": "be20e37391a27825bfdca6f29b42821943d744ea",
      "parents": [
        "adf5f19c541deeeb5fc9f695c61378e4490745a7"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat May 01 13:45:38 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat May 01 13:45:38 2010 +0000"
      },
      "message": "THRIFT-765. java: Revert the changes applied by THRIFT-765, as they appear to be unstable\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@940013 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "12abe949779c5eb318ae616695ce02385b728bce",
      "tree": "12ee6b48bbdcebb021aa2abfe5f73a82986258f2",
      "parents": [
        "cb6d9708e2673b92aec3ee6bbff7e67b5b0a171f"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Apr 30 21:35:38 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Apr 30 21:35:38 2010 +0000"
      },
      "message": "THRIFT-765. java: Improved string encoding and decoding performance\n\nThis patch fixes a regression caused by the previous \u0027fast\u0027 implementation, in particular, dealing with unicode characters that need to be encoded as surrogate pairs. The performance stays about the same.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@939822 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "cb6d9708e2673b92aec3ee6bbff7e67b5b0a171f",
      "tree": "f5249c2a1acce487a4d5d27b2e870f3f3a6582c5",
      "parents": [
        "332a625118c87d1ea3540aefff3f5ad8ddf8428b"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Apr 29 18:14:54 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Apr 29 18:14:54 2010 +0000"
      },
      "message": "THRIFT-438. py: Add support for Twisted.web in servers and clients\n\nThis patch adds a Twisted.web resource that can be used for processing incoming Thrift requests over HTTP\n\nPatch: Esteve Fernandez\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@939413 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "332a625118c87d1ea3540aefff3f5ad8ddf8428b",
      "tree": "69453ce26776227d1515083b0ef313a9bc9f74f8",
      "parents": [
        "abfc54fa0689f8257a1612df39f1f25d3fe0c560"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Apr 29 17:08:17 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Apr 29 17:08:17 2010 +0000"
      },
      "message": "THRIFT-766. java: Propagate TSocket timeout to connect\n\nThis patch makes sure the specified timeout is used when opening connections, too.\n\nPatch: David Helder\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@939380 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "abfc54fa0689f8257a1612df39f1f25d3fe0c560",
      "tree": "0e0dd974c99d0775a08b511d7b082ea8ba4ffb13",
      "parents": [
        "b80024d686a3e2b7f62c68d45bd606e01f0a9ef4"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Apr 29 00:33:34 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Apr 29 00:33:34 2010 +0000"
      },
      "message": "java: add another testcase to TestUtf8Helper\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@939142 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b80024d686a3e2b7f62c68d45bd606e01f0a9ef4",
      "tree": "42c326d07705af2dc2755fac07063737acf7e6b2",
      "parents": [
        "7e36df1c07dda74187ad53ea1ff2d037fb3a67e5"
      ],
      "author": {
        "name": "Andrew McGeachie",
        "email": "geechorama@apache.org",
        "time": "Wed Apr 28 17:43:45 2010 +0000"
      },
      "committer": {
        "name": "Andrew McGeachie",
        "email": "geechorama@apache.org",
        "time": "Wed Apr 28 17:43:45 2010 +0000"
      },
      "message": "THRIFT-762. Include CoreServices.h if we are not compiling on the iPhone.\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@939024 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "7e36df1c07dda74187ad53ea1ff2d037fb3a67e5",
      "tree": "6b58c79883c5bc21fa5815bf33a21c220bd3b7d0",
      "parents": [
        "a005777ae5dabb49ade7d6d6306bd3391210e3aa"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Apr 26 19:37:53 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Apr 26 19:37:53 2010 +0000"
      },
      "message": "THRFIT-601. java: Add readLength support to TBinaryProtocol.Factory\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@938206 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a005777ae5dabb49ade7d6d6306bd3391210e3aa",
      "tree": "83a0a12a75fb50b7ef9ab74e3a5d69420bd00112",
      "parents": [
        "97d21c853d543dbba497650badcf10334910edaf"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Apr 26 19:37:44 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Apr 26 19:37:44 2010 +0000"
      },
      "message": "THRIFT-601. java: Allow a maximum frame size for TFramedTransport\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@938205 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "719ab84318ae1c7c59da5657ef0ad41dc4c3f921",
      "tree": "69d5e848ea56867b9c82e837ad3e9c109b233dc4",
      "parents": [
        "0137af6bf1e37762db319a08d2d6921d6897e21f"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sun Apr 25 15:20:02 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sun Apr 25 15:20:02 2010 +0000"
      },
      "message": "THRIFT-765. java: Improved string encoding and decoding performance\n\nThis change makes Java\u0027s string/utf8 encoding and decoding about 2x faster.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@937812 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "321eb7a2bdedde79102dfcf0fcefd99f45ec2075",
      "tree": "38b00b3a9a543390a7bdb67e8f858c2435eeb5bf",
      "parents": [
        "15e2930ccf8fd4932bd700f7dd9ba433819368d5"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Apr 22 21:17:39 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Apr 22 21:17:39 2010 +0000"
      },
      "message": "THRIFT-518. as3: Add the AS3 generator and library\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@937067 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "15e2930ccf8fd4932bd700f7dd9ba433819368d5",
      "tree": "b74cfd0eaf3ec53387c7603327007b17f32dc0a5",
      "parents": [
        "60229785cb858c919f832e8ce8155c7c4ce06012"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Apr 22 01:05:02 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Apr 22 01:05:02 2010 +0000"
      },
      "message": "THRIFT-761. java: Include the symbolic name of a typedef field in the field metadata\n\nThis patch adds a new isTypedef() method to FieldValueMetaData and converts MetaDataTest to a testcase in TestStruct.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@936588 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "505b4c1e98bdb07d4f047cbe6d75a604750c2881",
      "tree": "beded6c11ea1158dc714006246e794156af4b67e",
      "parents": [
        "0fab12e9681581d4919cb7afe21d853c9e300614"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Apr 22 00:26:41 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Apr 22 00:26:41 2010 +0000"
      },
      "message": "java: stop trying to run the removed UnionTest\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@936582 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "0fab12e9681581d4919cb7afe21d853c9e300614",
      "tree": "ff0c076e5852739ebe29a4167b41df06f96c435f",
      "parents": [
        "3292b3fed9665b04d6bfa2c8824af20332fbef39"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Apr 22 00:22:34 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Apr 22 00:22:34 2010 +0000"
      },
      "message": "THRIFT-759. java: Make TBase implement Comparable\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@936581 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "3292b3fed9665b04d6bfa2c8824af20332fbef39",
      "tree": "10a8607c3b0fd96a6e198ee9189c8b3826afb90e",
      "parents": [
        "eb598b8c899dcf267f6da6c4c137115af9cb2070"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Apr 15 07:01:51 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Apr 15 07:01:51 2010 +0000"
      },
      "message": "java: convert UnionTest to TestTUnion using JUnit\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@934300 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "eb598b8c899dcf267f6da6c4c137115af9cb2070",
      "tree": "61ee8395d4de65811e49fcddc6e6358dfc438a01",
      "parents": [
        "33da6432202075cad3f91881e859778f89a9765c"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Apr 14 17:33:01 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Apr 14 17:33:01 2010 +0000"
      },
      "message": "THRIFT-755. php: Fix compilation as a static module\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@934036 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "33da6432202075cad3f91881e859778f89a9765c",
      "tree": "6c1824335a43b4122a687fa8332857671ed404f0",
      "parents": [
        "49b38015a672613c83d7c7a2954a9eb331b59a5a"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Apr 05 16:28:21 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Apr 05 16:28:21 2010 +0000"
      },
      "message": "THRIFT-754. java: Improvements to varint reading in Compact Protocol\n\nThis patch makes readVarint32 about 30% faster and readVarint64 about 25% faster (when using transports that support direct buffer access).\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@930898 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b1f7f7973bed233ec6f21807dfd774f7b600c5ec",
      "tree": "2e3468f58310b9bb534a51ff7abc461a6e493408",
      "parents": [
        "88569a25d1e8380574de16be541f9e6e18bbca12"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat Apr 03 23:19:52 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat Apr 03 23:19:52 2010 +0000"
      },
      "message": "THRIFT-746. java: Generated services Iface/Client inner classes do not derive from base classes\n\nThis patch causes all generated Client classes to inherit from TServiceClient, an interface that provides a way to get the protocols the Client is using. Also, it causes a new TServiceClientFactory implementation to generated for each Service, which provides a generic, reflection-free way to get Clients. These changes make it easier to build generic pools of Client objects.\n\nPatch: Mathias Herberts\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@930601 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "88569a25d1e8380574de16be541f9e6e18bbca12",
      "tree": "97be75e7fd50fdd11a0b03b407a263016e4bf258",
      "parents": [
        "75526c999ee741b8d30de4bffcb790ff52700bbe"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat Apr 03 22:52:03 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat Apr 03 22:52:03 2010 +0000"
      },
      "message": "THRIFT-752. java: Use a faster Stack implementation in TCompactProtocol\n\nThis patch adds ShortStack, an internal implementation of Stack that works directly on primitive short objects, and makes TCompactProtocol use this. A brief performance test shows that this makes serialization about 8% faster and deserialization about 15% faster, though the actual gain you see will be dependent on the nature of your structs - the more levels, the more gain.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@930593 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "75526c999ee741b8d30de4bffcb790ff52700bbe",
      "tree": "306b817f76fce4a52f8f0155a8d1eba9a4a7aaae",
      "parents": [
        "c81a10a432c9d272c3d4bc461d5070b9c4062084"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat Apr 03 20:25:04 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat Apr 03 20:25:04 2010 +0000"
      },
      "message": "java: Enhance TMemoryInputTransport to allow operation on specific range of a buffer rather than the whole thing. This will allow us to avoid making array copies in some instances.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@930574 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c81a10a432c9d272c3d4bc461d5070b9c4062084",
      "tree": "f3899e3b9fbc3b4ded8985657f746aaed744fc21",
      "parents": [
        "c5de56cdfdaf7491fea99b52758231bb7ddea36e"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat Apr 03 19:45:20 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat Apr 03 19:45:20 2010 +0000"
      },
      "message": "java: add a basic test for TMemoryInputTransport\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@930568 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c5de56cdfdaf7491fea99b52758231bb7ddea36e",
      "tree": "e145af20ec15f17bc88a422093a5020bcc913a92",
      "parents": [
        "ea7910faf3abc85e90ba88bc9615b2fa3e8efd2d"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat Apr 03 15:18:47 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat Apr 03 15:18:47 2010 +0000"
      },
      "message": "java: reorganize ProtocolTestBase slightly\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@930530 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "5557beffaecbd7b97a90ed38afc49c2a091aadba",
      "tree": "9bc037d9dea95cb12a2c7f6accc1792e207aa5fb",
      "parents": [
        "b35240f4d585a4f0415bf64fca5a39e0008380eb"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Mar 29 23:57:09 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Mar 29 23:57:09 2010 +0000"
      },
      "message": "THRIFT-723: java: Thrift buffers with set and map types in Java should implement Comparable\n\nThis makes structs that contain sets and maps in their hierarchy Comparable.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@928944 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b35240f4d585a4f0415bf64fca5a39e0008380eb",
      "tree": "c88f590d2a0cb83ed1235aad37be5d871ea80695",
      "parents": [
        "547edc7ae0fe871d452ecb34129c2bb4a1778014"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Mar 29 21:12:10 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Mar 29 21:12:10 2010 +0000"
      },
      "message": "java: Make TProtocolFactory extend Serializable.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@928901 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "547edc7ae0fe871d452ecb34129c2bb4a1778014",
      "tree": "c1f75e8b1c44fea62c90e4b48fd7890037f9b2d0",
      "parents": [
        "e5e5c7b9d2b4537d3477b7916e00a14a18b2f169"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sun Mar 28 21:02:38 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sun Mar 28 21:02:38 2010 +0000"
      },
      "message": "THRIFT-363. java: Maven Deploy\n\nThis commit adds changes to build.xml so that we can generate a POM file and publish the artifact to the Apache Maven repo. For now, we haven\u0027t published yet - we\u0027ll do that at the next release.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@928494 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e5e5c7b9d2b4537d3477b7916e00a14a18b2f169",
      "tree": "deb4bc654f23b13bf03d53e2a640d0f4a3ad9a56",
      "parents": [
        "981869c6ac4a6d9d470407bc598f18e05310447c"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat Mar 27 06:24:12 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat Mar 27 06:24:12 2010 +0000"
      },
      "message": "java: Move contents of CompareTest into TestStruct; delete old version\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@928159 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "981869c6ac4a6d9d470407bc598f18e05310447c",
      "tree": "fc6a596149831d8d847b19faef1cb6ff8c81863c",
      "parents": [
        "c23e09e7b012f9fbdba71e2dd8baabbfb1c4d70a"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat Mar 27 06:13:09 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat Mar 27 06:13:09 2010 +0000"
      },
      "message": "java: Move contents of DeepCopyTest to TestStruct; delete old version\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@928157 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c23e09e7b012f9fbdba71e2dd8baabbfb1c4d70a",
      "tree": "ccc6fad9c5bef467a8cfd6cb56c1aa742b1de898",
      "parents": [
        "d10f2bb4803663aa3921e1dd50b11fd521df807f"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat Mar 27 05:56:26 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat Mar 27 05:56:26 2010 +0000"
      },
      "message": "java: Move contents of IdentityTest into TestStruct\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@928153 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d10f2bb4803663aa3921e1dd50b11fd521df807f",
      "tree": "0996743c633b7f33d1b82996d4c149e0e812ab59",
      "parents": [
        "dffa072afc5f5424dcec4744ef27021d7094fa3b"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Mar 26 23:45:41 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Mar 26 23:45:41 2010 +0000"
      },
      "message": "java: get rid of old OverloadNonblockingServer.java (since it\u0027s not actually a test), move Fixtures up to o.a.thrift\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@928103 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "dffa072afc5f5424dcec4744ef27021d7094fa3b",
      "tree": "b1c214f0cd827c59737d0177dc2057e4d44ea525",
      "parents": [
        "dd6dc838d902c3bc840d1c079e4de87760db0d38"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Mar 26 23:38:23 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Mar 26 23:38:23 2010 +0000"
      },
      "message": "java: convert PartialDeserializeTest to testcase of TestTDeserializer (new junit test); add apache header to a few of the new test files.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@928101 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "dd6dc838d902c3bc840d1c079e4de87760db0d38",
      "tree": "b793e15ead3969e4a5d77f83caabc454bed25786",
      "parents": [
        "bf0595fcb871dc496c35aa453713ae04bd1f9017"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Mar 26 23:30:35 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Mar 26 23:30:35 2010 +0000"
      },
      "message": "java: convert Framed Transport test to JUnit, remove old version of test\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@928100 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "bf0595fcb871dc496c35aa453713ae04bd1f9017",
      "tree": "d92e9608714c39c04bd864ff2b8b1e22458c01d4",
      "parents": [
        "61a1ad4d9d72d57387f1626edbeed0cbdaac2fb9"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Mar 26 16:59:46 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Mar 26 16:59:46 2010 +0000"
      },
      "message": "java: Convert TJSONProtocol test to JUnit, making a few minor changes to ProtocolTestBase in the process.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@927967 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "61a1ad4d9d72d57387f1626edbeed0cbdaac2fb9",
      "tree": "e1d3b54deb556a4dd4b1b3ddfc6abbf9f7ca3365",
      "parents": [
        "98c45872f938eb746186ccb437b9e3a51127e82f"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Mar 26 05:59:59 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Mar 26 05:59:59 2010 +0000"
      },
      "message": "java: Stop trying to run the deprecated version of binary and compact protocol tests, since they don\u0027t exist anymore\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@927701 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "98c45872f938eb746186ccb437b9e3a51127e82f",
      "tree": "cab825c83203b5dbd81c88ce438151f91550c143",
      "parents": [
        "5af1b97173bd8cd2dda9529d441ca68960f5ff61"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Mar 26 05:58:34 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Mar 26 05:58:34 2010 +0000"
      },
      "message": "java: Convert Binary and Compact protocol tests to JUnit\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@927699 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "5af1b97173bd8cd2dda9529d441ca68960f5ff61",
      "tree": "8b85b83ee41d6a50812333c419dda006d89f978e",
      "parents": [
        "951e7e24800c0f0c4cfcdef5d634b1e16536eed0"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Mar 26 05:12:27 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Mar 26 05:12:27 2010 +0000"
      },
      "message": "THRIFT-719. java: Update Nonblocking and HsHa server to avoid an extra buffer copy\n\nThis patch causes Nonblocking and HsHa servers to explicitly enforce use of TFramedTransport and make sure that the actual invoker is deserializing from a TMemoryInputTransport. This should provide a substantial boost in performance.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@927695 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "951e7e24800c0f0c4cfcdef5d634b1e16536eed0",
      "tree": "82e20a1b25f22c85b021fe37601bcfaf97930ffd",
      "parents": [
        "15b7b287947dd348e2801ead6b1a33b2a2d6b31b"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Mar 26 05:05:59 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Mar 26 05:05:59 2010 +0000"
      },
      "message": "java: Add JUnit to ivy config. Convert Nonblocking server tests to use JUnit. Framework laid to convert the remainder of the tests.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@927693 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "27c97857582b79f9ca684e03641d1cf81e8916e3",
      "tree": "c74bd75a15eed2789278f92bc59f3755e8435a73",
      "parents": [
        "318a328aec8062d6edf5efcd41dc8702a8595253"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 23 03:50:16 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 23 03:50:16 2010 +0000"
      },
      "message": "THRIFT-739. java: TCompactProtocol isn\u0027t suitable for reuse in partialDeserialize\n\nThis patch changes TProtocol to support a reset() method that should clear any internal state. Stateless protocols can ignore it; stateful ones should implement it. TDeserializer has been updated to take advantage of this method.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@926460 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "318a328aec8062d6edf5efcd41dc8702a8595253",
      "tree": "3e2803b6f9d64d6639b8ef53643594384fdb90a7",
      "parents": [
        "f35a9b9152b66fc47c36ff25240e7704172d18ae"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Mar 22 02:34:57 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Mar 22 02:34:57 2010 +0000"
      },
      "message": "THRIFT-736. cpp: Check for availability of pthread_mutex_timedlock\n\nr920679 introduced a call to pthread_mutex_timedlock, which is not\navailable on all UNIX variants.  In particular, it is missing on Mac OS.\nAdd a preprocessor check for the relevant feature macro.  If it fails,\njust use a trylock.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@925940 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f35a9b9152b66fc47c36ff25240e7704172d18ae",
      "tree": "a3c27273ac062ae3b527cc11406f4db7b566caba",
      "parents": [
        "3f4ca0e8fd63ed0fde1a5a00097144384436f9b2"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Mar 17 16:47:41 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Mar 17 16:47:41 2010 +0000"
      },
      "message": "THRIFT-738. java: TCompactProtocol throws RuntimeException when it can\u0027t identify a type identifier\n\nThis patch causes it to throw TProtocolException instead.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@924364 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "5f013bb45d0c380b034c2099614ab1ba5eaea021",
      "tree": "071d8b8681eea052bc052c8a2961163d64b85872",
      "parents": [
        "767c1a90fed87d36aaf077322bb9225eff98ee52"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Mar 10 22:11:26 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Mar 10 22:11:26 2010 +0000"
      },
      "message": "cpp: Fix build problems introduced by r920682\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@921591 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "767c1a90fed87d36aaf077322bb9225eff98ee52",
      "tree": "74d9259050c94d86340354fad23257060f67aa10",
      "parents": [
        "450c240592b35c9706832fc853e0345cf5800c0d"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:28 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:28 2010 +0000"
      },
      "message": "cpp: Minor TSocketPool cleanups\n\n- Make sure the underlying socket is always closed.\n- Don\u0027t reconnect on repeated calls to open.\n- Move some code outside of a try block.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920691 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "450c240592b35c9706832fc853e0345cf5800c0d",
      "tree": "4e66c1262e215846a47111a29cdd5b9443ffc6ed",
      "parents": [
        "472fffb37530256702006ef00b6fcf949ecbc26c"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:26 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:26 2010 +0000"
      },
      "message": "cpp: Make an implicit virtual declaration explicit\n\nThis changes nothing since it\u0027s already declared virtual in the parent,\nbut this is clearer.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920690 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "472fffb37530256702006ef00b6fcf949ecbc26c",
      "tree": "7dcbdd2a01874a87d1831d03f5a8cea3e0c76633",
      "parents": [
        "ccd4bdb2aebee869c537c8a38fd1c00e9ac706b3"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:24 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:24 2010 +0000"
      },
      "message": "cpp: Don\u0027t leak memory on realloc failure in TNonblockingServer\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920689 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ccd4bdb2aebee869c537c8a38fd1c00e9ac706b3",
      "tree": "6101fccc2ad876b0a713bcb12cc99ed37790e268",
      "parents": [
        "336c29dbbeca40543a028c731be6d5c26aeeb363"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:21 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:21 2010 +0000"
      },
      "message": "cpp: Implement peek() for TFileTransport\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920688 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "336c29dbbeca40543a028c731be6d5c26aeeb363",
      "tree": "08468c3b5e5adee97a14735944ca9b1a4f134a7f",
      "parents": [
        "8af018bf13789a48af8a49827a0d18d26925d73f"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:19 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:19 2010 +0000"
      },
      "message": "cpp: Prevent TFileTransport seekToEnd from leaking memory\n\nIn seekToEnd we loop on readEvent to skip through the last chunk, but\nthe complete events returned are disowned by readState_ and therefore\nmust be freed by the caller.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920687 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8af018bf13789a48af8a49827a0d18d26925d73f",
      "tree": "594eac09f6b2be97fc19fb18992468ec6d570ed1",
      "parents": [
        "1c20c871d218f479e101f6e9fb25231189d1bf72"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:17 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:17 2010 +0000"
      },
      "message": "cpp: Prevent TFileTransport from throwing uncaught exceptions\n\nFilleTransport::writerThread throws exceptions. This function is run\ninside the writer thread, so these exceptions are not caught. When these\nexceptions happen, the system aborts.\n\nThe fix is to first eliminate all the throw commands inside this function. In\naddition, add some error recovery logic into the code: whenever an IO error\nhappens, we enter into an error recovery mode. Go to sleep for a few seconds\nthen try to reopen the file.\n\nNote: Currently, when errors happen, we drop events.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920686 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "1c20c871d218f479e101f6e9fb25231189d1bf72",
      "tree": "1929b75c9c431d890abe0810b4609b9ebcef084f",
      "parents": [
        "71a1530c74340e95a95a1b0b6c5699fbc082a9d9"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:14 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:14 2010 +0000"
      },
      "message": "cpp: Add setLowRTO to TSocket\n\nlow tcp RTO might mitigate TCP incast problems. Adding the setLowRTO\nfunction to TSocket allows us to experiment with a solution.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920685 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "71a1530c74340e95a95a1b0b6c5699fbc082a9d9",
      "tree": "fee7473fac0d403a4b8074b5991b2aa5f37c5ccc",
      "parents": [
        "eee98bede4e9934a0cdd32fcffcd0cc659b4d09a"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:12 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:12 2010 +0000"
      },
      "message": "cpp: Fix memory corruption bug in TBufferedTransport::borrowSlow()\n\nOn one code path, the code would read data past the end of its buffer.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920684 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "eee98bede4e9934a0cdd32fcffcd0cc659b4d09a",
      "tree": "8198a0dbfc88c65db98fddf9a8a8872307435290",
      "parents": [
        "ac110e4f1cd87ce38fce06e61ef88bc84ac2edb0"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:10 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:10 2010 +0000"
      },
      "message": "cpp: Disable IPV6_V6ONLY only if the socket is an AF_INET6 socket\n\nSome systems may disable IPV6 completely.  Ensure that we only disable\nIPV6_V6ONLY if the socket is AF_INET6\n\nNo longer see the warning:\n\nThrift: Wed Jul 22 18:08:36 2009 TServerSocket::listen() IPV6_V6ONLY Protocol not available\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920683 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ac110e4f1cd87ce38fce06e61ef88bc84ac2edb0",
      "tree": "36ed0ff4d1a5a098f89eaeaf5571fe884e8cffd6",
      "parents": [
        "7a2065d3dbdf361bbbe8b66a5b03080c0e532403"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:07 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:07 2010 +0000"
      },
      "message": "cpp: Eliminate circular dependency between thrift libraries\n\nPreviously, Thrift.cpp contained TApplicationException, which was using\nTProtocol methods, defined in TProtocol.h.  This caused a circular\ndependency since libprotocol depends on Thrift.h.  This change moves\nTApplicationException into its own file.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920682 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "7a2065d3dbdf361bbbe8b66a5b03080c0e532403",
      "tree": "35318367c65d8a46400ab0fec57102588e96a095",
      "parents": [
        "4cc0755b3382abc3e17ebba0ab4c2c78b9a8bbd7"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:04 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:04 2010 +0000"
      },
      "message": "cpp: Add profiling hooks to Mutex, ReadWriteMutex() classes\n\nExtend the Thrift C++ Concurrency library by allowing a user to register\na callback and a sample rate for lock primitive contention profiling.\nThe callback will be invoked approximately once every sampleRate calls\nto Mutex::lock(), Mutex::timedlock(), ReadWriteLock::acquireRead(), or\nReadWriteLock::acquireWrite().\n\nThe callback receives a pointer to the mutex responsible and the time\nwaited on the lock in micros (whether the lock was successfuly acquire\nor not).  The user can then implement a registry of his choice to\nlog/collect this data as needed.\n\nThis can all be easily compiled out if it harms performance.  By\ndefault, there is no profiling callback, so the overhead is minimal\n(one branch).\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920681 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4cc0755b3382abc3e17ebba0ab4c2c78b9a8bbd7",
      "tree": "c8fcb43e67e5787772f737062e436d6e25ca8220",
      "parents": [
        "4e19f1914e49db4b7913ff0f5af8eec51caee875"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:01 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:01 2010 +0000"
      },
      "message": "cpp: Fix a race/deadlock in ThreadManager\n\nWhen removing a task from the pending queue, we were only notifying a\nblocked thread waiting to enqueue a task if the number of pending tasks\nwas exactly one less than the limit.  However, if two tasks are finished\nat about the same time, this can result in two spots being freed up with\nonly one notify.  With this change, we always notify on task completion,\neliminating the race/deadlock.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920680 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4e19f1914e49db4b7913ff0f5af8eec51caee875",
      "tree": "64db18658f59cb9411dc32d8c9a764131e8c82f8",
      "parents": [
        "6c1ee214c447bef02c3aa091ff5706503d1b1004"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:59 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:59 2010 +0000"
      },
      "message": "cpp: non-blocking add for ThreadManager\n\nIt\u0027s rare for the ThreadManager mutex to be contended, but it is\npossible.  For nonblocking applications, it is necessary to have a\nstrict timeout for the lock acquisition.  With this change, that timeout\nis enforced.  Also add timeout parameters to Mutex::lock and\nGuard::Guard to support this feature.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920679 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "6c1ee214c447bef02c3aa091ff5706503d1b1004",
      "tree": "1a23e82355b5cadd2ea675cc37c39313f54d353e",
      "parents": [
        "a1a15112fed5f7ec934a352920b4c535941fd1ab"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:56 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:56 2010 +0000"
      },
      "message": "cpp: Extend FunctionRunner to support periodic calls (in a thread)\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920678 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a1a15112fed5f7ec934a352920b4c535941fd1ab",
      "tree": "5aca787d7a2489cbebb88fed005c97a47ac4eb84",
      "parents": [
        "eed92991cf064f7c89a911be734d51619150d6bf"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:54 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:54 2010 +0000"
      },
      "message": "cpp: TSocket: call a second gettimeofday only for error checking\n\nPreviously, we called gettimeofday twice for every send, which is\ncostly.  Now, we only make the second call if send fails with EAGAIN.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920677 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "eed92991cf064f7c89a911be734d51619150d6bf",
      "tree": "f2e05dedb6daeff59fdfa1609d30056216d4a2bc",
      "parents": [
        "8106ba617af50f2a325fd6ce01a1a995cbd320a9"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:52 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:52 2010 +0000"
      },
      "message": "cpp: TSocketPool: Optimize the case of a single server in the pool.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920676 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8106ba617af50f2a325fd6ce01a1a995cbd320a9",
      "tree": "67bf9253e4e6f58119ce830092ef73a1a2fa2b90",
      "parents": [
        "9c22ba41033a3f632df9db1c871cbf844e79824c"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:50 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:50 2010 +0000"
      },
      "message": "cpp: TSocketPool: make it possible to add servers by struct\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920675 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9c22ba41033a3f632df9db1c871cbf844e79824c",
      "tree": "f1345b9a32516d4f7863da36dbcb068692257af8",
      "parents": [
        "068f4169b9c2cd9f93ad32e99c5b0d5b786e0bc1"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:47 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:47 2010 +0000"
      },
      "message": "cpp: TTransport: set END_OF_FILE TException code if read returns 0\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920674 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "068f4169b9c2cd9f93ad32e99c5b0d5b786e0bc1",
      "tree": "da5926056c211612a1c1856e83fc7493f2af5f12",
      "parents": [
        "58e4d2c6e3b237825b573116d4e06781733ab5f5"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:45 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:45 2010 +0000"
      },
      "message": "cpp: TNonblockingServer: Allow unrun tasks to expire after a time limit\n\nEnhance ThreadManager to allow a expiration time interval to be assigned\nto tasks, and expire those tasks after that time limit has passed.\nEnhance TNonblockingServer to utilize this capability so it can be used\nfor overload resilience.\n\nNote: expired entries are only removed from the queue head, so the\nmechanism in ThreadManager may not do what you expect if you have\nheterogeneous expiration times. That\u0027s not an issue with\nTNonblockingServer (which will give all tasks the same limit) and might\nnot be in other cases where most tasks have the same limit and the rest\nexecute quickly. A full-up timeout queue would be more complex and have\ngreater overhead than that used here. It\u0027s unnecessary for the task at\nhand so I didn\u0027t go that route...\n\nThe TNonblocking interface is simple: a setTaskExpireTime() accepts a\n64-bit millisecond argument. 0 means infinite. A getTaskExpireTime()\naccessor completes the interface.\n\nThe ThreadManager interface involves an added argument to add() for the\nexpiration interval and a setExpireCallback() function for setting a\ncallback that is called for expired tasks (for this project this is\nnecessary to shut down the associated connection).\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920673 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "58e4d2c6e3b237825b573116d4e06781733ab5f5",
      "tree": "58baf86bf023662ae8c58d314f301b44ec1219d1",
      "parents": [
        "450e35d2a333a6883c4a7444d9687e9ebd1160dd"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:43 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:43 2010 +0000"
      },
      "message": "cpp: Log unexpected exceptions in TThreadPoolServer\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920672 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "450e35d2a333a6883c4a7444d9687e9ebd1160dd",
      "tree": "3ecd87d815ee076a751384a5e004a46ebc648ecb",
      "parents": [
        "9e8073c5cd71ad72f7603b36514af06cee09c830"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:41 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:41 2010 +0000"
      },
      "message": "cpp: Fix max TCP port number\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920671 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9e8073c5cd71ad72f7603b36514af06cee09c830",
      "tree": "6456dfabe60b407f7c700026512770e0620965da",
      "parents": [
        "e96fa5502f38d91e7c417343e4c504384fc84f31"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:39 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:39 2010 +0000"
      },
      "message": "Eliminate some trailing whitespace\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920670 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e96fa5502f38d91e7c417343e4c504384fc84f31",
      "tree": "99c93564471b280e9e74d089a824fdcd858b59b7",
      "parents": [
        "83b8fdac0ff52f1f1d9f96772b956c807f668593"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:37 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:37 2010 +0000"
      },
      "message": "cpp: Add enum and constructor to RWGuard to make read/write more visible\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920669 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "83b8fdac0ff52f1f1d9f96772b956c807f668593",
      "tree": "d4cecc242929b8313fa6abcb19aac9214937f0f4",
      "parents": [
        "a0dbfefbf3d09eebdc784f3fe6049c8bbc62a498"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:34 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:34 2010 +0000"
      },
      "message": "cpp: Fix for task completion notification deadlock under heavy server load\n\nAlong with insuring that the event loop is able to see task completion\nnotifications, we need to process pending notifications as soon as they\nare available to avoid filling the notification pipe (the pipe can hold\n512 notifications).\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920668 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a0dbfefbf3d09eebdc784f3fe6049c8bbc62a498",
      "tree": "17f873e6cd020a1dfbccb319229341c731698050",
      "parents": [
        "b9db49c6776bde3b06ce8a5ceb32c873f8de4592"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:32 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:32 2010 +0000"
      },
      "message": "cpp: TNonBlockingServer: Use separate monitor for max queue\n\nWe were using the same monitor for max queue size and empty queue, this\nmeant the notifies might be going to the wrong place.\n\nThis change significantly reduces the time spent in futex calls in\nloaded servers.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920667 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b9db49c6776bde3b06ce8a5ceb32c873f8de4592",
      "tree": "a6925b9e86822ef11fed77eacb2cd50aa0e072d3",
      "parents": [
        "28e88ecac1cab801112587068ee4fbc6de457e49"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:30 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:30 2010 +0000"
      },
      "message": "cpp: Let Monitors share Mutex instances\n\n- Let Monitor objects share a Mutex() instance so that more than one\n  condition can be implemented on top of a single mutex protecting an\n  important data structure.\n- Make Mutex and Monitor noncopyable\n- Add an accessor to Mutex() so the underlying pthread_mutex_t* can be\n  retrieved for passing to pthread_condwait\n- Change Monitor to use the actual Mutex class instead of creating a\n  naked pthread_mutex_t on its own\n- Add new constructors to Monitor\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920666 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "28e88ecac1cab801112587068ee4fbc6de457e49",
      "tree": "03bf1cc43953d72dc46fc7f2308aaa435926e61b",
      "parents": [
        "01fe15322f55a9aec5de6807fe0d4c54db7d79f6"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:27 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:27 2010 +0000"
      },
      "message": "cpp: Exit TNonBlockingServer on memmory allocation failure\n\nsetrlimit causes bad_alloc exceptions, but undefined behavior occurs if\nwe don\u0027t exit.  It is not typical for libraries to call exit, but it is\nnot clear what other behavior is possible.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920665 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "01fe15322f55a9aec5de6807fe0d4c54db7d79f6",
      "tree": "2f95d72f6b8f0fd8f544ce46367f1aeacf4069f9",
      "parents": [
        "e574a065a9ed100bda718582dc3378abc2933e78"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:25 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:25 2010 +0000"
      },
      "message": "cpp: TNonBlockingServer overload handling and optimizations\n\n- Establish a mechanism for TNonBlockingServer to handle overloads by\n  limiting the number of connections accepted or in-process.\n\n- Provide a framework for further work in handling server overloads.\n\n- Limit memory consumption of connection object pool.\n\n- Drop connections when overloaded.\n\n- Add overload-handling behavior allowing pending tasks to be dropped\n  from the front of the task queue (short of the ability to terminate\n  running tasks, these are the oldest tasks in the system and thus the\n  most likely to be beyond their freshness date).  This reduces the\n  chance of spending valuable CPU time processing a request that the\n  client has already timed out.\n\n- Uses a single persistent pipe() to communicate task completion instead\n  of constructing and monitoring a new socketpair() for every task in\n  the system.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920664 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "006260f07a49f74b1fe8fa7be39b0d34d14b8067",
      "tree": "69bdc1c11b213b0c3fb333c0c6b1965c498f1de6",
      "parents": [
        "c548b3dd6312e02df04ca822157c1e41193731c9"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:20 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:20 2010 +0000"
      },
      "message": "THRIFT-659. php: Make php_thrift_protocol handle std::exception cleanly\n\nAny std::exceptions thrown from within the extension will now be\nconverted into php exceptions.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920662 13f79535-47bb-0310-9956-ffa450edef68\n"
    }
  ],
  "next": "c548b3dd6312e02df04ca822157c1e41193731c9"
}
