)]}'
{
  "log": [
    {
      "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": "c8ee35805dc23143a8e0e774cee497deea4fa97d",
      "tree": "cb870f26a153aea33c0ee5114d18096cd3ab8217",
      "parents": [
        "a1e268c54b6702dc9223623fd51a8c96df8335d2"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue May 04 14:01:14 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue May 04 14:01:14 2010 +0000"
      },
      "message": "revert an unintentional commit to the java generator\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@940861 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a1e268c54b6702dc9223623fd51a8c96df8335d2",
      "tree": "c99c9af01178e054c9e920e15b4369e71407cc40",
      "parents": [
        "f7d9f8e4899ac9b126a4ed3cd11a949fd476a066"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon May 03 21:33:00 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon May 03 21:33:00 2010 +0000"
      },
      "message": "THRIFT-770. build:  Get \u0027make dist\u0027 to work without first compiling source code\n\nThis patch ditches the old print_version.sh method and instead generates the compiler\u0027s version.h via the Makefile.\n\nPatch: Anthony Molinaro\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@940630 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f7d9f8e4899ac9b126a4ed3cd11a949fd476a066",
      "tree": "fa697d94823a2a2b0aa5a9e71880c9a8733dcf84",
      "parents": [
        "7173bd96bd7002d3b4ef86f02877b83d80b6c83b"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sun May 02 23:04:03 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sun May 02 23:04:03 2010 +0000"
      },
      "message": "THRIFT-650. build: Make Check fails on Centos/OSX with 0.2.0 tarball\n\nThis patch fixes the make check target for OSX.\n\nPatch: Anthony Molinaro\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@940327 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": "adf5f19c541deeeb5fc9f695c61378e4490745a7",
      "tree": "0cde6c3cdec63b94fe584f4556044754acf9c1f5",
      "parents": [
        "12abe949779c5eb318ae616695ce02385b728bce"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Apr 30 21:39:54 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Apr 30 21:39:54 2010 +0000"
      },
      "message": "set the TRUNK version to 0.4.0-dev, instead of the ancient 20080411 datestamp\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@939825 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": "97d21c853d543dbba497650badcf10334910edaf",
      "tree": "c7321b48f3130f0f1c7eabd73468a6d429e324d3",
      "parents": [
        "719ab84318ae1c7c59da5657ef0ad41dc4c3f921"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Apr 26 18:16:46 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Apr 26 18:16:46 2010 +0000"
      },
      "message": "THRIFT-760. java: Generated client code does not set or check the sequence ID in messages\n\nThe Java generated clients weren\u0027t paying attention to sequence ids. Now they are\\!\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@938169 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": "0137af6bf1e37762db319a08d2d6921d6897e21f",
      "tree": "e17bc8c6fa05fbea049bc1e00dabbabb3d3b6e11",
      "parents": [
        "321eb7a2bdedde79102dfcf0fcefd99f45ec2075"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Apr 22 21:21:46 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Apr 22 21:21:46 2010 +0000"
      },
      "message": "THRIFT-611.  Under Windows when compiling using MinGW, includes are incorrectly resolved due to \u0027/\u0027 \u003c-\u003e \u0027\\\u0027 havoc.\n\nThis patch ensures the proper slashes are used based on the platform.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@937070 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": "60229785cb858c919f832e8ce8155c7c4ce06012",
      "tree": "e5757fd8c3806eacabc30a9a4093cd3a6a0554e3",
      "parents": [
        "505b4c1e98bdb07d4f047cbe6d75a604750c2881"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Apr 22 00:27:41 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Apr 22 00:27:41 2010 +0000"
      },
      "message": "THRIFT-763. java: Variable capture bug in generated struct compareTo\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@936583 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": "49b38015a672613c83d7c7a2954a9eb331b59a5a",
      "tree": "5c6fbba94a265656e4774a8f8fb03dada53c76bf",
      "parents": [
        "b1f7f7973bed233ec6f21807dfd774f7b600c5ec"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sun Apr 04 04:01:07 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sun Apr 04 04:01:07 2010 +0000"
      },
      "message": "THRIFT-753. java: Don\u0027t look up TFieldIdEnum values with a map\n\nInstead of using a generated map, use a big switch statement.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@930618 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": "ea7910faf3abc85e90ba88bc9615b2fa3e8efd2d",
      "tree": "b2f709bcc00900f5a1c5984c96bd1be3f686ecd2",
      "parents": [
        "5557beffaecbd7b97a90ed38afc49c2a091aadba"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat Apr 03 05:04:48 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat Apr 03 05:04:48 2010 +0000"
      },
      "message": "THRIFT-663. java: JavaBean code generator produces incorrect setter methods\n\nThis patch causes the beans option to suppress the builder-style setter methods. It also adds a new \u0027private-members\u0027 option that leaves the builder-style methods, but makes the actual instance variables private.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@930474 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": "15b7b287947dd348e2801ead6b1a33b2a2d6b31b",
      "tree": "9d4e82167abe6782e608debf1ec3592c03141d27",
      "parents": [
        "27c97857582b79f9ca684e03641d1cf81e8916e3"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 23 05:39:18 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 23 05:39:18 2010 +0000"
      },
      "message": "THRIFT-701. java:  Generated classes take up more space in jar than needed\n\nUse a static {} block instead of an anonymous inner class to define metaDataMap. This saves some space in jars generated by avoiding the internal class.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@926466 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": "3f4ca0e8fd63ed0fde1a5a00097144384436f9b2",
      "tree": "e9e3d4ec83c63a8a414c9efee517466193d34ca8",
      "parents": [
        "5f013bb45d0c380b034c2099614ab1ba5eaea021"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 16 03:13:26 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 16 03:13:26 2010 +0000"
      },
      "message": "THRIFT-734. java: Can\u0027t use primitive types in service definitions for bean generated code\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@923566 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": "e574a065a9ed100bda718582dc3378abc2933e78",
      "tree": "b3e47e76b334b6eddf9caa63637f70a95947a4c1",
      "parents": [
        "006260f07a49f74b1fe8fa7be39b0d34d14b8067"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:22 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:22 2010 +0000"
      },
      "message": "THRIFT-660. php: Use the accelerator to write return values from servers\n\nPreviously, we only used the acclerator module for clients to\nwrite calls and read returns.  Now PHP servers will use it for\nwriting returns.  We cannot use it to read calls on the server side\n(without modifications), because the module requires that\nthe structure type be known before reading the message header.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920663 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": "4dd7801e90fe10a6614890f3d176716582b04233",
      "tree": "a566a938627e0a72cddff4ab152f639ad58654bb",
      "parents": [
        "d93c626131455fe5f8757fe3ee29d7f7a5c4fe22"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:08 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:08 2010 +0000"
      },
      "message": "THRIFT-655. Allow structs to be typedef\u0027ed\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920657 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": "53c10e09e15b446e7213b341e8fddc79296f1d51",
      "tree": "fd983d6dbd047456779e03e8ed49250ba60ca8c3",
      "parents": [
        "a268019e85ac34b5b7a1c89d59288ecead5e6d97"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri Mar 05 07:51:51 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri Mar 05 07:51:51 2010 +0000"
      },
      "message": "THRIFT-564. Support arbitrary annotations on struct fields\n\nThis is subtly different from a type annotation, since some bits of\nmetadata only make sense in the context of a single structure field,\nlike whether the field is required, or whether the C++ code should use\na pointer for it.\n\nThis change doesn\u0027t define any meaningful annotations.  It just sets up\nthe parsing infrastructure.\n\nI have no idea if $10 will work with older versions of yacc.  It seems\nto work fine with bison.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@919325 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"
    }
  ],
  "next": "65073e5b116d1eb48ccc52c8446ebfdef4b36851"
}
