)]}'
{
  "log": [
    {
      "commit": "98c45872f938eb746186ccb437b9e3a51127e82f",
      "tree": "cab825c83203b5dbd81c88ce438151f91550c143",
      "parents": [
        "5af1b97173bd8cd2dda9529d441ca68960f5ff61"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Mar 26 05:58:34 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Mar 26 05:58:34 2010 +0000"
      },
      "message": "java: Convert Binary and Compact protocol tests to JUnit\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@927699 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "5af1b97173bd8cd2dda9529d441ca68960f5ff61",
      "tree": "8b85b83ee41d6a50812333c419dda006d89f978e",
      "parents": [
        "951e7e24800c0f0c4cfcdef5d634b1e16536eed0"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Mar 26 05:12:27 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Mar 26 05:12:27 2010 +0000"
      },
      "message": "THRIFT-719. java: Update Nonblocking and HsHa server to avoid an extra buffer copy\n\nThis patch causes Nonblocking and HsHa servers to explicitly enforce use of TFramedTransport and make sure that the actual invoker is deserializing from a TMemoryInputTransport. This should provide a substantial boost in performance.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@927695 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "951e7e24800c0f0c4cfcdef5d634b1e16536eed0",
      "tree": "82e20a1b25f22c85b021fe37601bcfaf97930ffd",
      "parents": [
        "15b7b287947dd348e2801ead6b1a33b2a2d6b31b"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Mar 26 05:05:59 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Mar 26 05:05:59 2010 +0000"
      },
      "message": "java: Add JUnit to ivy config. Convert Nonblocking server tests to use JUnit. Framework laid to convert the remainder of the tests.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@927693 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "27c97857582b79f9ca684e03641d1cf81e8916e3",
      "tree": "c74bd75a15eed2789278f92bc59f3755e8435a73",
      "parents": [
        "318a328aec8062d6edf5efcd41dc8702a8595253"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 23 03:50:16 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 23 03:50:16 2010 +0000"
      },
      "message": "THRIFT-739. java: TCompactProtocol isn\u0027t suitable for reuse in partialDeserialize\n\nThis patch changes TProtocol to support a reset() method that should clear any internal state. Stateless protocols can ignore it; stateful ones should implement it. TDeserializer has been updated to take advantage of this method.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@926460 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "318a328aec8062d6edf5efcd41dc8702a8595253",
      "tree": "3e2803b6f9d64d6639b8ef53643594384fdb90a7",
      "parents": [
        "f35a9b9152b66fc47c36ff25240e7704172d18ae"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Mar 22 02:34:57 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Mar 22 02:34:57 2010 +0000"
      },
      "message": "THRIFT-736. cpp: Check for availability of pthread_mutex_timedlock\n\nr920679 introduced a call to pthread_mutex_timedlock, which is not\navailable on all UNIX variants.  In particular, it is missing on Mac OS.\nAdd a preprocessor check for the relevant feature macro.  If it fails,\njust use a trylock.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@925940 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f35a9b9152b66fc47c36ff25240e7704172d18ae",
      "tree": "a3c27273ac062ae3b527cc11406f4db7b566caba",
      "parents": [
        "3f4ca0e8fd63ed0fde1a5a00097144384436f9b2"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Mar 17 16:47:41 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Mar 17 16:47:41 2010 +0000"
      },
      "message": "THRIFT-738. java: TCompactProtocol throws RuntimeException when it can\u0027t identify a type identifier\n\nThis patch causes it to throw TProtocolException instead.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@924364 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "5f013bb45d0c380b034c2099614ab1ba5eaea021",
      "tree": "071d8b8681eea052bc052c8a2961163d64b85872",
      "parents": [
        "767c1a90fed87d36aaf077322bb9225eff98ee52"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Mar 10 22:11:26 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Mar 10 22:11:26 2010 +0000"
      },
      "message": "cpp: Fix build problems introduced by r920682\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@921591 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "767c1a90fed87d36aaf077322bb9225eff98ee52",
      "tree": "74d9259050c94d86340354fad23257060f67aa10",
      "parents": [
        "450c240592b35c9706832fc853e0345cf5800c0d"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:28 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:28 2010 +0000"
      },
      "message": "cpp: Minor TSocketPool cleanups\n\n- Make sure the underlying socket is always closed.\n- Don\u0027t reconnect on repeated calls to open.\n- Move some code outside of a try block.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920691 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "450c240592b35c9706832fc853e0345cf5800c0d",
      "tree": "4e66c1262e215846a47111a29cdd5b9443ffc6ed",
      "parents": [
        "472fffb37530256702006ef00b6fcf949ecbc26c"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:26 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:26 2010 +0000"
      },
      "message": "cpp: Make an implicit virtual declaration explicit\n\nThis changes nothing since it\u0027s already declared virtual in the parent,\nbut this is clearer.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920690 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "472fffb37530256702006ef00b6fcf949ecbc26c",
      "tree": "7dcbdd2a01874a87d1831d03f5a8cea3e0c76633",
      "parents": [
        "ccd4bdb2aebee869c537c8a38fd1c00e9ac706b3"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:24 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:24 2010 +0000"
      },
      "message": "cpp: Don\u0027t leak memory on realloc failure in TNonblockingServer\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920689 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ccd4bdb2aebee869c537c8a38fd1c00e9ac706b3",
      "tree": "6101fccc2ad876b0a713bcb12cc99ed37790e268",
      "parents": [
        "336c29dbbeca40543a028c731be6d5c26aeeb363"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:21 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:21 2010 +0000"
      },
      "message": "cpp: Implement peek() for TFileTransport\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920688 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "336c29dbbeca40543a028c731be6d5c26aeeb363",
      "tree": "08468c3b5e5adee97a14735944ca9b1a4f134a7f",
      "parents": [
        "8af018bf13789a48af8a49827a0d18d26925d73f"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:19 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:19 2010 +0000"
      },
      "message": "cpp: Prevent TFileTransport seekToEnd from leaking memory\n\nIn seekToEnd we loop on readEvent to skip through the last chunk, but\nthe complete events returned are disowned by readState_ and therefore\nmust be freed by the caller.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920687 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8af018bf13789a48af8a49827a0d18d26925d73f",
      "tree": "594eac09f6b2be97fc19fb18992468ec6d570ed1",
      "parents": [
        "1c20c871d218f479e101f6e9fb25231189d1bf72"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:17 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:17 2010 +0000"
      },
      "message": "cpp: Prevent TFileTransport from throwing uncaught exceptions\n\nFilleTransport::writerThread throws exceptions. This function is run\ninside the writer thread, so these exceptions are not caught. When these\nexceptions happen, the system aborts.\n\nThe fix is to first eliminate all the throw commands inside this function. In\naddition, add some error recovery logic into the code: whenever an IO error\nhappens, we enter into an error recovery mode. Go to sleep for a few seconds\nthen try to reopen the file.\n\nNote: Currently, when errors happen, we drop events.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920686 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "1c20c871d218f479e101f6e9fb25231189d1bf72",
      "tree": "1929b75c9c431d890abe0810b4609b9ebcef084f",
      "parents": [
        "71a1530c74340e95a95a1b0b6c5699fbc082a9d9"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:14 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:14 2010 +0000"
      },
      "message": "cpp: Add setLowRTO to TSocket\n\nlow tcp RTO might mitigate TCP incast problems. Adding the setLowRTO\nfunction to TSocket allows us to experiment with a solution.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920685 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "71a1530c74340e95a95a1b0b6c5699fbc082a9d9",
      "tree": "fee7473fac0d403a4b8074b5991b2aa5f37c5ccc",
      "parents": [
        "eee98bede4e9934a0cdd32fcffcd0cc659b4d09a"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:12 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:12 2010 +0000"
      },
      "message": "cpp: Fix memory corruption bug in TBufferedTransport::borrowSlow()\n\nOn one code path, the code would read data past the end of its buffer.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920684 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "eee98bede4e9934a0cdd32fcffcd0cc659b4d09a",
      "tree": "8198a0dbfc88c65db98fddf9a8a8872307435290",
      "parents": [
        "ac110e4f1cd87ce38fce06e61ef88bc84ac2edb0"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:10 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:10 2010 +0000"
      },
      "message": "cpp: Disable IPV6_V6ONLY only if the socket is an AF_INET6 socket\n\nSome systems may disable IPV6 completely.  Ensure that we only disable\nIPV6_V6ONLY if the socket is AF_INET6\n\nNo longer see the warning:\n\nThrift: Wed Jul 22 18:08:36 2009 TServerSocket::listen() IPV6_V6ONLY Protocol not available\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920683 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ac110e4f1cd87ce38fce06e61ef88bc84ac2edb0",
      "tree": "36ed0ff4d1a5a098f89eaeaf5571fe884e8cffd6",
      "parents": [
        "7a2065d3dbdf361bbbe8b66a5b03080c0e532403"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:07 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:07 2010 +0000"
      },
      "message": "cpp: Eliminate circular dependency between thrift libraries\n\nPreviously, Thrift.cpp contained TApplicationException, which was using\nTProtocol methods, defined in TProtocol.h.  This caused a circular\ndependency since libprotocol depends on Thrift.h.  This change moves\nTApplicationException into its own file.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920682 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "7a2065d3dbdf361bbbe8b66a5b03080c0e532403",
      "tree": "35318367c65d8a46400ab0fec57102588e96a095",
      "parents": [
        "4cc0755b3382abc3e17ebba0ab4c2c78b9a8bbd7"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:04 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:04 2010 +0000"
      },
      "message": "cpp: Add profiling hooks to Mutex, ReadWriteMutex() classes\n\nExtend the Thrift C++ Concurrency library by allowing a user to register\na callback and a sample rate for lock primitive contention profiling.\nThe callback will be invoked approximately once every sampleRate calls\nto Mutex::lock(), Mutex::timedlock(), ReadWriteLock::acquireRead(), or\nReadWriteLock::acquireWrite().\n\nThe callback receives a pointer to the mutex responsible and the time\nwaited on the lock in micros (whether the lock was successfuly acquire\nor not).  The user can then implement a registry of his choice to\nlog/collect this data as needed.\n\nThis can all be easily compiled out if it harms performance.  By\ndefault, there is no profiling callback, so the overhead is minimal\n(one branch).\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920681 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4cc0755b3382abc3e17ebba0ab4c2c78b9a8bbd7",
      "tree": "c8fcb43e67e5787772f737062e436d6e25ca8220",
      "parents": [
        "4e19f1914e49db4b7913ff0f5af8eec51caee875"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:01 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:20:01 2010 +0000"
      },
      "message": "cpp: Fix a race/deadlock in ThreadManager\n\nWhen removing a task from the pending queue, we were only notifying a\nblocked thread waiting to enqueue a task if the number of pending tasks\nwas exactly one less than the limit.  However, if two tasks are finished\nat about the same time, this can result in two spots being freed up with\nonly one notify.  With this change, we always notify on task completion,\neliminating the race/deadlock.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920680 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4e19f1914e49db4b7913ff0f5af8eec51caee875",
      "tree": "64db18658f59cb9411dc32d8c9a764131e8c82f8",
      "parents": [
        "6c1ee214c447bef02c3aa091ff5706503d1b1004"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:59 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:59 2010 +0000"
      },
      "message": "cpp: non-blocking add for ThreadManager\n\nIt\u0027s rare for the ThreadManager mutex to be contended, but it is\npossible.  For nonblocking applications, it is necessary to have a\nstrict timeout for the lock acquisition.  With this change, that timeout\nis enforced.  Also add timeout parameters to Mutex::lock and\nGuard::Guard to support this feature.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920679 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "6c1ee214c447bef02c3aa091ff5706503d1b1004",
      "tree": "1a23e82355b5cadd2ea675cc37c39313f54d353e",
      "parents": [
        "a1a15112fed5f7ec934a352920b4c535941fd1ab"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:56 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:56 2010 +0000"
      },
      "message": "cpp: Extend FunctionRunner to support periodic calls (in a thread)\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920678 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a1a15112fed5f7ec934a352920b4c535941fd1ab",
      "tree": "5aca787d7a2489cbebb88fed005c97a47ac4eb84",
      "parents": [
        "eed92991cf064f7c89a911be734d51619150d6bf"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:54 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:54 2010 +0000"
      },
      "message": "cpp: TSocket: call a second gettimeofday only for error checking\n\nPreviously, we called gettimeofday twice for every send, which is\ncostly.  Now, we only make the second call if send fails with EAGAIN.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920677 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "eed92991cf064f7c89a911be734d51619150d6bf",
      "tree": "f2e05dedb6daeff59fdfa1609d30056216d4a2bc",
      "parents": [
        "8106ba617af50f2a325fd6ce01a1a995cbd320a9"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:52 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:52 2010 +0000"
      },
      "message": "cpp: TSocketPool: Optimize the case of a single server in the pool.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920676 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8106ba617af50f2a325fd6ce01a1a995cbd320a9",
      "tree": "67bf9253e4e6f58119ce830092ef73a1a2fa2b90",
      "parents": [
        "9c22ba41033a3f632df9db1c871cbf844e79824c"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:50 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:50 2010 +0000"
      },
      "message": "cpp: TSocketPool: make it possible to add servers by struct\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920675 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9c22ba41033a3f632df9db1c871cbf844e79824c",
      "tree": "f1345b9a32516d4f7863da36dbcb068692257af8",
      "parents": [
        "068f4169b9c2cd9f93ad32e99c5b0d5b786e0bc1"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:47 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:47 2010 +0000"
      },
      "message": "cpp: TTransport: set END_OF_FILE TException code if read returns 0\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920674 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "068f4169b9c2cd9f93ad32e99c5b0d5b786e0bc1",
      "tree": "da5926056c211612a1c1856e83fc7493f2af5f12",
      "parents": [
        "58e4d2c6e3b237825b573116d4e06781733ab5f5"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:45 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:45 2010 +0000"
      },
      "message": "cpp: TNonblockingServer: Allow unrun tasks to expire after a time limit\n\nEnhance ThreadManager to allow a expiration time interval to be assigned\nto tasks, and expire those tasks after that time limit has passed.\nEnhance TNonblockingServer to utilize this capability so it can be used\nfor overload resilience.\n\nNote: expired entries are only removed from the queue head, so the\nmechanism in ThreadManager may not do what you expect if you have\nheterogeneous expiration times. That\u0027s not an issue with\nTNonblockingServer (which will give all tasks the same limit) and might\nnot be in other cases where most tasks have the same limit and the rest\nexecute quickly. A full-up timeout queue would be more complex and have\ngreater overhead than that used here. It\u0027s unnecessary for the task at\nhand so I didn\u0027t go that route...\n\nThe TNonblocking interface is simple: a setTaskExpireTime() accepts a\n64-bit millisecond argument. 0 means infinite. A getTaskExpireTime()\naccessor completes the interface.\n\nThe ThreadManager interface involves an added argument to add() for the\nexpiration interval and a setExpireCallback() function for setting a\ncallback that is called for expired tasks (for this project this is\nnecessary to shut down the associated connection).\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920673 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "58e4d2c6e3b237825b573116d4e06781733ab5f5",
      "tree": "58baf86bf023662ae8c58d314f301b44ec1219d1",
      "parents": [
        "450e35d2a333a6883c4a7444d9687e9ebd1160dd"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:43 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:43 2010 +0000"
      },
      "message": "cpp: Log unexpected exceptions in TThreadPoolServer\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920672 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "450e35d2a333a6883c4a7444d9687e9ebd1160dd",
      "tree": "3ecd87d815ee076a751384a5e004a46ebc648ecb",
      "parents": [
        "9e8073c5cd71ad72f7603b36514af06cee09c830"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:41 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:41 2010 +0000"
      },
      "message": "cpp: Fix max TCP port number\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920671 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9e8073c5cd71ad72f7603b36514af06cee09c830",
      "tree": "6456dfabe60b407f7c700026512770e0620965da",
      "parents": [
        "e96fa5502f38d91e7c417343e4c504384fc84f31"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:39 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:39 2010 +0000"
      },
      "message": "Eliminate some trailing whitespace\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920670 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e96fa5502f38d91e7c417343e4c504384fc84f31",
      "tree": "99c93564471b280e9e74d089a824fdcd858b59b7",
      "parents": [
        "83b8fdac0ff52f1f1d9f96772b956c807f668593"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:37 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:37 2010 +0000"
      },
      "message": "cpp: Add enum and constructor to RWGuard to make read/write more visible\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920669 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "83b8fdac0ff52f1f1d9f96772b956c807f668593",
      "tree": "d4cecc242929b8313fa6abcb19aac9214937f0f4",
      "parents": [
        "a0dbfefbf3d09eebdc784f3fe6049c8bbc62a498"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:34 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:34 2010 +0000"
      },
      "message": "cpp: Fix for task completion notification deadlock under heavy server load\n\nAlong with insuring that the event loop is able to see task completion\nnotifications, we need to process pending notifications as soon as they\nare available to avoid filling the notification pipe (the pipe can hold\n512 notifications).\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920668 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a0dbfefbf3d09eebdc784f3fe6049c8bbc62a498",
      "tree": "17f873e6cd020a1dfbccb319229341c731698050",
      "parents": [
        "b9db49c6776bde3b06ce8a5ceb32c873f8de4592"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:32 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:32 2010 +0000"
      },
      "message": "cpp: TNonBlockingServer: Use separate monitor for max queue\n\nWe were using the same monitor for max queue size and empty queue, this\nmeant the notifies might be going to the wrong place.\n\nThis change significantly reduces the time spent in futex calls in\nloaded servers.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920667 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b9db49c6776bde3b06ce8a5ceb32c873f8de4592",
      "tree": "a6925b9e86822ef11fed77eacb2cd50aa0e072d3",
      "parents": [
        "28e88ecac1cab801112587068ee4fbc6de457e49"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:30 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:30 2010 +0000"
      },
      "message": "cpp: Let Monitors share Mutex instances\n\n- Let Monitor objects share a Mutex() instance so that more than one\n  condition can be implemented on top of a single mutex protecting an\n  important data structure.\n- Make Mutex and Monitor noncopyable\n- Add an accessor to Mutex() so the underlying pthread_mutex_t* can be\n  retrieved for passing to pthread_condwait\n- Change Monitor to use the actual Mutex class instead of creating a\n  naked pthread_mutex_t on its own\n- Add new constructors to Monitor\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920666 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "28e88ecac1cab801112587068ee4fbc6de457e49",
      "tree": "03bf1cc43953d72dc46fc7f2308aaa435926e61b",
      "parents": [
        "01fe15322f55a9aec5de6807fe0d4c54db7d79f6"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:27 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:27 2010 +0000"
      },
      "message": "cpp: Exit TNonBlockingServer on memmory allocation failure\n\nsetrlimit causes bad_alloc exceptions, but undefined behavior occurs if\nwe don\u0027t exit.  It is not typical for libraries to call exit, but it is\nnot clear what other behavior is possible.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920665 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "01fe15322f55a9aec5de6807fe0d4c54db7d79f6",
      "tree": "2f95d72f6b8f0fd8f544ce46367f1aeacf4069f9",
      "parents": [
        "e574a065a9ed100bda718582dc3378abc2933e78"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:25 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:25 2010 +0000"
      },
      "message": "cpp: TNonBlockingServer overload handling and optimizations\n\n- Establish a mechanism for TNonBlockingServer to handle overloads by\n  limiting the number of connections accepted or in-process.\n\n- Provide a framework for further work in handling server overloads.\n\n- Limit memory consumption of connection object pool.\n\n- Drop connections when overloaded.\n\n- Add overload-handling behavior allowing pending tasks to be dropped\n  from the front of the task queue (short of the ability to terminate\n  running tasks, these are the oldest tasks in the system and thus the\n  most likely to be beyond their freshness date).  This reduces the\n  chance of spending valuable CPU time processing a request that the\n  client has already timed out.\n\n- Uses a single persistent pipe() to communicate task completion instead\n  of constructing and monitoring a new socketpair() for every task in\n  the system.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920664 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "006260f07a49f74b1fe8fa7be39b0d34d14b8067",
      "tree": "69bdc1c11b213b0c3fb333c0c6b1965c498f1de6",
      "parents": [
        "c548b3dd6312e02df04ca822157c1e41193731c9"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:20 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:20 2010 +0000"
      },
      "message": "THRIFT-659. php: Make php_thrift_protocol handle std::exception cleanly\n\nAny std::exceptions thrown from within the extension will now be\nconverted into php exceptions.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920662 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c548b3dd6312e02df04ca822157c1e41193731c9",
      "tree": "4806597aca784581d8f5b21cdd4083822af2e490",
      "parents": [
        "ff3d249d413448489095991be7ce3176dbb87722"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:18 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:18 2010 +0000"
      },
      "message": "THRIFT-475. python: Eliminate DeprecationWarning\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920661 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ff3d249d413448489095991be7ce3176dbb87722",
      "tree": "e6b71aa1ba4b99ff178bfb6fdde6e9b57289033a",
      "parents": [
        "bec15e5105cae849b8095210e6ed6deac09c443d"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:16 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:16 2010 +0000"
      },
      "message": "THRIFT-658. python: Add THttpClient.setTimeout()\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920660 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "bec15e5105cae849b8095210e6ed6deac09c443d",
      "tree": "6c3f22cadc4465d1c9ea1ee79a49ae107608dd0d",
      "parents": [
        "487fd2e0435db0326a60821bcc96e56fa2eee711"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:14 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:14 2010 +0000"
      },
      "message": "THRIFT-661. java: Detect EOF in TIOStreamTransport\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920659 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "487fd2e0435db0326a60821bcc96e56fa2eee711",
      "tree": "c27ba642e688b704c41aceea37e584757d64c349",
      "parents": [
        "4dd7801e90fe10a6614890f3d176716582b04233"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:11 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 05:19:11 2010 +0000"
      },
      "message": "THRIFT-657. java: Detect negative length in TBinaryProtocol\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920658 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d93c626131455fe5f8757fe3ee29d7f7a5c4fe22",
      "tree": "8194aace90f3c53096f585806acb16d4c8714a33",
      "parents": [
        "4ae8780c5c1e37c4c480a23f277a7942e3aada09"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 09 05:14:34 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 09 05:14:34 2010 +0000"
      },
      "message": "THRIFT-656. java:  TDeserializer.toString is misnamed\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920656 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4ae8780c5c1e37c4c480a23f277a7942e3aada09",
      "tree": "b4af0631a81b83a4fec3bd43ace98dd030e60e52",
      "parents": [
        "53c10e09e15b446e7213b341e8fddc79296f1d51"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 00:49:14 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Tue Mar 09 00:49:14 2010 +0000"
      },
      "message": "THRIFT-706. cpp: Fix memory leak of string_buf_ in TCompactProtocol\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@920597 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "a268019e85ac34b5b7a1c89d59288ecead5e6d97",
      "tree": "957d8d4fdb680f901bf3cc9bd328d2be8cc5d746",
      "parents": [
        "0f52f072013e8fcb85a8382a412a764433cf0673"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 02 18:49:02 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 02 18:49:02 2010 +0000"
      },
      "message": "THRIFT-710. java: TBinaryProtocol should access buffers directly when possible\n\nThis patch makes TBinaryProtocol use direct buffer access in the relevant methods. Performance testing indicates as much as 2x speed boost, though your mileage may vary.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@918147 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "0f52f072013e8fcb85a8382a412a764433cf0673",
      "tree": "64d6282ae82512aef69ccbf7f89713845c1004bb",
      "parents": [
        "3e60fa6a54ecdd4b30df74e35ff64dbfd81a549c"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 02 18:39:57 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 02 18:39:57 2010 +0000"
      },
      "message": "THRIFT-711. java: TFramedTransport should support direct buffer access\n\nThis patch adds direct buffer read access to TFramedTransport as well as a simple test for reading, direct buffer reading, and writing.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@918142 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "3e60fa6a54ecdd4b30df74e35ff64dbfd81a549c",
      "tree": "61d0f58f4faa9de65fdbe7e5895310d8969335fb",
      "parents": [
        "4e7cf25b9574eb439b329070fd57e854948144df"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 02 18:34:00 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Mar 02 18:34:00 2010 +0000"
      },
      "message": "THRIFT-720. rb: HTTPClientTransport ignores url parameters\n\nThis patch causes the url parameters to be sent as expected. Patch by Tony Kamenick.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@918137 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "4e7cf25b9574eb439b329070fd57e854948144df",
      "tree": "dab0985ce758bdf31689f07d92bfb0f831c5997a",
      "parents": [
        "30dd725952ddce68eecc645426443a5ebb3bec52"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sun Feb 28 05:19:38 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sun Feb 28 05:19:38 2010 +0000"
      },
      "message": "THRIFT-716. java: Field names can conflict with local variables in code for unions\n\nThis patch resolves the name clash issue by removing the unnecessary parameters from the generated method and using the protected variables directly instead.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@917130 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "30dd725952ddce68eecc645426443a5ebb3bec52",
      "tree": "0d730bac16f5d98987031babcc5095027bbc6ddc",
      "parents": [
        "53cba3cfa23d7c86badb0f85606a26a3e2391aec"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat Feb 27 05:47:15 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Sat Feb 27 05:47:15 2010 +0000"
      },
      "message": "THRIFT-715. rb: Add additional test case for serialization of false boolean fields\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@916911 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "53cba3cfa23d7c86badb0f85606a26a3e2391aec",
      "tree": "225a23e3eae6b15fa6240797374bc133e3038db3",
      "parents": [
        "6acc269d1883c822595ab5f346c6e4c1e1b2724c"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Feb 26 21:38:42 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Feb 26 21:38:42 2010 +0000"
      },
      "message": "THRIFT-689. java:  Notify client of recoverable protocol errors on java server\n\nWhen a protocol error occurs, the server will now send back a message containing the exception. Clients should be able to detect and rethrow these exceptions as appropriate.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@916825 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "6acc269d1883c822595ab5f346c6e4c1e1b2724c",
      "tree": "c2c0b852bd0fd114cb1a6b27421b73560f630b7e",
      "parents": [
        "dee6d4260c2cca0917d5a921460d16f062ab27d6"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri Feb 26 00:56:02 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Fri Feb 26 00:56:02 2010 +0000"
      },
      "message": "THRIFT-695. python: [de]serialize convenience functions\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@916508 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "dee6d4260c2cca0917d5a921460d16f062ab27d6",
      "tree": "5ff6132c6d41c11b572ffd174593c40cdf920781",
      "parents": [
        "65073e5b116d1eb48ccc52c8446ebfdef4b36851"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Feb 23 19:06:25 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Feb 23 19:06:25 2010 +0000"
      },
      "message": "THRIFT-713. java: Java compareTo method throws NPE when any field isn\u0027t set.\n\nThis patch fixes a somewhat egregious bug in the generated compareTo for non-union structs and avoids possible NPEs.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@915499 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "65073e5b116d1eb48ccc52c8446ebfdef4b36851",
      "tree": "ad7802e3e337fbe91bc746f786c50f4ec3030d7a",
      "parents": [
        "a34a4be080e90888842959794b4c8e7838276996"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Feb 23 15:46:46 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Feb 23 15:46:46 2010 +0000"
      },
      "message": "add newline to the end of struct.c to make some whiney compilers happy\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@915398 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "205e4500f9212ee3689fd973ca4e7b4886d2ed1d",
      "tree": "3d608cbc308f10325ea64a52857ed3b8169f2285",
      "parents": [
        "39dadd6656d0cf009e8fdef42db9eea108cb6bb9"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Feb 18 23:19:42 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Feb 18 23:19:42 2010 +0000"
      },
      "message": "THRIFT-553. rb: thrift structs should be comparable (\u003c\u003d\u003e)\nThis patch adds the spaceship operator to the struct and union base classes, enabling object comparisons between objects without regenerating code.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@911644 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "39dadd6656d0cf009e8fdef42db9eea108cb6bb9",
      "tree": "58acd6527f377ad11660db7d3415aa90fb6942ab",
      "parents": [
        "0e4920c6b892ef46ae491fb1c65157ee6aab1367"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Feb 18 22:00:45 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Feb 18 22:00:45 2010 +0000"
      },
      "message": "THRIFT-712. rb: Inspect should print binary fields as hex instead of escaped string\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@911610 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "0e4920c6b892ef46ae491fb1c65157ee6aab1367",
      "tree": "ea29c136b62147ed20558badea98c4478bf8f867",
      "parents": [
        "becaf536211a699f1fb936752262fdb7bcd36126"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Feb 18 20:28:27 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Feb 18 20:28:27 2010 +0000"
      },
      "message": "THRIFT-708. rb: Is set checking methods\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@911557 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "becaf536211a699f1fb936752262fdb7bcd36126",
      "tree": "044e091e40d93663181ebfe9e9a4dc93fc85107c",
      "parents": [
        "3d03c527dfec72d10f885b3060ffdc35faa2cfb7"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Feb 18 18:27:51 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Feb 18 18:27:51 2010 +0000"
      },
      "message": "THRIFT-685. java: Direct buffer access to improve deserialization performance\n\nThis initial patch adds direct buffer access support to TDeserializer and TCompactProtocol, with the framework in place to be extended to other areas.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@911510 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "3d03c527dfec72d10f885b3060ffdc35faa2cfb7",
      "tree": "fad863700dcdc9493357e3582376d0715b2ae545",
      "parents": [
        "25b851af36d9260a18ffbf1494e572b54ce6d426"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Feb 18 17:42:06 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Feb 18 17:42:06 2010 +0000"
      },
      "message": "THRIFT-709. Print enum value names in Ruby\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@911500 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "25b851af36d9260a18ffbf1494e572b54ce6d426",
      "tree": "f79cff4218525eb109ebbd1cc05c5c4036c7974b",
      "parents": [
        "361ef347225707e2066b7b7397a5f9dddb5c8694"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Feb 17 23:10:48 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Feb 17 23:10:48 2010 +0000"
      },
      "message": "add some missing files to Manifest\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@911217 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "361ef347225707e2066b7b7397a5f9dddb5c8694",
      "tree": "4ebc65eb009fe01eda7bf30881bb738a1e68d487",
      "parents": [
        "5af64f03464b927bdc329065b24a063c02fe8412"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Feb 17 22:29:49 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Feb 17 22:29:49 2010 +0000"
      },
      "message": "bump rev on ruby gem version\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@911200 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "5af64f03464b927bdc329065b24a063c02fe8412",
      "tree": "35b1d05dca0514e0d91eb7ba6a4a866ffe7730b5",
      "parents": [
        "cd43a06405c806d7ff928262da29703cde7e764f"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Feb 17 22:27:27 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Feb 17 22:27:27 2010 +0000"
      },
      "message": "THRIFT-707. Support old-style constructors for Union structs\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@911199 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "cd43a06405c806d7ff928262da29703cde7e764f",
      "tree": "fab911ee1dae532d3b231b9fe9e4f73c28d61cdd",
      "parents": [
        "33e190cd150c326ac833c435f975c2e737cff74f"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Feb 17 20:01:29 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Feb 17 20:01:29 2010 +0000"
      },
      "message": "THRIFT-703. Attempting to hash an unset union struct results in NPE\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@911162 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "33e190cd150c326ac833c435f975c2e737cff74f",
      "tree": "1c0006c1547eaf0024ebd152518cb5a1541a6be4",
      "parents": [
        "322caa2f9289e8174069dbac1f8d7949e1130af6"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Feb 16 21:19:01 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Tue Feb 16 21:19:01 2010 +0000"
      },
      "message": "THRIFT-697. Union support in Ruby\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@910700 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "322caa2f9289e8174069dbac1f8d7949e1130af6",
      "tree": "6f6ccef8c84e4535a0e2a3c9506804946060bb42",
      "parents": [
        "f94f008d80bf858e4ad635fda61f8cd2bd1be0a2"
      ],
      "author": {
        "name": "T Jake Luciani",
        "email": "jake@apache.org",
        "time": "Mon Feb 15 03:24:55 2010 +0000"
      },
      "committer": {
        "name": "T Jake Luciani",
        "email": "jake@apache.org",
        "time": "Mon Feb 15 03:24:55 2010 +0000"
      },
      "message": "THRIFT-550: Added javascript support\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@910158 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f94f008d80bf858e4ad635fda61f8cd2bd1be0a2",
      "tree": "23f73dc58140f7ebb1d5f5d36c04f4e0fbf3f5bb",
      "parents": [
        "526112103cff44ec923d77aed0838b93a41f6b04"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Feb 12 22:49:40 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Feb 12 22:49:40 2010 +0000"
      },
      "message": "THRIFT-702. TUnion\u0027s toString method throws NPE if the union is unset\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@909645 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "526112103cff44ec923d77aed0838b93a41f6b04",
      "tree": "fc39796573ac228ae125555bbcf3b1a764917e34",
      "parents": [
        "ddfe0c96982c50901504921291a1b973c1304941"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Feb 10 23:23:35 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Feb 10 23:23:35 2010 +0000"
      },
      "message": "don\u0027t put all the test cases and generated classes into the jar - reduces size of jar from ~1M to ~200k.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@908746 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "ddfe0c96982c50901504921291a1b973c1304941",
      "tree": "4c4773fbfa18b0aad6c443daba906ce048ef674c",
      "parents": [
        "7acb526434d06f49998e7fe218c7ee384b005621"
      ],
      "author": {
        "name": "Andrew McGeachie",
        "email": "geechorama@apache.org",
        "time": "Wed Feb 10 01:03:01 2010 +0000"
      },
      "committer": {
        "name": "Andrew McGeachie",
        "email": "geechorama@apache.org",
        "time": "Wed Feb 10 01:03:01 2010 +0000"
      },
      "message": "THRIFT-687.  Fix memory leak in TSocketServer.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@908303 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "7acb526434d06f49998e7fe218c7ee384b005621",
      "tree": "68a6a1a20677158a87f2d87e433ef141577ba5aa",
      "parents": [
        "ba4bf4d512439b8eb1fb42584793dec40682a7f9"
      ],
      "author": {
        "name": "Andrew McGeachie",
        "email": "geechorama@apache.org",
        "time": "Wed Feb 10 00:56:09 2010 +0000"
      },
      "committer": {
        "name": "Andrew McGeachie",
        "email": "geechorama@apache.org",
        "time": "Wed Feb 10 00:56:09 2010 +0000"
      },
      "message": "THRIFT-686.  Adding TMemoryBuffer implementation to Cocoa\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@908301 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "3bb5e0581a076e5c754470f4d44979ad0cff8bc1",
      "tree": "98760787de98019370e9edebdc2565e9a878ef50",
      "parents": [
        "c771944644247f5ae31c37ffe937fe93c147b327"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Jan 25 19:31:31 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Jan 25 19:31:31 2010 +0000"
      },
      "message": "THRIFT-683. Remove profanity\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@902941 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c771944644247f5ae31c37ffe937fe93c147b327",
      "tree": "bb6bd15d84544d6f50bcd21555f0d28d940669a4",
      "parents": [
        "b6f4e56bb0c67d6f10391d9a6dff845e72c4100f"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Jan 21 03:20:01 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Jan 21 03:20:01 2010 +0000"
      },
      "message": "THRIFT-684. java: Add constructor to TNonblockingServerSocket to accept InetSocketAddress\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@901513 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "b6f4e56bb0c67d6f10391d9a6dff845e72c4100f",
      "tree": "b5c26073e9f3c53d859a541043c03de1e2f38dc0",
      "parents": [
        "c4ad9be578f22e240b28af2ca89f83ac18179cd1"
      ],
      "author": {
        "name": "Todd Lipcon",
        "email": "todd@apache.org",
        "time": "Tue Jan 19 05:18:55 2010 +0000"
      },
      "committer": {
        "name": "Todd Lipcon",
        "email": "todd@apache.org",
        "time": "Tue Jan 19 05:18:55 2010 +0000"
      },
      "message": "THRIFT-643. smalltalk: Generated code doesnt load on Squeak3.10.2-7179-basic and PharoCore-1.0-10491rc1 images\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@900660 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "db57aa0df9f83ff035bedb7e0afc447d0214acc0",
      "tree": "fd3df2b44c738f4bef0840bcfe11210a339b1d1b",
      "parents": [
        "8d41b643f9bb670f18404260fbe124c0cabb5360"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Jan 15 17:40:31 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Jan 15 17:40:31 2010 +0000"
      },
      "message": "THRIFT-677. java: IntRangeSet.java ignores first element in the constructor array\n\nThis change removes IntRangeSet from the codebase\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@899729 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "8d41b643f9bb670f18404260fbe124c0cabb5360",
      "tree": "b5595e39c95f7872e90e7df2ff5c864489cad454",
      "parents": [
        "62fb2ed1fea45f3193a0b295e5ef7f910a70cd6a"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Jan 15 17:30:40 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Jan 15 17:30:40 2010 +0000"
      },
      "message": "THRIFT-604: rb: nonblocking_server assumes that socket.read returns exactly one message\n\nThis patch causes every message currently in the buffer to be processed before going on.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@899725 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "62fb2ed1fea45f3193a0b295e5ef7f910a70cd6a",
      "tree": "ec21096d7fc2ba0fc75e779962553176bb383395",
      "parents": [
        "9bfacd36800f052e33ffa78a06bc9a4f600e5f3d"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Jan 15 17:29:26 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Jan 15 17:29:26 2010 +0000"
      },
      "message": "THRIFT-608. java: Option parameter is ignored for one constructors in THsHaServer\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@899723 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9d435ab1913de3a597c0e2596d2cf8a71180ee20",
      "tree": "af9c393aa3bc09487b8577654c2e1312fb950be1",
      "parents": [
        "752529e9b449f69d2fce19eba1c12471858279b9"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Jan 11 19:13:14 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Jan 11 19:13:14 2010 +0000"
      },
      "message": "THRIFT-560. haskell: Add THttpClient\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@898013 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "752529e9b449f69d2fce19eba1c12471858279b9",
      "tree": "f1e0d01e5caecb41a19e863dfc49bf5353702ada",
      "parents": [
        "35565a4719679523779d946420992bde33a4987c"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Jan 11 19:12:56 2010 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Mon Jan 11 19:12:56 2010 +0000"
      },
      "message": "THRIFT-560. haskell: Move to ByteString and compiler fixes\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@898012 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "35565a4719679523779d946420992bde33a4987c",
      "tree": "6ed14b92463c081d5a5c7f65231d74254f0ce4a6",
      "parents": [
        "3076fb8d791a07d6f4933bcfb7875ef0d27cb70e"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Jan 06 23:12:09 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Jan 06 23:12:09 2010 +0000"
      },
      "message": "THRIFT-671. rb: Ruby compact protocol implementation gets mixed up when there are fields that don\u0027t fit in the delta space\n\nThis patch adds a test and a fix for the problem.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@896712 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "3076fb8d791a07d6f4933bcfb7875ef0d27cb70e",
      "tree": "d7271f699fade812e54773234a4845cb6182572c",
      "parents": [
        "c2ec7cae04b1a18a0fbb2dc3802fb3d18f0c080c"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Jan 06 23:10:24 2010 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Jan 06 23:10:24 2010 +0000"
      },
      "message": "Bump rubygem version up to 0.2.0, now that we\u0027re released and all.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@896711 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "c2ec7cae04b1a18a0fbb2dc3802fb3d18f0c080c",
      "tree": "21ca03a118b38cebd1a3cc742239608d44ee5c71",
      "parents": [
        "986d50fc718f06b234cf59effd9d374678801557"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Dec 31 18:59:15 2009 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Dec 31 18:59:15 2009 +0000"
      },
      "message": "THRIFT-670. java: Unions don\u0027t skip unrecognizable fields correctly\n\nThis patch adds a test and a fix for the bug.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@894924 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "d250314e66b5a90b4aa5060ee1e326b5818cbb46",
      "tree": "3243d088c96f54df020bca22b6b247d3f5c1dcd6",
      "parents": [
        "2d80470bcb1a7e41ef0668194ab97bb65342baac"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Dec 28 18:49:03 2009 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Dec 28 18:49:03 2009 +0000"
      },
      "message": "(no ticket). java: Make Unions print binary values more tersely\n\nBytes were getting sign-extended out into giant strings of f\u0027s. This change makes sure only the bottom byte is used.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@894222 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "2d80470bcb1a7e41ef0668194ab97bb65342baac",
      "tree": "00cacf2bfbe22d4336e2c74fd0e45b37dd08d71e",
      "parents": [
        "e533bace3d462ebad7c65d7de4fd167a0ffbe740"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Dec 18 19:41:11 2009 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Dec 18 19:41:11 2009 +0000"
      },
      "message": "THRIFT-632. java: Constants of enum types don\u0027t behave well\n\nThis patch causes constants of all types to be resolved differently by the compiler, and makes it so that constants of enum types contain a reference to the enum type so that code generators can produce the correct names.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@892358 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "2727fab22f11a9d9c30b2c47d9d010adf97c15d6",
      "tree": "799d604fca5fa8020ce17c178ad72424e78dddf5",
      "parents": [
        "eb03222bca7d89654702569cad0c348b5dd44317"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Dec 09 19:30:01 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Dec 09 19:30:01 2009 +0000"
      },
      "message": "THRIFT-645. java: Create ant rules for running the test client and server\n\nI didn\u0027t make these depend on compile-test since ant doesn\u0027t seem to\ndetect that the class files are up to date, so it takes a really long\ntime to recompile everything.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@888931 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "53ae9f39d5118d9b13774413e7989b9f0fb1a8eb",
      "tree": "5cc5f76a2afed365f70f366994e255dbda59235c",
      "parents": [
        "f5dea4c7f31703cdc0c347eb7ec429fc5864afb4"
      ],
      "author": {
        "name": "Todd Lipcon",
        "email": "todd@apache.org",
        "time": "Mon Dec 07 00:42:38 2009 +0000"
      },
      "committer": {
        "name": "Todd Lipcon",
        "email": "todd@apache.org",
        "time": "Mon Dec 07 00:42:38 2009 +0000"
      },
      "message": "THRIFT-622. Add appropriate licensing information to get Thrift ready for a release.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@887812 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f5dea4c7f31703cdc0c347eb7ec429fc5864afb4",
      "tree": "e8aad41f828fc5ad8674b1c34fd02b1a9dad682c",
      "parents": [
        "9af23d9327277a791c8b22c4323b8e17e2bfc378"
      ],
      "author": {
        "name": "Todd Lipcon",
        "email": "todd@apache.org",
        "time": "Thu Dec 03 01:18:44 2009 +0000"
      },
      "committer": {
        "name": "Todd Lipcon",
        "email": "todd@apache.org",
        "time": "Thu Dec 03 01:18:44 2009 +0000"
      },
      "message": "THRIFT-637. python: Fix mixing of oneway and regular requests in TNonblockingServer\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@886646 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9af23d9327277a791c8b22c4323b8e17e2bfc378",
      "tree": "54b140c45dbb123fe46037ed5532c8519b49a1d2",
      "parents": [
        "e476480691d114ad1f1a9794bd10b34df6554ad2"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Nov 19 17:26:38 2009 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Nov 19 17:26:38 2009 +0000"
      },
      "message": "THRIFT-551. java: Enumeration doesn\u0027t generate real enum in Java\nThis patch makes the compiler generate actual Enum classes.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@882211 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "aa9fb5dc9de5f3cfbe086e6df8e7c6d3640c272c",
      "tree": "73292b4fb495b218715ab291af1f6517e84c4cc2",
      "parents": [
        "0c5c234b58802c36013b0d69b237ec3f098ebfd5"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Nov 12 20:52:25 2009 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Nov 12 20:52:25 2009 +0000"
      },
      "message": "THRIFT-623. java: Use a Java enum to represent field ids in generated structs\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@835538 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "0c5c234b58802c36013b0d69b237ec3f098ebfd5",
      "tree": "0e4b315ae9259b4ec5e6bf669e9a2f8052f77cc8",
      "parents": [
        "f2b8f750b3adf3db50fa38af5462e758a38cdc65"
      ],
      "author": {
        "name": "T Jake Luciani",
        "email": "jake@apache.org",
        "time": "Thu Nov 12 03:01:33 2009 +0000"
      },
      "committer": {
        "name": "T Jake Luciani",
        "email": "jake@apache.org",
        "time": "Thu Nov 12 03:01:33 2009 +0000"
      },
      "message": "THRIFT-619: Perl server and example\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@835206 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "f2b8f750b3adf3db50fa38af5462e758a38cdc65",
      "tree": "cc5feba9140e386a5f22f412f8a7a6b4eb9b55ac",
      "parents": [
        "93f8219567ab09f9dc35095ee3a8692f7a1992ad"
      ],
      "author": {
        "name": "T Jake Luciani",
        "email": "jake@apache.org",
        "time": "Thu Nov 12 02:44:42 2009 +0000"
      },
      "committer": {
        "name": "T Jake Luciani",
        "email": "jake@apache.org",
        "time": "Thu Nov 12 02:44:42 2009 +0000"
      },
      "message": "THRIFT-626: Increase timeouts for socket requests\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@835203 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "93f8219567ab09f9dc35095ee3a8692f7a1992ad",
      "tree": "abec108a452ac6e37f970c5974f7abc206a02618",
      "parents": [
        "e2e4ea1dcf09bdbf5bc2f270812ae2a3ca69c02b"
      ],
      "author": {
        "name": "T Jake Luciani",
        "email": "jake@apache.org",
        "time": "Thu Nov 12 02:36:30 2009 +0000"
      },
      "committer": {
        "name": "T Jake Luciani",
        "email": "jake@apache.org",
        "time": "Thu Nov 12 02:36:30 2009 +0000"
      },
      "message": "THRIFT-590: send/recv timeout values interchanged in perl socket lib\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@835200 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "e2e4ea1dcf09bdbf5bc2f270812ae2a3ca69c02b",
      "tree": "4f910afa1552dafc23e1b20d3bb90d46c7602449",
      "parents": [
        "7948a66cfc6d164cb27da71360a270838a7468c2"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Nov 11 21:01:35 2009 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Nov 11 21:01:35 2009 +0000"
      },
      "message": "THRIFT-624. java: compareTo is broken for Unions with binary fields\nThis patch adds a special case for byte[] values in TUnion. It also fixes a related bug in TBaseHelper for comparing two byte arrays.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@835065 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "7948a66cfc6d164cb27da71360a270838a7468c2",
      "tree": "13c564bbabda0ab4027b099ccf89f54aa53cc0c4",
      "parents": [
        "2845b16eb24fc66d34f66c776400354225e70bad"
      ],
      "author": {
        "name": "Esteve Fernandez",
        "email": "esteve@apache.org",
        "time": "Wed Nov 11 18:32:25 2009 +0000"
      },
      "committer": {
        "name": "Esteve Fernandez",
        "email": "esteve@apache.org",
        "time": "Wed Nov 11 18:32:25 2009 +0000"
      },
      "message": "THRIFT-210. c#: Add support for TFramedTransport\n\nauthor: Michael Greene (euphoria)\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@835006 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "2845b16eb24fc66d34f66c776400354225e70bad",
      "tree": "d3343b4fd1946cd672c08b7aa37e0ff594961a53",
      "parents": [
        "6731b57b582badaa3fca91e6ac54bf18cd2cf0f7"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Nov 09 15:55:22 2009 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Mon Nov 09 15:55:22 2009 +0000"
      },
      "message": "THRIFT-565. java: Structs containing typedefs for incomparable objects will be considered comparable\nThis patch causes the compiler to fully unwrap typedefs when determining comparability.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@834119 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "6731b57b582badaa3fca91e6ac54bf18cd2cf0f7",
      "tree": "23d56486b6514d39e6ed916f0cb460d1ec6dc9b1",
      "parents": [
        "3533dcbef88d1c4bae8e610f289c3297aea26a67"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Nov 04 00:30:10 2009 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Wed Nov 04 00:30:10 2009 +0000"
      },
      "message": "THRIFT-620. java: Compact Protocol should call readAll, not read\nThis patch switches to calling readAll instead of read.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@832633 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "034c49f0fcf95f13982de528f19760f5ed01617e",
      "tree": "99f43208fcd90ef32a501f7aff788fcb526ec06f",
      "parents": [
        "73380097e1afa0e8ea94eb40f6c17c8065f022ba"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 28 17:07:14 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 28 17:07:14 2009 +0000"
      },
      "message": "THRIFT-612. python: Fix exception bug in TFramedTransport.cstringio_refill\n\nreadFrame was being called without \"self.\"\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@830673 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "73380097e1afa0e8ea94eb40f6c17c8065f022ba",
      "tree": "56ab0b8e26703ce507b2b19284209ca1c54ebce5",
      "parents": [
        "72751724b5c1ff0397b8a35875cf3cb19f81ef64"
      ],
      "author": {
        "name": "Andrew McGeachie",
        "email": "geechorama@apache.org",
        "time": "Tue Oct 27 20:27:49 2009 +0000"
      },
      "committer": {
        "name": "Andrew McGeachie",
        "email": "geechorama@apache.org",
        "time": "Tue Oct 27 20:27:49 2009 +0000"
      },
      "message": "THRIFT-614. Add some more info to the exception that gets thrown when THTTPClient encounters an unexpected NSURLResponse object.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@830329 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "9b90344445d0a753e8a4a8a926c67d6a6c051c5e",
      "tree": "0592ac49bbbee220c31b3bd9a952d8f13e44ccc2",
      "parents": [
        "72fd472476a68dc55ca8cbfb05452d6c69fb0d19"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 21 05:51:28 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Wed Oct 21 05:51:28 2009 +0000"
      },
      "message": "THRIFT-606. cpp: Fix build on Solaris Nevada\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@827890 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "72fd472476a68dc55ca8cbfb05452d6c69fb0d19",
      "tree": "51c714a9cad4de734d3558ce8a35953a67d64698",
      "parents": [
        "834895d15c8e6761b1dd28401966c39d32954936"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Oct 15 01:24:26 2009 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Oct 15 01:24:26 2009 +0000"
      },
      "message": "THRIFT-589. java: Add Field Name to Field ID Mapping\nJava Thrift structs now have a static mapping of field name to field ID.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@825371 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "834895d15c8e6761b1dd28401966c39d32954936",
      "tree": "8dd7bb8a66f75b5ea2e130cbc49fa8871bf49c44",
      "parents": [
        "364902eb56493c513eab6eb5ba4dc680af7c1f1b"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Oct 15 01:20:34 2009 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Oct 15 01:20:34 2009 +0000"
      },
      "message": "THRIFT-603. rb: Struct read method does not call validate\nAfter reading a struct, we will now call the struct\u0027s validate method.\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@825369 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "51f288062dceebbb16886752ddeb0a24a8d04956",
      "tree": "39a9b4ee28f83ca7b5d6d227028805503c8ee9bf",
      "parents": [
        "315a5dbe29213aa70750f4e93542e1d72f3b0bb9"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Oct 01 20:53:45 2009 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Thu Oct 01 20:53:45 2009 +0000"
      },
      "message": "THRIFT-446. java: PartialDeserialization in Java\n\nThis patch adds a partialDeserialize method to TDeserializer that allows you to request a specific subfield of the serialized data.\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@820786 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "315a5dbe29213aa70750f4e93542e1d72f3b0bb9",
      "tree": "a7cf17a5eedae6c0f60d4bdb2605c3125cdd4ef3",
      "parents": [
        "bff2a35adf75e5da3483facab647601a73a1f9ee"
      ],
      "author": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Sep 25 20:28:35 2009 +0000"
      },
      "committer": {
        "name": "Bryan Duxbury",
        "email": "bryanduxbury@apache.org",
        "time": "Fri Sep 25 20:28:35 2009 +0000"
      },
      "message": "THRIFT-588. java: Generated .equals method throws NPE for thrift object\n\nIf other is null, then they\u0027re not equal.\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@818998 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "bff2a35adf75e5da3483facab647601a73a1f9ee",
      "tree": "88da87c4af3377005227a4387d3e99a86f391150",
      "parents": [
        "db40d26f4a61c1c2ae04997a6cc475bfd585d3e4"
      ],
      "author": {
        "name": "Esteve Fernandez",
        "email": "esteve@apache.org",
        "time": "Thu Sep 24 10:22:00 2009 +0000"
      },
      "committer": {
        "name": "Esteve Fernandez",
        "email": "esteve@apache.org",
        "time": "Thu Sep 24 10:22:00 2009 +0000"
      },
      "message": "THRIFT-586. python: TSocket incorrectly sets the exception type when an end of file error occurs\n\nTTransportException\u0027s type was set to \"Transport not open\" in some cases, which should\nbe its message.\nUse named arguments and set the type for TTransportException to END_OF_FILE in TSocket#read\nand TSocket#write.\n\nreviewer: dreiss\n\n\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@818429 13f79535-47bb-0310-9956-ffa450edef68\n"
    },
    {
      "commit": "3e7fca421efe0c76bc493a4058d3667c540bcca4",
      "tree": "44809cd68dc6383bfaa37f95a793f1665169274e",
      "parents": [
        "0e8e6099e215f3a6adcb6e5c75e9dc8ad53a7a21"
      ],
      "author": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Sat Sep 19 01:59:13 2009 +0000"
      },
      "committer": {
        "name": "David Reiss",
        "email": "dreiss@apache.org",
        "time": "Sat Sep 19 01:59:13 2009 +0000"
      },
      "message": "THRIFT-587. cpp: Properly set addrLen before accept calls\n\ngit-svn-id: https://svn.apache.org/repos/asf/incubator/thrift/trunk@816850 13f79535-47bb-0310-9956-ffa450edef68\n"
    }
  ],
  "next": "b42361c2e91efc63c11b21721643388db820b86d"
}
