)]}'
{
  "log": [
    {
      "commit": "1b13083defbde2dae2baf535eeae272c7c9e1ab0",
      "tree": "15bec9226ee662d97caa94d33726b91334d29174",
      "parents": [
        "63228e53c239eac664b3933b4ed3a86d32af809a"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Oct 19 17:20:57 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Oct 19 17:20:57 2010 +0000"
      },
      "message": "THRIFT-106. java: TSSLServerSocket\n\nThis patch adds support for SSL-encrypted client and server sockets.\n\nPatch: Nirmal Ranganathan\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1024328 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "63228e53c239eac664b3933b4ed3a86d32af809a",
      "tree": "da6ac69c3fe9ac26c58c6f90c188101304db994c",
      "parents": [
        "f770befe173280bf25942294814eb8f9f3e95906"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Oct 18 17:25:40 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Oct 18 17:25:40 2010 +0000"
      },
      "message": "cpp: Support oneway calls in TDebugProtocol.cpp\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1023913 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f770befe173280bf25942294814eb8f9f3e95906",
      "tree": "f20b5ee0b8a160b1ade618f4c417b4a7310c3da4",
      "parents": [
        "d11ca5a95e035aca2e9107aba66f9fad1549ffb7"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Oct 18 17:25:13 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Oct 18 17:25:13 2010 +0000"
      },
      "message": "cpp: Add a little extra whitespace to TDebugProtocol.cpp\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1023912 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d11ca5a95e035aca2e9107aba66f9fad1549ffb7",
      "tree": "a23ded38f4d5e4f1911436e26222e33a8ac47372",
      "parents": [
        "5e64d51efcbaac0839ac78565a5e010843587f95"
      ],
      "author": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Mon Oct 18 08:22:57 2010 +0000"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Mon Oct 18 08:22:57 2010 +0000"
      },
      "message": "THRIFT-916 gcc warnings(partial) use snprintf instead of sprintf\n\nPatch: Christian Lavoie\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1023682 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e8ddffe7bafbdcccd86db79b6a0dd7c60df4af05",
      "tree": "f921114dc9ee9d1aedef18d1df6a23ddf0104e01",
      "parents": [
        "c991270de6361bcd86319bf02201d2074c9a93d9"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Oct 15 16:40:34 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Oct 15 16:40:34 2010 +0000"
      },
      "message": "THRIFT-958. java: Change accessmodifer on trans_ field in the FrameBuffer class to public.\n\nPatch: Benjamin Coverston\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1023008 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c991270de6361bcd86319bf02201d2074c9a93d9",
      "tree": "7c964248a896d0db40a49b89835ba87e69d46ece",
      "parents": [
        "3b76fa3638ff91a76c518bfbc480a18e17d01e09"
      ],
      "author": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Fri Oct 15 13:16:05 2010 +0000"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Fri Oct 15 13:16:05 2010 +0000"
      },
      "message": "THRIFT-913 Test Case for Url encoded strings + simple enhancement to lib/js/test/RunTestServer.sh\nand ignore gen-* and *.class\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1022907 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "0069cc4a298a15c84df5e09e4abebe8ba8a0b8a5",
      "tree": "9721d855a028e67d4fdefa10b31bbb70b7241929",
      "parents": [
        "4c5689269f767670741bc49648d419d4c6a188f1"
      ],
      "author": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Wed Oct 13 18:10:18 2010 +0000"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Wed Oct 13 18:10:18 2010 +0000"
      },
      "message": "THRIFT-916 no errors on GNU/Linux when compiling with CXXFLAGS\u003d\"-Wall -Wextra -pedantic\"\n\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1022220 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4c5689269f767670741bc49648d419d4c6a188f1",
      "tree": "349d2070c906bfcfbea20b66e371334cc2bc6a7e",
      "parents": [
        "21cd3180ef915ec8f1a2fa33520bcb529e5a1c41"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Oct 12 22:32:23 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Oct 12 22:32:23 2010 +0000"
      },
      "message": "THRIFT-951. java: Add a new isServing() method to TServer\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1021941 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "21cd3180ef915ec8f1a2fa33520bcb529e5a1c41",
      "tree": "3ca3519b827a1046a97d0dd9027ad9c6660f94de",
      "parents": [
        "8684df9a7986e785ceffb8316c8592558bd7707c"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Oct 11 22:13:23 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Oct 11 22:13:23 2010 +0000"
      },
      "message": "spacing cleanup\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1021535 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8684df9a7986e785ceffb8316c8592558bd7707c",
      "tree": "a5935b9faa63f49f0c572e140bb0183fc98b9f97",
      "parents": [
        "9a3ec701d814334f6c20ed0f69b3bbcbcca6a6e5"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Oct 11 22:01:27 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Oct 11 22:01:27 2010 +0000"
      },
      "message": "clear a bunch of java warnings, unused code and imports, etc\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1021531 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "052bbef327eda51ddde5845a2794c344eab8e3a0",
      "tree": "f476b789ecf900700a6cb319c35135302c235c4b",
      "parents": [
        "085a3e7b6045c435bc21442c867c9d3ed8d3bb60"
      ],
      "author": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Mon Oct 11 21:45:13 2010 +0000"
      },
      "committer": {
        "name": "Mark Slee",
        "email": "mcslee@apache.org",
        "time": "Mon Oct 11 21:45:13 2010 +0000"
      },
      "message": "THRIFT-952. TBinarySerializer utility class for converting between byte strings and PHP objects\n\nAdds a nice TBinarySerializer class to make it simple to convert between PHP objects and serialized strings using the Binary protocol.\n\nPatch: Radu Marin\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1021521 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "085a3e7b6045c435bc21442c867c9d3ed8d3bb60",
      "tree": "8f6223017d09011a6f6d8eba49cd2cd041b8ccab",
      "parents": [
        "50e4349463c983aac50d37a071191391f704258a"
      ],
      "author": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Fri Oct 08 21:23:35 2010 +0000"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Fri Oct 08 21:23:35 2010 +0000"
      },
      "message": "THRIFT-926 Miscellaneous C++ improvements\n\nchanging single destructor call time limit from 500us to 1000us\nbuild does not fail on busy machines\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1006030 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f969bcb7d89f3f50dba4528a673464f668fb2905",
      "tree": "a97809b35756c458109424222fd5a55ee95fb84b",
      "parents": [
        "b3d0aa0c82ea5769b2a5dc7268e05c398d361726"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Oct 06 20:04:40 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Oct 06 20:04:40 2010 +0000"
      },
      "message": "THRIFT-862. java: Async client issues / improvements\n\nThis patch improves quite a large number of things about the async client code.\n\nPatch: Ning Liang\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005221 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b3d0aa0c82ea5769b2a5dc7268e05c398d361726",
      "tree": "db995ed5f7f6325197f9d1086f670e8deca6ae04",
      "parents": [
        "ef6a1766ceeddac8345aa3102e4d33af4ecd8432"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Oct 06 20:00:03 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Oct 06 20:00:03 2010 +0000"
      },
      "message": "THRIFT-946. java: Augment FieldValueMetaData so it differentiates \u0027string\u0027 and \u0027binary\u0027 fields.\n\nThis patch adds a new method to the FieldMetaData class that indicates binary or not.\n\nPatch: Mathias Herberts\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005220 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "25df8e7e4ae6bd889a76d1ffacc5ec64da241223",
      "tree": "df9901a4a1c0a9a90d7aaf63a28cef9c664159ea",
      "parents": [
        "46e4f252dcc09b40f71635aaeb80476635aa8076"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:54 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:54 2010 +0000"
      },
      "message": "THRIFT-926. cpp: Better exception handling in TSimpleServer\n\nMove processing code out of main try block and created individual\ntry/catch\u0027s for closing down the client and it\u0027s transports (to avoid\nissues with throwing exceptions from a catch block).\n\nAlso converted to using GlobalOutput instead of cerr.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005171 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "46e4f252dcc09b40f71635aaeb80476635aa8076",
      "tree": "fbe79fdf3dc65c73c87dc79cd850de06a6ad7220",
      "parents": [
        "89a12942d2fd53a3caf269f601134bd392fbf333"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:53 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:53 2010 +0000"
      },
      "message": "THRIFT-926. cpp: remove auto-stringification in TLogging.h\n\nThe T_DEBUG* and T_ERROR* macros used preprocessor stringification to\nstringify the format string argument.  This was weird and unintuitive.\n\nWith the old behavior:\n\n- Quotes surrounding the format string were included in the message:\n  T_DEBUG(\"this is a test\") --\u003e expanded to  \"\\\"this is a test\\\"\"\n\n- Backslashes in the string are escaped so they print literally:\n  T_DEBUG(\"foo\\nbar\")       --\u003e expanded to  \"\\\"foo\\\\nbar\\\"\"\n\n- Standard fixed-width integer format macros don\u0027t work:\n  T_DEBUG(\"x: %\" PRIi64, x) --\u003e expanded to  \"\\\"x: %\\\" PRIi64\"\n\nThe last item is particularly problematic, since it prevents 64-bit\nvalues from being logged portably.\n\nWith the new code, the following will no longer compile:\n\n  T_DEBUG(this is my log message: %d, 5)\n\nI don\u0027t think that is a bad thing, though.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005170 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "89a12942d2fd53a3caf269f601134bd392fbf333",
      "tree": "a17b266e332517537ac9dc7c4aee10cbd2d23e32",
      "parents": [
        "7e729d207492f8b4be9509e927b687a282039bc9"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:52 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:52 2010 +0000"
      },
      "message": "THRIFT-926. cpp: Better buffer management for TNonblockingServer\n\nAdd two improvements to memory management in TNonblocking server:\n- Separate the receive code into two distinct states: one for receiving\n  the frame header and one for the frame content.  This allows us to\n  size the initial read buffer based on the initial frame size, rather\n  than allocating an arbitrary amount of memory before reading the\n  header.\n- Allow setting the initial write buffer size based on the application\u0027s\n  expected response size.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005169 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "7e729d207492f8b4be9509e927b687a282039bc9",
      "tree": "1bb2f18bb9d12f3805c95d387a8fd852e62bbfda",
      "parents": [
        "f673509f1be499bc899e204ab0d7837ebf4f418a"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:51 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:51 2010 +0000"
      },
      "message": "THRIFT-926. cpp: Let TMemoryBuffer::resetBuffer() set size of self-allocated buffer\n\nAlthough there is a constructor that allows a TMemoryBuffer to be\ncreated with an internally-allocated buffer of a desired size, there was\nno way for resetBuffer to obtain analogous behavior. This change causes\nthe appropriate constructor to be used.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005168 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f673509f1be499bc899e204ab0d7837ebf4f418a",
      "tree": "bd3b0300c69f6043d939c40682db6a2412b41553",
      "parents": [
        "2991a0f376ab7640b7259ac8db0af820054998cd"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:49 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:49 2010 +0000"
      },
      "message": "THRIFT-926. cpp: Thrift: throw bad_alloc when malloc fails, not something else\n\nWhen malloc/realloc fail, we\u0027ve typically just thrown a TException. This\nallows a server that should simply crash when out of memory to survive\nin a strage state, with various bad consequences. Instead, we should\nthrow bad_alloc and just not catch it (or if we decide to, be very\ncareful to respond properly).\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005167 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "2991a0f376ab7640b7259ac8db0af820054998cd",
      "tree": "547bdf08001c92482eb4eb32c54aea7e86119335",
      "parents": [
        "ece1a089eccad21f093de72b5fe6d730d132812c"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:47 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:47 2010 +0000"
      },
      "message": "THRIFT-926. cpp: TFramedTransport: Uphold the strong exception safety guarantee\n\nPreviously, if we had a new[] failure when growing a TFramedTransport\nwrite buffer, we would leave the buffer in an invalid state (wBufSize_\nwould reflect the desired size, rather than the actual size).  Now, we\nmake no change to any member variables if new[] fails.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005166 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ece1a089eccad21f093de72b5fe6d730d132812c",
      "tree": "6d6d894d220f8e400dbb21ad2e35e72c664b7619",
      "parents": [
        "54bec5dbd8f91305d2cd1d1f1125cf8b54fdd6bc"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:46 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:46 2010 +0000"
      },
      "message": "THRIFT-926. cpp: TMemoryBuffer: Uphold the strong exception safety guarantee\n\nPreviously, if we had a realloc failure when growing a TMemoryBuffer, we\nwould leave the buffer in an invalid state (bufferSize_ would reflect\nthe desired size, rather than the actual size).  Now, we make no change\nto any member variables if realloc fails.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005165 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "54bec5dbd8f91305d2cd1d1f1125cf8b54fdd6bc",
      "tree": "d5bb16b3c1bb1f5bdeafa1499d0c66e7e72a6b24",
      "parents": [
        "7197efb8490afebc97625de2b8a4dfcf61fe6d19"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:45 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:45 2010 +0000"
      },
      "message": "THRIFT-926. cpp: Add configurable buffer recycling for TNonblockingServer\n\nAdd methods to TNonblockingServer to set the maximum size of idle read\nand write buffers and the check interval (in calls).  When checked, if\nthe buffers are larger than the configured maximum, they will be resized\ndown the to maximum size.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005164 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "7197efb8490afebc97625de2b8a4dfcf61fe6d19",
      "tree": "4cdd1637bd864ba1dcee74e9d3c44ff276ce7492",
      "parents": [
        "109693c82a63b321b540cb3c993d918fc946dfbe"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:43 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:43 2010 +0000"
      },
      "message": "THRIFT-926. cpp: Revert r750153 to make way for more flexible version\n\nr750153 caused TNonblockingServer to reset its buffers every 512 calls.\nA more configurable version was developed internally, so I\u0027m reverting\nthis rev first to avoid conflicts.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005163 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "109693c82a63b321b540cb3c993d918fc946dfbe",
      "tree": "a8b5942237ebc12d42e61e5888ee5d30fb0327ac",
      "parents": [
        "0a2d81e81614a73590056b4fea7688463df7c80b"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:42 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:42 2010 +0000"
      },
      "message": "THRIFT-929. cpp: Convert tests to use boost 1.37\n\nThe boost test framework has changed significantly from boost 1.34 to\n1.37.  Quite a few new features have been added, and some annoying bugs\nhave been fixed.\n\nThis change now builds the thrift tests against boost 1.37, and updates\nthem to use some of the newer features.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005162 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "0a2d81e81614a73590056b4fea7688463df7c80b",
      "tree": "f7640d3608c2a2ddcc3cb6508c060ec05b7277df",
      "parents": [
        "e5c435cccf4fdc5650c6127563b3b61de65e1762"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:40 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:40 2010 +0000"
      },
      "message": "THRIFT-926. cpp: Fix inconsistencies in transport read() behavior\n\n- TBufferedTransport::borrow() could block if not enough data was\n  available.  Now it returns NULL immediately in this case, like all\n  other transports.\n\n- TBufferedTransport::read() could block some data was available in the\n  readahead buffer, but not enough to satisfy the request.  It would\n  attempt to call read() on the underlying transport, but this might\n  block.  Now it just returns the remaining data in the readahead\n  buffer.  The caller is responsible for calling read() again to get the\n  rest of the data they want.\n\n- TFrameTransport::read() threw an exception if read() on the underlying\n  transport returned 0 when looking for a frame header.  Now\n  TFrameTransport::read() returns 0, too.  (It still throws an exception\n  if the underlying transport returns 0 after a partial frame or frame\n  header has been read.)\n\n- TFDTransport::read() threw an exception on EINTR.  Now it retries up\n  to 5 times, similarly to the way TSocket::read() behaves.\n\n- TZlibTransport::read() could block when less data than was requested\n  is available.  Now it only calls read() on the underlying transport\n  when it would otherwise have nothing to return.\n\n  This does mean that TZlibTransport::read() now often returns less data\n  than is actually available at the time.  This required updating\n  several of the ZlibTest tests to use readAll() instead of read(),\n  since they previously assumed read() would return all available data.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005161 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e5c435cccf4fdc5650c6127563b3b61de65e1762",
      "tree": "326d1cde9434aa046536f1dee903cb0491729d53",
      "parents": [
        "d4788dfd4ae1bd04a78dc611855f70eb97355af3"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:38 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:38 2010 +0000"
      },
      "message": "THRIFT-929. cpp: Add tests to verify blocking read behavior\n\nAdd tests that check to see whether or not read() and borrow() block\nwhen called with a length larger than the amount of data currently\navailable.\n\nAt the moment, not all of the transports behave the same way.  I believe\nthe desired behavior is:\n\n  When M bytes are available, and 0 \u003c M \u003c N:\n  - read(N): return M bytes immediately\n  - borrow(N): return NULL immediately\n\n  When 0 bytes are available:\n  - read(N): In this case, it is acceptable either to immediately return\n    0, or to block until some data is available.  If the transport\n    blocks, it returns immediately when some date becomes available,\n    even if less than N bytes are available.\n  - borrow(N): return NULL immediately\n\n- The borrow() tests fail when using TBufferedTransport.\n  TBufferedTransport incorrectly blocks until the amount of data\n  requested is available.\n\n- test_read_none_available() fails when using TFramedTransport.\n  Calling read() on a TFramedTransport when no data is available throws\n  an exception instead of returning 0.\n\n- test_read_none_available() fails when using TFDTransport.  This is\n  partly just an artifact of the fact that I use SIGALRM as part of this\n  test.  Unlike TSocket, TFDTransport doesn\u0027t retry after EINTR.\n\n- test_read_part_available() fails when using TZlibTransport around a\n  transport that has blocking read() behavior.  TZlibTransport::read()\n  loops calling read() on the underlying transport.  It should probably\n  break out of the loop and return to the caller as soon as it has\n  uncompressed any data, even if it is less than requested and more\n  might be available.  Once some data has been uncompressed,\n  TZlibTransport cannot risk calling read() again since it might block.\n\nWill commit fixes for these separately.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005160 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d4788dfd4ae1bd04a78dc611855f70eb97355af3",
      "tree": "464850819f658bd7ce70402a44586e53bfd9e53d",
      "parents": [
        "0c025e8f52096f6c9f39b80909b5b1aebf335b03"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:37 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:37 2010 +0000"
      },
      "message": "THRIFT-929. cpp: Test wrapper transports more thoroughly\n\nUpdateS TransportTest so that the wrapper transports\n(TBufferedTransport, TFramedTransport, TZlibTransport) are tested with a\nwider variety of inner transports.  Previously they were only tested\nusing TMemoryBuffer.  Now all other transports are also tested wrapped\ninside each of these transports.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005159 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "0c025e8f52096f6c9f39b80909b5b1aebf335b03",
      "tree": "a50ae395bae21657a2510d94e22c1e6501112d7a",
      "parents": [
        "65e62d3741e226abf0caf7b7393845ad41779a61"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:36 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:36 2010 +0000"
      },
      "message": "THRIFT-929. cpp: Update TransportTest to test TSocket\n\nMade the TSocket(int fd) constructor public, so TransportTest can create\na connected pair of TSocket transports using socketpair().\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005158 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "65e62d3741e226abf0caf7b7393845ad41779a61",
      "tree": "e4fb8b2f4a8811618b2531c5ef616953e1ece72a",
      "parents": [
        "4f9efdb460a7c54cc55b25f2c6b8955a5fcff229"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:35 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:35 2010 +0000"
      },
      "message": "THRIFT-929. cpp: Reduce default buffer sizes for TransportTest\n\nReduce the default test buffer sizes by about 30x, reducing the time it\ntakes to run TransportTest from about 1 minute to about 2 seconds.  I\nadded a --size-multiplier argument that can be used to adjust the sizes\nof all test buffers, so developers can still run with large buffer sizes\nwhen desired.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005157 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4f9efdb460a7c54cc55b25f2c6b8955a5fcff229",
      "tree": "0c31542a9e504f19b089d4dd27660bedc8ea70f8",
      "parents": [
        "4199377a7c5dbb72679abe9c05c9663e3736a780"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:33 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:33 2010 +0000"
      },
      "message": "THRIFT-926. cpp: Fix bugs in TFileTransport::flush()\n\nPreviously flush() had race conditions that could cause it to return\nbefore all data had actually been flushed to disk.  Now the writer\nmakes sure both buffer queues have been flushed when forceFlush_ is set.\n\nAlso, flush() did not wake up the writer thread, so it normally had to\nwait for the writer thread to wake up on its own time.  (By default,\nthis could take up to 3 seconds.)\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005156 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4199377a7c5dbb72679abe9c05c9663e3736a780",
      "tree": "5bbc4847cec0c637d02b041dbbf6bbdb08447db5",
      "parents": [
        "709b69f14c7c69b83e1752212bf51b4da67db834"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:31 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:31 2010 +0000"
      },
      "message": "THRIFT-926. cpp: TFileTransportTest timing slightly more lenient\n\nSeveral of the TFileTransportTest tests check wall clock time to make\nsure the writer thread processes operations quickly enough, and isn\u0027t\nhanging.  However, this can easily result in false failures if we don\u0027t\nget enough processor time.  This commit makes a few changes to reduce\nthe number of these failures.\n\n- No longer fail if a single destructor call takes more than 500us.\n  We only require 90% of the calls to complete in 500us.  No call may\n  take more than 100ms, though.  With this change, the test passes most\n  of the time now, even while an \"fbmake opt\" task is running in\n  parallel.\n\n- In the flush_max_us tests, make sure the writer thread is started\n  before we start recording timing.  Otherwise, creating the thread\n  could take long enough to throw off the numbers for the first fsync()\n  call.\n\nAlso tested with the pthread_cond_signal() in the TFileTransport\ndestructor commented out, to make sure the test still fails properly\nwhen the destructor takes too long.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005155 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "709b69f14c7c69b83e1752212bf51b4da67db834",
      "tree": "c9f04bd0d15b25832de0b8417d62eda12644d989",
      "parents": [
        "0e0eb354527cecdc22d1c0e6ecba06d7f747e728"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:30 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:30 2010 +0000"
      },
      "message": "THRIFT-926. cpp: Fix destructor behavior of TFileTransport\n\nSet closing_ to true before we wake up the writer thread in the\ndestructor.  This way the writer thread flushes the data and exits when\nit is woken up.\n\nPreviously the writer thread could end up going through 2 full timeout\ncycles before exiting.  The writer thread could wake up, notice it has\nnothing to do since closing_ is not set, and immediately go back to\nsleep.  The destructor would then proceed to call flush(), which would\nwait for the writer thread to wake up (1 full time out) and clear the\nforceFlush_ flag.  After flush returns, the destructor would set\nclosing_.  It could take the writer thread another full timeout to wake\nup again and process this flag.\n\nThere were also some points where the worker threads would detect the\nclosing_ state in their loops and automatically close the file, but did\nnot zero out the file descriptor, then the destructer attempted to close\nthe same file.  Fix by simply zeroing out the fd_ at these points.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005154 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "0e0eb354527cecdc22d1c0e6ecba06d7f747e728",
      "tree": "96002a775da4764d700e299d4bca379e678cf898",
      "parents": [
        "a0e11597163def6727896a77490899681c1eb6d6"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:29 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:29 2010 +0000"
      },
      "message": "THRIFT-926. cpp: Don\u0027t sleep in TFileTransport if we have data to write\n\nPreviously, the TFileTransport writer thread behaved as follows:\n\n  while true:\n    wait for main thread to notify new data in enqueueBuffer_\n    swap(enqueueBuffer_, dequeueBuffer_)\n    write out everything in dequeueBuffer_\n\nNow the behavior is:\n\n  while true:\n    if enqueueBuffer_ is empty\n      wait for main thread to notify new data in enqueueBuffer_\n    swap(enqueueBuffer_, dequeueBuffer_)\n    write out everything in dequeueBuffer_\n\nThe old behavior had a couple problems:\n- Writes that arrived while the writer thread was writing\n  dequeueBuffer_ wouldn\u0027t get processed immediately.  The writer thread\n  would always wait until another write occurred after it started its\n  condition variable wait, or until it timed out (3 seconds by default).\n\n- If the main thread was writing fast enough to fill up enqueueBuffer_\n  while the writer thread was still writing out dequeueBuffer_, it would\n  block the next write call until the writer thread swapped the buffers.\n  Unfortunately, the writer thread waits to do this until it the main\n  thread notifies it of another write.  This deadlock is only broken by\n  the 3 second timeout.  Performance then tanks, since the writer thread\n  now always sleeps 3 seconds each time around the loop.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005153 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a0e11597163def6727896a77490899681c1eb6d6",
      "tree": "df8bf21b710a92f520b8d8b2b940cf0b0e6fa000",
      "parents": [
        "e94fa3391db1a423b6964b0aa6499324d05b055b"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:27 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:27 2010 +0000"
      },
      "message": "THRIFT-926. cpp: remove \"standalone\" distinction in TZlibTransport\n\nNow that TZlibTransport::flush() behaves the same way as other\ntransports, there is no need to distinguish between RPC and standalone\nbehavior for TZlibTransport.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005152 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e94fa3391db1a423b6964b0aa6499324d05b055b",
      "tree": "31c7ea84ea0cadc3c411fa0078e88ede3f794bd4",
      "parents": [
        "f2abcf9a563849dc5861be8aa38f764525c072b1"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:26 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:26 2010 +0000"
      },
      "message": "THRIFT-926. cpp: Make TZlibTransport::flush() behave like other transports\n\nPreviously, TZlibTransport::flush() finished the zlib stream, so calling\nwrite() after flush() would result in an error.  Now it just flushes the\ndata, without finishing the stream.  A new TZlibTransport::finish()\nfunction has been added to finish the stream.\n\nThis breaks compatibility.  I\u0027m aware of anyone using this code outside\nof Facebook, though.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005151 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f2abcf9a563849dc5861be8aa38f764525c072b1",
      "tree": "cc186334ba89995a6eb31ff2b2cdfab90e3c9c7c",
      "parents": [
        "9a961e7750bd9d0393802df4d7a3bb6996a3339b"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:24 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:24 2010 +0000"
      },
      "message": "THRIFT-929. cpp: Use boost::lognormal_distribution in ZlibTest\n\nThis way we no longer have to have a huge hard-coded list of numbers in\nthe source code.  The distribution is randomly generated for each run.\n(Although the --seed argument can be used for repeatablity.)\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005150 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9a961e7750bd9d0393802df4d7a3bb6996a3339b",
      "tree": "472f07117c164d728f470fa2b967c54a9374c47c",
      "parents": [
        "3cc9dab229951aecf59cd229a45007013cb57fba"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:23 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:23 2010 +0000"
      },
      "message": "THRIFT-929. cpp: Convert ZlibTest to use the boost unit test framework\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005149 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "3cc9dab229951aecf59cd229a45007013cb57fba",
      "tree": "4fba76fadcbd2b3231a076b7f82f733f5232ef8a",
      "parents": [
        "56cb796bcecb1e2fef8ab23d8f3f60418502ba10"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:21 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:21 2010 +0000"
      },
      "message": "THRIFT-929. cpp: Remove TZlibTest dependency on filesystem data\n\nPreviously, ZlibTest read a file from disk to get data to test with.\nIt would fail unless gen-cpp/DebugProtoTest_types.tcc was present in the\ncurrent directory and was at least 32kB long.\n\nNow ZlibTest simply generates 3 separate buffers to test with.  The\nfirst buffer is just all \"a\"s, the second is some random sequential\nruns, and the third is completely random.  They usually seem to have\ncompression ratios of around 315:1, 4:1, and 1:1, respectively.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005148 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "56cb796bcecb1e2fef8ab23d8f3f60418502ba10",
      "tree": "fe8fc0005c3ac09fc0c0bb9ab42dc768b11714c0",
      "parents": [
        "35dc7695a95e4e0c3e311faca5341a2e365b9ea0"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:20 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:20 2010 +0000"
      },
      "message": "THRIFT-929. cpp: Fix a couple minor issues in ZlibTest\n\n- Add a necessary cast.\n- Check buffer sizes more carefully to allow for different read/write\n  size distributions.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005147 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "35dc7695a95e4e0c3e311faca5341a2e365b9ea0",
      "tree": "8e2c4355bdc06ae32911705e815d98769accc105",
      "parents": [
        "105961de04cf064981b70e8ec8458c196e0ee17e"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:19 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:19 2010 +0000"
      },
      "message": "THRIFT-929. cpp: Add unit test for transport functionality\n\nTests various transport types by writing data, and verifying it can be\nread back successfully.  Tests both virtual calls (accessed as\nTTransport*) and non-virtual calls (accessed as the appropriate pointer\ntype, or as TBufferBase* when appropriate).\n\nThis is similar to some of the tests already performed in\nTMemoryBufferTest and ZlibTest.cpp.  However, this tests a few more\ntransport types, and it interleaves read and write calls more heavily.\n(It currently exposes some bugs in flush() in a couple transports.) It\nalso exercises both the virtual and non-virtual code paths, now that\nread() and write() only result in virtual calls when invoked on a\nTTransport*.\n\nTFileTransport currently has several race condition bugs, so most of the\nTFileTransport tests ususally fail.  It also has some performance bugs,\ncausing the TFileTransport tests to take a long time.  Will fix those\nissues separately.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005146 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "105961de04cf064981b70e8ec8458c196e0ee17e",
      "tree": "1b23d9cc439f34e50bf5d771732be4d80c934596",
      "parents": [
        "67f56ec6ab7a89c72d607efe620f85a885fc088e"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:17 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:17 2010 +0000"
      },
      "message": "THRIFT-928. cpp: TNonblockingServer: use TSocket and support TClientInfo\n\nModify TNonblockingServer to use TSocket for I/O and support server\nevent handlers; this enables TClientInfo to function with a minor change\nto the processing loop.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005145 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "67f56ec6ab7a89c72d607efe620f85a885fc088e",
      "tree": "7da9591d90b66f230c893d42e2e7f54b433880eb",
      "parents": [
        "44ff76f5147010694187e6ae95a3978fd7a71fb2"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:16 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:16 2010 +0000"
      },
      "message": "THRIFT-926. cpp: Remove TServerSocket as a friend class of TSocket\n\nThis is no longer necessary now that TSocket::TSocket(int) is public.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005144 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "44ff76f5147010694187e6ae95a3978fd7a71fb2",
      "tree": "107de4c06e6bbcb6674963a4e6e67f0bbf35cb63",
      "parents": [
        "64637511d2c987dc0df9d8466e7ce3626d005425"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:15 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:15 2010 +0000"
      },
      "message": "THRIFT-925. cpp: Add _VALUES_TO_NAMES enum map\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005143 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a8af11dde6194e7449388148ed573347895b9229",
      "tree": "691561ba85042a2f8ffe92c8fb2cbc377923a4c4",
      "parents": [
        "c3b3622158009ea9db85607a4901d05c63108875"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:11 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:11 2010 +0000"
      },
      "message": "THRIFT-926. cpp: Fix an errant argument to a debug statement\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005141 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c3b3622158009ea9db85607a4901d05c63108875",
      "tree": "5c5a7d4452958349f93bb7f6d5c67ea3a9938e12",
      "parents": [
        "23248713345e36d8ed66704a9a58a5f39a48d942"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:10 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:10 2010 +0000"
      },
      "message": "THRIFT-922. cpp: Add profiling code to help conversion to C++ templates\n\nAdd some profiling code to track when potentially unnecessary virtual\ncalls are made in the thrift C++ serialization and deserialization code.\nThis can be used to help service implementors determine which places in\ntheir code should be updated to use an appropriate thrift template\nclass.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005140 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "23248713345e36d8ed66704a9a58a5f39a48d942",
      "tree": "e6aa7c9d97776a88be24ba1de8ca6cabcbacec05",
      "parents": [
        "b7762a032aa4190c6b99a5394e69b29aceb57281"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:08 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:08 2010 +0000"
      },
      "message": "THRIFT-928. cpp: Thrift Server Client Stats\n\nAdd the ability for Thrift servers to monitor client connections.  It is\nactivated by #including server/TClientInfo.h and creating 1) a\nTClientInfoCallHandler passed to the processor with setEventHandler()\nand 2) a TClientInforServerHandler passed to the server with\nsetServerEventHandler().\n\nThe result vector, showing active connections, provides client address\nand the thrift call it is executing (or last executed), the time\nconnected, and the number of calls made since connection.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005139 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b7762a032aa4190c6b99a5394e69b29aceb57281",
      "tree": "ebfc006c1ca2324ada5116d0edaa2f6717f7bf1e",
      "parents": [
        "8dfc732af635d5243194b74d4f411a551ff9a5ee"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:00 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:10:00 2010 +0000"
      },
      "message": "THRIFT-922. cpp: Update C++ generator to emit templatized code\n\nWhen the \"templates\" option is passed to the C++ generator, it now emits\ntemplatized versions of the client and processor.  Generated types emit\ntemplatized read() and write() functions.\n\nThis allows the generated code to invoke the correct non-virtual\nTTransport and TProtocol implementations, resulting in faster\nserialization and deserialization.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005138 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8dfc732af635d5243194b74d4f411a551ff9a5ee",
      "tree": "75dfa730b6c7b66efa544f5daf1d51636e5cae99",
      "parents": [
        "e71115be6caa2f3afd6fa092a09fd41c2c355691"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:09:58 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:09:58 2010 +0000"
      },
      "message": "THRIFT-922. cpp: Fix C++ compilation when using list\u003cbool\u003e\n\nThe STL specializes vector\u003cbool\u003e to store the values as individual bits, rather\nthan bools.  Therefore, when using a Thrift list\u003cbool\u003e, readBool() gets invoked\nnot with a bool\u0026, but with a std::vector\u003cbool\u003e::reference.\n\nTProtocol does provide a readBool(std::vector\u003cbool\u003e::reference) implementation.\nHowever, almost all TProtocol subclasses defined only readBool(bool\u0026), which\nhides the other overloaded versions of readBool().  As a result, the code\nworked only when accessing TProtocol objects via a \"TProtocol*\", and not\ndirectly via the subclass type.  When using C++ templates, protocol objects do\nget invoked via pointers to the subclass type, causing compile failures when\nstd::vector\u003cbool\u003e is used.\n\nThis change updates the various TProtocol implementations to also provide\nreadBool(std::vector\u003cbool\u003e::reference).\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005137 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e71115be6caa2f3afd6fa092a09fd41c2c355691",
      "tree": "e4eae6a053b7a04a0734685f3e58733630fbca81",
      "parents": [
        "6806fb836a6a846ae450f06a22deef1e59c2a983"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:09:56 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:09:56 2010 +0000"
      },
      "message": "THRIFT-922. cpp: Templatize binary and compact protocol\n\nConvert TBinaryProtocol and TCompactProtocol to template classes, taking\nthe transport class as a template parameter.  This allows them to make\nnon-virtual calls when using the template, improving serialization\nperformance.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005136 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "6806fb836a6a846ae450f06a22deef1e59c2a983",
      "tree": "706559164d1e161ca94bc78ea658a97a52553d6f",
      "parents": [
        "e879c2f4db4bc0b7e5a0edfdf669c4fa477123a0"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:09:52 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:09:52 2010 +0000"
      },
      "message": "THRIFT-922. cpp: Convert protocol classes to use non-virtual functions\n\nUpdated the thrift protocol classes to use non-virtual calls for most\nfunctions.  The correct implementation is determined at compile time via\ntemplates now.  Only the base TProtocol class falls back to using\nvirtual function calls.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005135 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e879c2f4db4bc0b7e5a0edfdf669c4fa477123a0",
      "tree": "68b3554d062d4bbd46b14d0c4c0ceed0ba856982",
      "parents": [
        "72fd0b415f7fe4f84988b52346b380f17b528c90"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:09:50 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:09:50 2010 +0000"
      },
      "message": "THRIFT-922. cpp: Convert transport classes to use non-virtual calls\n\nUpdate the thrift transport classes to use non-virtual calls for most\nfunctions.  The correct implementation is determined at compile time via\ntemplates now.  Only the base TTransport class falls back to using\nvirtual function calls.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005134 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "72fd0b415f7fe4f84988b52346b380f17b528c90",
      "tree": "237529b51ee0f6a66d94d6694785f2881c8cbf09",
      "parents": [
        "ea051ca793bfe68b554d4dd39b48cc237cae53d9"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:09:47 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:09:47 2010 +0000"
      },
      "message": "THRIFT-922. cpp: Add shortcutted version of readAll() in TBufferBase\n\nJust perform a memcpy() if all of the requested data is available in the\nbuffer.  This improves performance a little in the common case.  It has\na bigger impact with the upcoming template changes.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005133 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ea051ca793bfe68b554d4dd39b48cc237cae53d9",
      "tree": "935c83bc5f0d33dac87466a281bfeb9bfd38ae9a",
      "parents": [
        "c6b4cab89c6da0272914a07b1f01491031df524f"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:09:46 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:09:46 2010 +0000"
      },
      "message": "THRIFT-922. cpp: When reading strings, borrow first\n\nAttempt to get a pointer to the internal transport buffer before copying\nonto the heap.  This improves performance TFramedTransport and\nTMemoryBuffer, and with TBufferedTransport if the string fits within the\nbuffer.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005132 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ef7200f6e825db54edfa4736192446c96b2ae1d4",
      "tree": "30115f97266d45ec4811f424441ae32000df8889",
      "parents": [
        "18cd0f03340c3eeead9b691e0d9b8a055035eec2"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:09:42 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:09:42 2010 +0000"
      },
      "message": "THRIFT-928. cpp: Include request/response size in processor callbacks\n\nRequired updating transport interface.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005129 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "18cd0f03340c3eeead9b691e0d9b8a055035eec2",
      "tree": "525bb4bc983c4ff375fb7454fbbb2f93c55c2989",
      "parents": [
        "5ddabb8e3f63a15874e436c9a650dc17f7dd7028"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:09:39 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:09:39 2010 +0000"
      },
      "message": "THRIFT-928. cpp: Make clients call writeEnd on their transports before flush\n\nChanging the order of these calls makes more sense from the perspective\nof logical operations.  It also simplifies the upcoming stats collection\ncode.  No clients should be affected.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005128 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "5ddabb8e3f63a15874e436c9a650dc17f7dd7028",
      "tree": "4e22ac0f769e0dda25c8a77734020c5d9a408770",
      "parents": [
        "d7192063e141c8374c2256e9fea9b7571e5fc71e"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:09:37 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:09:37 2010 +0000"
      },
      "message": "THRIFT-923. cpp: Implement a fully nonblocking server and client\n\nThere are three major parts of this:\n1/ New callback-style interfaces for for a few key Thrift components:\n   TAsyncProcessor for servers and TAsyncChannel for clients.\n2/ Concrete implementations of TAsyncChannel and a server for\n   TAsyncProcessor based on evhttp.\n3/ Async-style code generation for C++\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005127 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d7192063e141c8374c2256e9fea9b7571e5fc71e",
      "tree": "8da8cd317b1394f2ced4bbe5da7f07addb784a43",
      "parents": [
        "8c535ab87c3eaa35f1c94ca9dd1aeb5930425c3b"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:09:33 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:09:33 2010 +0000"
      },
      "message": "THRIFT-928. cpp: Processor-level event callbacks\n\n- Add a TProcessorEventHandler callback interface.\n- Add methods to TProcessor to hold an instance of the interface.\n- Add code to the compiler to make the processor call callbacks at key points.\n- Add an optional processor event handler to the test server.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005126 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8c535ab87c3eaa35f1c94ca9dd1aeb5930425c3b",
      "tree": "8bdf9e55f7962ea2ad51da2e8df8b248805895fc",
      "parents": [
        "1df96ce22fcfa3cbc2700eb4be29e5d457167d15"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:09:31 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 06 17:09:31 2010 +0000"
      },
      "message": "THRIFT-922. cpp: Revert the BufferBase part of r750585\n\nr750585 included two logically distinct changes, one of which was not\nreferenced in the commit message and was not reviewed by a C++\nmaintainer.  It was committed more-or-less by accident.  This patch\nreverts that part of the change since it conflicts with the template\ncode in some complicated ways.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1005125 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "1df96ce22fcfa3cbc2700eb4be29e5d457167d15",
      "tree": "a7cab95eaf9e0822c3f669211e9734477fcaf0ca",
      "parents": [
        "ded25bbe0d82ce151c633addd3b96d5c3e0c4dc1"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Oct 06 00:28:10 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Oct 06 00:28:10 2010 +0000"
      },
      "message": "THRIFT-945. java: TAsyncClient class\u0027s currentMethod is never set, hence a second call on the same client will fail if a previous call is ongoing.\n\nThis patch adds a test for the problem and fixes the issue by setting the current method after a call has been started.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1004865 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ded25bbe0d82ce151c633addd3b96d5c3e0c4dc1",
      "tree": "1be1ea7deb5adf52ce6b97c11d2477442c39200b",
      "parents": [
        "c657447e0edd882ffc6144ca81c1f1d3cccae048"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Oct 06 00:23:30 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Oct 06 00:23:30 2010 +0000"
      },
      "message": "THRIFT-941. php:  Make PHP C Extension use the defined Protocol writeMessageBegin function\n\nThis patch causes the C extension to call into user-land to get the correct writeMessageBegin function.\n\nPatch: Chris Goffinet\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1004864 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c657447e0edd882ffc6144ca81c1f1d3cccae048",
      "tree": "6876346b8e65935ecee2f07d1dc93dc72f113eaa",
      "parents": [
        "ffca7e17202bc045f6a5ac3489c9f6a5e3b61d4c"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Oct 06 00:12:33 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Oct 06 00:12:33 2010 +0000"
      },
      "message": "THRIFT-932. hs: Haskell tests need to be run through \u0027make check\u0027 (and probably \u0027cabal check\u0027) too\n\nTests are now self-contained and correctly exit after running. There\u0027s a single run script which has improved error messages and defaults to the thrift binary compiled in the current source directory instead of those in PATH. And as a bonus hooks both cabal check and running the tests to make check. \n\nPatch: Christian Lavoie\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1004861 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ffca7e17202bc045f6a5ac3489c9f6a5e3b61d4c",
      "tree": "99a32275ad8e684c681afc3b866bbebb54fa0fc0",
      "parents": [
        "371372e83284a767354cf7f30a545cd0ec26d6b4"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Oct 06 00:01:43 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Oct 06 00:01:43 2010 +0000"
      },
      "message": "THRIFT-944. hs: Support all version-4s of base\n\nPatch: Christian Lavoie\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1004859 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "371372e83284a767354cf7f30a545cd0ec26d6b4",
      "tree": "4518e008d41501ac972a4bc27f0895d13884d2fa",
      "parents": [
        "687c412c10cba2013fce0984dab18bb9aa49e8d9"
      ],
      "author": {
        "name": "Anthony F. Molinaro",
        "email": "molinaro@apache.org",
        "time": "Tue Oct 05 17:08:08 2010 +0000"
      },
      "committer": {
        "name": "Anthony F. Molinaro",
        "email": "molinaro@apache.org",
        "time": "Tue Oct 05 17:08:08 2010 +0000"
      },
      "message": "THRIFT-933 : looks fine, and cabal check looks good as well\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1004716 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "687c412c10cba2013fce0984dab18bb9aa49e8d9",
      "tree": "2d720f9a1216f9e57b8cb3f9c34fa7bb6dc203d2",
      "parents": [
        "ddcf32ab9cb342de899f6c572b5ecb64be2a8fb1"
      ],
      "author": {
        "name": "Anthony F. Molinaro",
        "email": "molinaro@apache.org",
        "time": "Tue Oct 05 16:47:52 2010 +0000"
      },
      "committer": {
        "name": "Anthony F. Molinaro",
        "email": "molinaro@apache.org",
        "time": "Tue Oct 05 16:47:52 2010 +0000"
      },
      "message": "THRIFT-943: fix typo\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1004709 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "3e07a8f23371ae9a96c55b4d81c31c9c57ace92b",
      "tree": "a5fc3c5f2753607991f08bdd4d918b5322e08742",
      "parents": [
        "653eadab2fd65051d36b117237ba0a91596cb8bf"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Oct 05 02:38:59 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Oct 05 02:38:59 2010 +0000"
      },
      "message": "erlang: Use Automake SUBDIRS instead of a manual forwarding rule\n\nPreviously, lib/erl/Makefile.am would forward rules like \"all\" and\n\"clean\" to the src subdir by manually invoking a submake.  However,\nspecifying src as a SUBDIR accomplishes this more easily and also\nensures that other rules like \"distclean\" work.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1004510 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "653eadab2fd65051d36b117237ba0a91596cb8bf",
      "tree": "576426e89e032c47fb5fa26be97922b305d4cbe7",
      "parents": [
        "8a441a46ad56b6f1f9d15ecadcc604a8b4c27c59"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Oct 05 02:38:58 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Oct 05 02:38:58 2010 +0000"
      },
      "message": "THRIFT-841. Exclude generated php and erlang Makefiles from \"make dist\"\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1004509 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8a441a46ad56b6f1f9d15ecadcc604a8b4c27c59",
      "tree": "5aa5d28a4c5530e0109ee820a6e435fe0caccf35",
      "parents": [
        "5bb525ccf938e3b183814f92097a96bb85941e07"
      ],
      "author": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Mon Oct 04 21:13:36 2010 +0000"
      },
      "committer": {
        "name": "Roger Meier",
        "email": "roger@apache.org",
        "time": "Mon Oct 04 21:13:36 2010 +0000"
      },
      "message": "THRIFT-940 use BOOST_LDFLAGS for unit tests, required to build on Mac OS X\n\nPatch: Christian Lavoie\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1004431 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "5bb525ccf938e3b183814f92097a96bb85941e07",
      "tree": "456557d59dde6efedc845c02d0c8c82d628088e9",
      "parents": [
        "e1ae6b45d556dc6e92aeaaa855206be807fbe8a3"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Sep 30 19:36:05 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Sep 30 19:36:05 2010 +0000"
      },
      "message": "THRIFT-939. java: optional binary fields throw NPE on default byte[] getters\n\nThis patch deals with null ByteBuffers correctly.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1003212 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e1ae6b45d556dc6e92aeaaa855206be807fbe8a3",
      "tree": "08942a7b20b87f329ed21016bc9e9a88ae1039aa",
      "parents": [
        "f0755e95c7f69d48cc994b80c02b940d9878a386"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Sep 28 17:44:45 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Sep 28 17:44:45 2010 +0000"
      },
      "message": "bump versions to 0.6.0\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1002294 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a18364ac88b035e9433a0238b8fbe75285aa04f3",
      "tree": "8e0e14db71433dde1ebd6f34a4fab028431ab535",
      "parents": [
        "ca67b899594004966f002a82ff126e0916f133d4"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Sep 28 14:36:07 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Sep 28 14:36:07 2010 +0000"
      },
      "message": "THRIFT-900. cpp: Unix domain socket\n\nThis patch adds a new Unix Socket transport.\n\nPatch: Roger Meier\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1002179 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b1a283f11e50650acc1b0730200b17bf8c5fac07",
      "tree": "946a409d029cb0735b2a280e9c8baa2cdd2d9fc7",
      "parents": [
        "84a7c2a901ee11433ca755edad1c278172ba7644"
      ],
      "author": {
        "name": "Todd Lipcon",
        "email": "todd@apache.org",
        "time": "Tue Sep 28 00:11:01 2010 +0000"
      },
      "committer": {
        "name": "Todd Lipcon",
        "email": "todd@apache.org",
        "time": "Tue Sep 28 00:11:01 2010 +0000"
      },
      "message": "THRIFT-912. java: Fix some bugs in SASL implementation, update protocol spec slightly\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1001973 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "84a7c2a901ee11433ca755edad1c278172ba7644",
      "tree": "a1fd80a229ba9d0613bca15cd417f8e39d2f82ea",
      "parents": [
        "4abfb288ab76b2291b49e4f9439107c3bcb26d7a"
      ],
      "author": {
        "name": "Todd Lipcon",
        "email": "todd@apache.org",
        "time": "Tue Sep 28 00:02:53 2010 +0000"
      },
      "committer": {
        "name": "Todd Lipcon",
        "email": "todd@apache.org",
        "time": "Tue Sep 28 00:02:53 2010 +0000"
      },
      "message": "THRIFT-931. java: Add log4j.properties missing from previous commit\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1001971 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "fcaa8f5364931155ba5675db7a02d898abf07998",
      "tree": "3f344a18e6f6f0f09d0b17f02b3b239249267e91",
      "parents": [
        "a406b90fa27221119baf09625345487de26db0a7"
      ],
      "author": {
        "name": "Todd Lipcon",
        "email": "todd@apache.org",
        "time": "Mon Sep 27 23:51:22 2010 +0000"
      },
      "committer": {
        "name": "Todd Lipcon",
        "email": "todd@apache.org",
        "time": "Mon Sep 27 23:51:22 2010 +0000"
      },
      "message": "THRIFT-931. java: Use log4j for Java tests\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1001967 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "fa6eaca7623c90a23adf088ee20f125cf7b2c388",
      "tree": "ed6ee585013f2bedabe7d302f96dd56a93c69900",
      "parents": [
        "abafd79aeede6c1f20632e41ff6e80d99e6fe479"
      ],
      "author": {
        "name": "Anthony F. Molinaro",
        "email": "molinaro@apache.org",
        "time": "Mon Sep 27 17:33:47 2010 +0000"
      },
      "committer": {
        "name": "Anthony F. Molinaro",
        "email": "molinaro@apache.org",
        "time": "Mon Sep 27 17:33:47 2010 +0000"
      },
      "message": "THRIFT-919 : updated haskell README\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1001830 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "abafd79aeede6c1f20632e41ff6e80d99e6fe479",
      "tree": "bc2ab5e9a1366b91528c70361918e772dd54eea3",
      "parents": [
        "833ae492902c08ab13ebc4efa73adef0a4936dff"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Sep 27 17:28:15 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Sep 27 17:28:15 2010 +0000"
      },
      "message": "THRIFT-335. python: Initial implementation of TCompactProtocol\n\nSeems to work.  No interoperability testing with other languages yet.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1001827 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a5df7c7b0ef66819f56039f95f6d8b40a3197d8d",
      "tree": "a4f6ff9e950746e1c53941fe1411c985d7a3f557",
      "parents": [
        "3a3686fd51aaed9153a2d3f7299785753ba8e315"
      ],
      "author": {
        "name": "Anthony F. Molinaro",
        "email": "molinaro@apache.org",
        "time": "Mon Sep 27 17:22:17 2010 +0000"
      },
      "committer": {
        "name": "Anthony F. Molinaro",
        "email": "molinaro@apache.org",
        "time": "Mon Sep 27 17:22:17 2010 +0000"
      },
      "message": "THRIFT-905: hook haskell into autoconf\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1001823 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "3a3686fd51aaed9153a2d3f7299785753ba8e315",
      "tree": "31fe7acd55b3a55d7515787e5c2b6714a74e09e3",
      "parents": [
        "0b4936dea5684d3b071d586492458e80c4e60a9f"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Sep 27 17:12:36 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Sep 27 17:12:36 2010 +0000"
      },
      "message": "THRIFT-917. java: THsHaServer should not accept an ExecutorService without catching RejectedExecutionException\n\nThis patch catches RejectedExecutionException from requestInvoke and closes the client connection when that occurs.\n\nPatch: Ed Ceaser\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1001820 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "daef1c8ed02102936655b9101a30cc8737a9eb15",
      "tree": "5d8676ac1ec36c74be58570e57ad8607079caf97",
      "parents": [
        "7404f2a72ffa3ec4495625f6eebc9a3735efd56b"
      ],
      "author": {
        "name": "Anthony F. Molinaro",
        "email": "molinaro@apache.org",
        "time": "Sun Sep 26 04:25:36 2010 +0000"
      },
      "committer": {
        "name": "Anthony F. Molinaro",
        "email": "molinaro@apache.org",
        "time": "Sun Sep 26 04:25:36 2010 +0000"
      },
      "message": "THRIFT-743: seems to compile and doesn\u0027t break other tests, so seems fine for now\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1001353 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "7466bcd5d7244c464a337816f760fd50c362e5be",
      "tree": "aa2b09463835fa0e151f7fc65bafbcd18d238516",
      "parents": [
        "6461d56d025893581fd9b06487b7c4788af3c0ed"
      ],
      "author": {
        "name": "Anthony F. Molinaro",
        "email": "molinaro@apache.org",
        "time": "Thu Sep 23 22:28:09 2010 +0000"
      },
      "committer": {
        "name": "Anthony F. Molinaro",
        "email": "molinaro@apache.org",
        "time": "Thu Sep 23 22:28:09 2010 +0000"
      },
      "message": "THRIFT-914 : haskell bindings compile easier\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@1000653 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "75a33e858fdeb2171a4ee973ee2e53d39e891d27",
      "tree": "ef607ff4c80dd1123a7ccd8f9827aa5345e00e44",
      "parents": [
        "f9e3c3b140f046bf726c79db77a2a02cdc452e9b"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Sep 22 00:48:56 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Sep 22 00:48:56 2010 +0000"
      },
      "message": "THRIFT-906. hs: Improve type mappings\n\nThis patch fixes the type mappings to be more sane. It *will* break existing code, but the breakages should be well worth it.\n\nPatch: Christian Lavoie\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@999700 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "6a1fb17a25ce7b52b7c5e396adf86ceb96606d64",
      "tree": "df7f8cca3980f6da2d22f6151a33c4c51b50b296",
      "parents": [
        "1237dcb099a068f83f31cc51df428f5c828d0511"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Sep 21 16:30:58 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Sep 21 16:30:58 2010 +0000"
      },
      "message": "THRIFT-909. rb: allow block argument to struct constructor\n\nThis patch allows the user to pass a block to generated structs\u0027 constructors. The block will receive and instance of the new object.\n\nPatch: Michael Stockton\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@999487 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "1237dcb099a068f83f31cc51df428f5c828d0511",
      "tree": "d79af03e648901967d1df27703c0c00e2e85c5f7",
      "parents": [
        "f38b2f10fb83284c9a449e9aec82fc2a10cba81e"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Sep 20 17:49:09 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Sep 20 17:49:09 2010 +0000"
      },
      "message": "THRIFT-880. javame: JavaME code generator and runtime library\n\nThis patch adds a new generator and library that produces code suitable for use in JavaME environments.\n\nPatch: David Engberg\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@999022 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e59a80fbf9d3be9eab5353355718fbd495fad0f1",
      "tree": "5e53ce8b7cef50693c92c7eb698fb2349366de41",
      "parents": [
        "fd32d79afa6a728b6dc320c5e0eda108b0622f98"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Sep 20 15:21:37 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Sep 20 15:21:37 2010 +0000"
      },
      "message": "THRIFT-901. hs: Allow the bindings to compile without -fglasgow-exts and with -Wall -Werror\n\nThis patch makes the bindings compile with pedantic warning levels, and individually declares each required language extension.\n\nPatch: Christian Lavoie\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@998955 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "fd32d79afa6a728b6dc320c5e0eda108b0622f98",
      "tree": "124fd29c85a51e0bf583f4a228f85d615633cdce",
      "parents": [
        "416eea9802d16645d4f4da8909abee5b4b51d95e"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat Sep 18 20:51:25 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat Sep 18 20:51:25 2010 +0000"
      },
      "message": "THRIFT-323. csharp: TJSONProtocol\n\nThis patch adds support for the JSON Protocol to the csharp library. \n\nPatch: Roger Meier\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@998539 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "416eea9802d16645d4f4da8909abee5b4b51d95e",
      "tree": "1064cf63968ea84a2155055281d583bb4a3c76f3",
      "parents": [
        "83c47958707956a8812b2c5c91a4550f874cb055"
      ],
      "author": {
        "name": "T Jake Luciani",
        "email": "jake@apache.org",
        "time": "Fri Sep 17 23:38:25 2010 +0000"
      },
      "committer": {
        "name": "T Jake Luciani",
        "email": "jake@apache.org",
        "time": "Fri Sep 17 23:38:25 2010 +0000"
      },
      "message": "THRIFT-885: fix string encoding\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@998371 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "83c47958707956a8812b2c5c91a4550f874cb055",
      "tree": "45ce71e9b34d618c29e42b04fc4eb399842f6db9",
      "parents": [
        "d920765c66472d0011a7c6b3c8ce612317fa3801"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Sep 17 20:17:21 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Sep 17 20:17:21 2010 +0000"
      },
      "message": "THRIFT-899. rb: Ruby read timeouts can sometimes be 2x what they should be\n\nThis patch makes sure that we don\u0027t wait longer than necessary for timeouts.\n\nPatch: Ryan King\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@998303 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d920765c66472d0011a7c6b3c8ce612317fa3801",
      "tree": "2cf8593dfa6ee143cad7960ea95bbfd0fae79027",
      "parents": [
        "bdd6261b3336cbb7f3df2829e0c001f6591bb224"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Sep 17 19:27:36 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Sep 17 19:27:36 2010 +0000"
      },
      "message": "THRIFT-882. java: deep copy of binary fields does not copy ByteBuffer characteristics (arrayOffset, position)\n\nThis patch ensures that binary fields are copied correctly.\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@998275 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a7420b6593998776871d55cbf415a0531c76a012",
      "tree": "9372057e8c93e9dab4e7e078db28e3a2f57cbf8a",
      "parents": [
        "a4c6d64e80e3d7f598ad97d213e83d66b7063a83"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Sep 13 15:42:36 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Sep 13 15:42:36 2010 +0000"
      },
      "message": "THRIFT-894. java: Make default accessors for binary fields return byte[]; provide new accessors to get ByteBuffer version\n\nThis patch causes the underlying ByteBuffer that backs a binary field to be hidden behind a default accessor that provides a byte[] interface. This should allow users who skipped 0.4 to update their generated code without breaking any of their other code. A new accessor has been added that allows a way down to the underlying ByteBuffer for those experts who want to take advantage.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@996579 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a4c6d64e80e3d7f598ad97d213e83d66b7063a83",
      "tree": "2e3090a44cdb99737eeae7e758e4b9f91377b78f",
      "parents": [
        "a97414674c2afb52331662d8603bd9133aae7f9a"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sun Sep 12 15:31:50 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sun Sep 12 15:31:50 2010 +0000"
      },
      "message": "java: tiny improvement to async client manager test, for real this time\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@996329 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a97414674c2afb52331662d8603bd9133aae7f9a",
      "tree": "1e21c31583cc88b3cfd1f5f5af1c737a15eee333",
      "parents": [
        "76ecb91c3d7034c939d6df9316f571cbf9f7ce09"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sun Sep 12 15:30:06 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sun Sep 12 15:30:06 2010 +0000"
      },
      "message": "java: tiny improvement to async client manager test\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@996328 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "13ad873d1815da49cf17f7a52c98895bfde011e1",
      "tree": "db857e5d26961bddc40ea7025e886fb738d75232",
      "parents": [
        "04650afb872fbf62dc31426d7278261bf178fc4f"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Sep 10 19:08:00 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Sep 10 19:08:00 2010 +0000"
      },
      "message": "THRIFT-896. java: TNonblockingSocket.isOpen() returns true even after close()\n\nThis patch makes TNonblockingSocket.isOpen() have more expected behavior.\n\nPatch: Eric Jensen\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@995939 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "34628f3e7ae6f69bad0ce31af0e7008873839bd6",
      "tree": "f12da388eba7d551e705793464530747819cac27",
      "parents": [
        "855294b21340b01d145bcbee438a6817c127a32e"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Sep 10 16:16:01 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Sep 10 16:16:01 2010 +0000"
      },
      "message": "THRIFT-250. java: ExecutorService as a constructor parameter for TServer \n\nThis patch adds a new constructor that accepts an ExecutorService.\n\nPatch: Ed Ceaser\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@995847 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "855294b21340b01d145bcbee438a6817c127a32e",
      "tree": "2f7b5273ade96de1c9f1f759e6673a7a3eec8296",
      "parents": [
        "d4837129729c85d49476cae08fb0c5ec84a2a811"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Sep 08 21:47:45 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Sep 08 21:47:45 2010 +0000"
      },
      "message": "THRIFT-888. java: async client should also have nonblocking connect\n\nThis patch adds optional nonblocking connect behavior.\n\nPatch: Eric Jensen\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@995262 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d4837129729c85d49476cae08fb0c5ec84a2a811",
      "tree": "8675cba9f78e99d93720747562cca82143b5a697",
      "parents": [
        "ef16420d54485fbc5310a3a1f4902e25032c652d"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Sep 08 00:06:35 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Sep 08 00:06:35 2010 +0000"
      },
      "message": "THRIFT-876. java: Add SASL support\n\nThis patch adds support for a SASL-secured transport to the Java library. In its current form, it only works for the blocking-IO servers.\n\nPatch: Aaron T Meyers\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@993563 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ef16420d54485fbc5310a3a1f4902e25032c652d",
      "tree": "3980ef13841cbc4e4e2f19956104ac33c6793df8",
      "parents": [
        "6a37b4d55ecb9414ddd905ee3c7227274f208442"
      ],
      "author": {
        "name": "Anthony F. Molinaro",
        "email": "molinaro@apache.org",
        "time": "Tue Sep 07 03:35:30 2010 +0000"
      },
      "committer": {
        "name": "Anthony F. Molinaro",
        "email": "molinaro@apache.org",
        "time": "Tue Sep 07 03:35:30 2010 +0000"
      },
      "message": "THRIFT-698 - fix .app file, remove unused parts of build system, updated LICENSE to reflect changes\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@993207 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "7a0825c34da505371aaaded74565108fa01f526c",
      "tree": "d5bf5d749fdab783bba793ff85d08e4f72647faa",
      "parents": [
        "fb790d726297cfa85900db00214fc0f3a9d029e6"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Sep 02 16:42:18 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Sep 02 16:42:18 2010 +0000"
      },
      "message": "THRIFT-856. cpp: Building cpp library fails on OS X with malloc and free not being declared in scope\n\nThis patch adds include which seems to fix the problem for some people.\n\nPatch: James Clarke\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@992013 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a9ca25a81ec3d5a82c03ca31e2cfad3c4b87c674",
      "tree": "3fede88f1ee8022217b3fbf19226e24bd69a62a6",
      "parents": [
        "c564fa569289240fb210c245b2b1125d759b93e1"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Sep 02 15:36:03 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Sep 02 15:36:03 2010 +0000"
      },
      "message": "THRIFT-666. python: Allow THttpServer\u0027s responses to be overridden\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991986 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c564fa569289240fb210c245b2b1125d759b93e1",
      "tree": "cf9b0bc7a52d4c0e4e13be18c3a21f0e9cbc18df",
      "parents": [
        "8ede81860c5b6c93645c62e871c213b4188e7162"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Sep 02 15:36:00 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Sep 02 15:36:00 2010 +0000"
      },
      "message": "THRIFT-596. python: Make the TBufferedTransport read buffer size configurable\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991985 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8ede81860c5b6c93645c62e871c213b4188e7162",
      "tree": "2e9325beccc0da26967f2be2a39ad552b8bd3ee8",
      "parents": [
        "383e9495667afbd686beb89bb510433fdd4cfe82"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Sep 02 15:26:28 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Thu Sep 02 15:26:28 2010 +0000"
      },
      "message": "THRIFT-798. cpp: Reduce resource leakage by TNonblockingServer destructor\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991980 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "383e9495667afbd686beb89bb510433fdd4cfe82",
      "tree": "3cf72e09b19021ede1bab7cff6e72301c3652e1d",
      "parents": [
        "d6a02ff99bcee734d5335c91f5ada41d7322ecb4"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Sep 02 15:16:56 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Sep 02 15:16:56 2010 +0000"
      },
      "message": "THRIFT-567. cpp: Can\u0027t immediately stop a TSimpleServer thread that is idle\n\nThis interrupts the server in addition to setting the stop flag.\n\nPatch: Rush Manbert\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@991974 13f79535-47bb-0310-9956-ffa450edef68\n"
    }
  ],
  "next": "d6a02ff99bcee734d5335c91f5ada41d7322ecb4"
}
