)]}'
{
  "log": [
    {
      "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"
    },
    {
      "commit": "c548b3dd6312e02df04ca822157c1e41193731c9",
      "tree": "4806597aca784581d8f5b21cdd4083822af2e490",
      "parents": [
        "ff3d249d413448489095991be7ce3176dbb87722"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:18 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:18 2010 +0000"
      },
      "message": "THRIFT-475. python: Eliminate DeprecationWarning\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920661 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ff3d249d413448489095991be7ce3176dbb87722",
      "tree": "e6b71aa1ba4b99ff178bfb6fdde6e9b57289033a",
      "parents": [
        "bec15e5105cae849b8095210e6ed6deac09c443d"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:16 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:16 2010 +0000"
      },
      "message": "THRIFT-658. python: Add THttpClient.setTimeout()\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920660 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "bec15e5105cae849b8095210e6ed6deac09c443d",
      "tree": "6c3f22cadc4465d1c9ea1ee79a49ae107608dd0d",
      "parents": [
        "487fd2e0435db0326a60821bcc96e56fa2eee711"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:14 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:14 2010 +0000"
      },
      "message": "THRIFT-661. java: Detect EOF in TIOStreamTransport\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920659 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "487fd2e0435db0326a60821bcc96e56fa2eee711",
      "tree": "c27ba642e688b704c41aceea37e584757d64c349",
      "parents": [
        "4dd7801e90fe10a6614890f3d176716582b04233"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:11 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:11 2010 +0000"
      },
      "message": "THRIFT-657. java: Detect negative length in TBinaryProtocol\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920658 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d93c626131455fe5f8757fe3ee29d7f7a5c4fe22",
      "tree": "8194aace90f3c53096f585806acb16d4c8714a33",
      "parents": [
        "4ae8780c5c1e37c4c480a23f277a7942e3aada09"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 09 05:14:34 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 09 05:14:34 2010 +0000"
      },
      "message": "THRIFT-656. java:  TDeserializer.toString is misnamed\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920656 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4ae8780c5c1e37c4c480a23f277a7942e3aada09",
      "tree": "b4af0631a81b83a4fec3bd43ace98dd030e60e52",
      "parents": [
        "53c10e09e15b446e7213b341e8fddc79296f1d51"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 00:49:14 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 00:49:14 2010 +0000"
      },
      "message": "THRIFT-706. cpp: Fix memory leak of string_buf_ in TCompactProtocol\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920597 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a268019e85ac34b5b7a1c89d59288ecead5e6d97",
      "tree": "957d8d4fdb680f901bf3cc9bd328d2be8cc5d746",
      "parents": [
        "0f52f072013e8fcb85a8382a412a764433cf0673"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 02 18:49:02 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 02 18:49:02 2010 +0000"
      },
      "message": "THRIFT-710. java: TBinaryProtocol should access buffers directly when possible\n\nThis patch makes TBinaryProtocol use direct buffer access in the relevant methods. Performance testing indicates as much as 2x speed boost, though your mileage may vary.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@918147 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "0f52f072013e8fcb85a8382a412a764433cf0673",
      "tree": "64d6282ae82512aef69ccbf7f89713845c1004bb",
      "parents": [
        "3e60fa6a54ecdd4b30df74e35ff64dbfd81a549c"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 02 18:39:57 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 02 18:39:57 2010 +0000"
      },
      "message": "THRIFT-711. java: TFramedTransport should support direct buffer access\n\nThis patch adds direct buffer read access to TFramedTransport as well as a simple test for reading, direct buffer reading, and writing.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@918142 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "3e60fa6a54ecdd4b30df74e35ff64dbfd81a549c",
      "tree": "61d0f58f4faa9de65fdbe7e5895310d8969335fb",
      "parents": [
        "4e7cf25b9574eb439b329070fd57e854948144df"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 02 18:34:00 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 02 18:34:00 2010 +0000"
      },
      "message": "THRIFT-720. rb: HTTPClientTransport ignores url parameters\n\nThis patch causes the url parameters to be sent as expected. Patch by Tony Kamenick.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@918137 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4e7cf25b9574eb439b329070fd57e854948144df",
      "tree": "dab0985ce758bdf31689f07d92bfb0f831c5997a",
      "parents": [
        "30dd725952ddce68eecc645426443a5ebb3bec52"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sun Feb 28 05:19:38 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sun Feb 28 05:19:38 2010 +0000"
      },
      "message": "THRIFT-716. java: Field names can conflict with local variables in code for unions\n\nThis patch resolves the name clash issue by removing the unnecessary parameters from the generated method and using the protected variables directly instead.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@917130 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "30dd725952ddce68eecc645426443a5ebb3bec52",
      "tree": "0d730bac16f5d98987031babcc5095027bbc6ddc",
      "parents": [
        "53cba3cfa23d7c86badb0f85606a26a3e2391aec"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat Feb 27 05:47:15 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat Feb 27 05:47:15 2010 +0000"
      },
      "message": "THRIFT-715. rb: Add additional test case for serialization of false boolean fields\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@916911 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "53cba3cfa23d7c86badb0f85606a26a3e2391aec",
      "tree": "225a23e3eae6b15fa6240797374bc133e3038db3",
      "parents": [
        "6acc269d1883c822595ab5f346c6e4c1e1b2724c"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Feb 26 21:38:42 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Feb 26 21:38:42 2010 +0000"
      },
      "message": "THRIFT-689. java:  Notify client of recoverable protocol errors on java server\n\nWhen a protocol error occurs, the server will now send back a message containing the exception. Clients should be able to detect and rethrow these exceptions as appropriate.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@916825 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "6acc269d1883c822595ab5f346c6e4c1e1b2724c",
      "tree": "c2c0b852bd0fd114cb1a6b27421b73560f630b7e",
      "parents": [
        "dee6d4260c2cca0917d5a921460d16f062ab27d6"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri Feb 26 00:56:02 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri Feb 26 00:56:02 2010 +0000"
      },
      "message": "THRIFT-695. python: [de]serialize convenience functions\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@916508 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "dee6d4260c2cca0917d5a921460d16f062ab27d6",
      "tree": "5ff6132c6d41c11b572ffd174593c40cdf920781",
      "parents": [
        "65073e5b116d1eb48ccc52c8446ebfdef4b36851"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Feb 23 19:06:25 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Feb 23 19:06:25 2010 +0000"
      },
      "message": "THRIFT-713. java: Java compareTo method throws NPE when any field isn\u0027t set.\n\nThis patch fixes a somewhat egregious bug in the generated compareTo for non-union structs and avoids possible NPEs.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@915499 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "65073e5b116d1eb48ccc52c8446ebfdef4b36851",
      "tree": "ad7802e3e337fbe91bc746f786c50f4ec3030d7a",
      "parents": [
        "a34a4be080e90888842959794b4c8e7838276996"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Feb 23 15:46:46 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Feb 23 15:46:46 2010 +0000"
      },
      "message": "add newline to the end of struct.c to make some whiney compilers happy\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@915398 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "205e4500f9212ee3689fd973ca4e7b4886d2ed1d",
      "tree": "3d608cbc308f10325ea64a52857ed3b8169f2285",
      "parents": [
        "39dadd6656d0cf009e8fdef42db9eea108cb6bb9"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Feb 18 23:19:42 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Feb 18 23:19:42 2010 +0000"
      },
      "message": "THRIFT-553. rb: thrift structs should be comparable (\u003c\u003d\u003e)\nThis patch adds the spaceship operator to the struct and union base classes, enabling object comparisons between objects without regenerating code.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@911644 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "39dadd6656d0cf009e8fdef42db9eea108cb6bb9",
      "tree": "58acd6527f377ad11660db7d3415aa90fb6942ab",
      "parents": [
        "0e4920c6b892ef46ae491fb1c65157ee6aab1367"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Feb 18 22:00:45 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Feb 18 22:00:45 2010 +0000"
      },
      "message": "THRIFT-712. rb: Inspect should print binary fields as hex instead of escaped string\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@911610 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "0e4920c6b892ef46ae491fb1c65157ee6aab1367",
      "tree": "ea29c136b62147ed20558badea98c4478bf8f867",
      "parents": [
        "becaf536211a699f1fb936752262fdb7bcd36126"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Feb 18 20:28:27 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Feb 18 20:28:27 2010 +0000"
      },
      "message": "THRIFT-708. rb: Is set checking methods\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@911557 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "becaf536211a699f1fb936752262fdb7bcd36126",
      "tree": "044e091e40d93663181ebfe9e9a4dc93fc85107c",
      "parents": [
        "3d03c527dfec72d10f885b3060ffdc35faa2cfb7"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Feb 18 18:27:51 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Feb 18 18:27:51 2010 +0000"
      },
      "message": "THRIFT-685. java: Direct buffer access to improve deserialization performance\n\nThis initial patch adds direct buffer access support to TDeserializer and TCompactProtocol, with the framework in place to be extended to other areas.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@911510 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "3d03c527dfec72d10f885b3060ffdc35faa2cfb7",
      "tree": "fad863700dcdc9493357e3582376d0715b2ae545",
      "parents": [
        "25b851af36d9260a18ffbf1494e572b54ce6d426"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Feb 18 17:42:06 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Feb 18 17:42:06 2010 +0000"
      },
      "message": "THRIFT-709. Print enum value names in Ruby\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@911500 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "25b851af36d9260a18ffbf1494e572b54ce6d426",
      "tree": "f79cff4218525eb109ebbd1cc05c5c4036c7974b",
      "parents": [
        "361ef347225707e2066b7b7397a5f9dddb5c8694"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Feb 17 23:10:48 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Feb 17 23:10:48 2010 +0000"
      },
      "message": "add some missing files to Manifest\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@911217 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "361ef347225707e2066b7b7397a5f9dddb5c8694",
      "tree": "4ebc65eb009fe01eda7bf30881bb738a1e68d487",
      "parents": [
        "5af64f03464b927bdc329065b24a063c02fe8412"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Feb 17 22:29:49 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Feb 17 22:29:49 2010 +0000"
      },
      "message": "bump rev on ruby gem version\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@911200 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "5af64f03464b927bdc329065b24a063c02fe8412",
      "tree": "35b1d05dca0514e0d91eb7ba6a4a866ffe7730b5",
      "parents": [
        "cd43a06405c806d7ff928262da29703cde7e764f"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Feb 17 22:27:27 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Feb 17 22:27:27 2010 +0000"
      },
      "message": "THRIFT-707. Support old-style constructors for Union structs\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@911199 13f79535-47bb-0310-9956-ffa450edef68\n"
    }
  ],
  "next": "cd43a06405c806d7ff928262da29703cde7e764f"
}
