)]}'
{
  "log": [
    {
      "commit": "86268584f64690dae9dd08ef9fd113827fad884a",
      "tree": "b7a105b4800dcd008c3c5afe35bffbc07e8a5942",
      "parents": [
        "37c7910072de4bf282f95f7c64f91155d6f2ce7e"
      ],
      "author": {
        "name": "Jonathan Haapala",
        "email": "jhaapala@newrelic.com",
        "time": "Mon Jun 30 14:50:49 2025 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Sun Sep 21 12:28:01 2025 -0700"
      },
      "message": "Add various/minor changes to some TProtocols for consistency and convenience\nClients: \"java\"\n"
    },
    {
      "commit": "845a87a8158e29ca4b3f176ab8b335a9302db300",
      "tree": "35685858fb2f7529706805fa56e1c41892c2dabf",
      "parents": [
        "2f8347c0a59e9c4ee3276c1618a6130bf3c5d15b"
      ],
      "author": {
        "name": "Hasnain Lakhani",
        "email": "m.hasnain.lakhani@gmail.com",
        "time": "Tue May 27 22:31:42 2025 -0700"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Fri Jun 06 21:37:35 2025 +0200"
      },
      "message": "[THRIFT-5871] Improve MAX_MESSAGE_SIZE_CHECK and friends\n"
    },
    {
      "commit": "32530798e144463e03a5438bdbf4834b63bec5b4",
      "tree": "02f965c24cc5f1ba4c34c44be21faba5644768a5",
      "parents": [
        "bd2e2a4792b126a9671dc081181be85d749fe4ad"
      ],
      "author": {
        "name": "dengzh",
        "email": "dengzhhu653@gmail.com",
        "time": "Wed Apr 30 11:45:02 2025 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Sun May 25 14:51:33 2025 +0200"
      },
      "message": "THRIFT-5869: Close the transport after TServerEventHandler deleteContext\n"
    },
    {
      "commit": "fb0f80dee832912bead53c4a832834b144350436",
      "tree": "d1ba1aca2ab5357b521ce1bfd85329f3ed513d35",
      "parents": [
        "14bc62f9bcbc4fde10e63d78d8f65f1c69a1ec79"
      ],
      "author": {
        "name": "Keith Turner",
        "email": "kturner@apache.org",
        "time": "Wed May 14 21:51:46 2025 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Sun May 18 14:21:02 2025 +0200"
      },
      "message": "Adds trace logging for java non blocking server memory limit\nClient: java\nPatch: Keith Turner\nCo-authored-by: Christopher Tubbs\n\nThis closes #3135\n"
    },
    {
      "commit": "14bc62f9bcbc4fde10e63d78d8f65f1c69a1ec79",
      "tree": "e4e50b07ec6eda43a263775082c02890574e0788",
      "parents": [
        "7da25be7cc4f1529a78f119f911f0fff51659e1f"
      ],
      "author": {
        "name": "yoelyang",
        "email": "yoelyang01@gmail.com",
        "time": "Thu Apr 11 16:58:19 2024 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Sun May 18 14:10:15 2025 +0200"
      },
      "message": "THRIFT-5774: Add remote client\u0027s IP address to ServerContext in TServerEventHandler\n"
    },
    {
      "commit": "32ce699a5ccfdb7125e9ac69959859233cfa629e",
      "tree": "c8e6797f3ea1c958aa7fe0d9c00c7d8fbcbaefca",
      "parents": [
        "4c219f3f64ae9dd8df82b1fbd58f96e76524ae52"
      ],
      "author": {
        "name": "dengzhihua",
        "email": "zdeng@MacBook-Pro.local",
        "time": "Fri Mar 21 19:16:17 2025 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Fri Apr 04 23:33:43 2025 +0200"
      },
      "message": "THRIFT-5858: Introduce new type MESSAGE_SIZE_LIMIT in TTransportException\n"
    },
    {
      "commit": "7cfd0187e658d83379ddbc3639c8f8a9a34081ce",
      "tree": "be4f737a0656d4147cfd6aa271e3f0d163918002",
      "parents": [
        "7c943358472dc11aa89d353b390f91d9564ff06d"
      ],
      "author": {
        "name": "dengzh",
        "email": "dengzhhu653@gmail.com",
        "time": "Mon Mar 24 00:50:16 2025 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Mon Mar 24 00:50:16 2025 +0800"
      },
      "message": "Log the exception when TThreadPoolServer breaks the work loop (#3113)\n\nCo-authored-by: dengzhihua \u003czdeng@MacBook-Pro.local\u003e"
    },
    {
      "commit": "a44c0c6c3e3f60342d6ee8530f7d887e1424f7a2",
      "tree": "01761f0b41fcd17c1a978bff7f3ae014990846b8",
      "parents": [
        "91565d490e98306ac6797dd6ed4f72c0e8222e78"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Wed Aug 14 14:42:16 2024 -0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed Aug 14 17:42:16 2024 -0400"
      },
      "message": "Fix failed java build (#3019)\n\nFix Java compilation issues introduced by THRIFT-4847 in d4503a1f0e62d38f7a12ba9748744c5490c915c4\r\nAlso fix the failing spotlessCheck\r\n\r\n---------\r\n\r\nCo-authored-by: Mario Emmenlauer \u003cmario@emmenlauer.de\u003e\r\nCo-authored-by: Christopher Tubbs \u003cctubbsii@apache.org\u003e"
    },
    {
      "commit": "d4503a1f0e62d38f7a12ba9748744c5490c915c4",
      "tree": "e6cb9e39a101988d6fd16b7883f19e43b7434c02",
      "parents": [
        "438fc822ffc10f85dc7d7a7d05a0f038231f458d"
      ],
      "author": {
        "name": "Marc Jakobi",
        "email": "marc.jakobi@tiko.energy",
        "time": "Thu Jul 25 10:59:03 2024 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Thu Aug 01 22:28:33 2024 +0200"
      },
      "message": "THRIFT-4847: CancelledKeyException causes TThreadedSelectorServer to fail\n"
    },
    {
      "commit": "28260982599cf3de90bb34af6589d8ddbf7bedce",
      "tree": "1f3ac97e9f093a9450ca571902378604c4d5f096",
      "parents": [
        "4233d75289cbd39581def1706ed3ac589f416992"
      ],
      "author": {
        "name": "Thomas",
        "email": "thomasbruggink@hotmail.com",
        "time": "Fri Mar 15 19:08:16 2024 +0900"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Fri Mar 22 22:49:03 2024 +0100"
      },
      "message": "THRIFT-5762 Fix spotless errors\n\nRun `gradlew :spotlessApply` to apply the correct coding style.\n\nUpdate kotlin compiler to support `getEmptyResultInstance`\n\nhttps://github.com/apache/thrift/pull/2939 added the feature to create\nan instance of the result object without having to use the\nProcessFunction.\nThe Kotlin compiler re-uses the java lib so this commit udpates the\nKotlin compiler to support this feature as well.\n"
    },
    {
      "commit": "b6cf04941f29ecb4c44ab10ba1c4df3e8bccbaec",
      "tree": "97eb91d293ea751a4856fd7d26101ed1daf4651a",
      "parents": [
        "da2ef3486ba5c0f27e470f010590b14d330f799a"
      ],
      "author": {
        "name": "Thomas",
        "email": "thomasbruggink@hotmail.com",
        "time": "Sun Feb 25 18:05:38 2024 +0900"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "Jens-G@users.noreply.github.com",
        "time": "Wed Mar 06 00:53:58 2024 +0100"
      },
      "message": "THRIFT-5762 Expose service result objects in Java\n\nSome libraries want to bypass the TServer class and handle the full\nservice startup manually. For example when building a service that hosts\nmultiple thrift services where the IFace type is unknown when handling a\nrequest.\n\nFor example when you host multiple services on top of netty and through\nan HTTP path you want to route to the correct thrift service. In this\nsituation you treat can treat an IFace as an Object and use the\n`getProcessMapView()` method to parse a byte array into a thrift message\nand pass let the `AsyncProcessFunction` handle the invocation.\n\nTo return a correct thrift response it\u0027s necessary to write the\n`{service_name}_result` that contains the response args.\nWhile it is possible to get an incoming args object from the\n(Async)ProcessFunction its unfortunately not possible to get\na result object without using reflection.\n\nThis PR extends the (Async)ProcessFunction by adding a\n`getEmptyResultInstance` method that returns a new generic `A` (answer)\nthat matches the `{service_name}_result` object.\n\nThis allows thrift users to write the following processing code:\n```java\n\u003cI\u003e void handleRequest(\n        TProtocol in,\n        TProtocol out,\n        TBaseAsyncProcessor\u003cI\u003e processor,\n        I asyncIface\n) throws TException {\n    final Map\u003cString, AsyncProcessFunction\u003cObject, TBase\u003c?, ?\u003e, TBase\u003c?, ?\u003e, TBase\u003c?, ?\u003e\u003e\u003e processMap \u003d (Map) processor.getProcessMapView();\n    final var msg \u003d in.readMessageBegin();\n    final var fn \u003d processMap.get(msg.name);\n\n    final var args \u003d fn.getEmptyArgsInstance();\n    args.read(in);\n    in.readMessageEnd();\n\n    if (fn.isOneway()) {\n        return;\n    }\n\n    fn.start(asyncIface, args, new AsyncMethodCallback\u003c\u003e() {\n        @Override\n        public void onComplete(TBase\u003c?, ?\u003e o) {\n            try {\n                out.writeMessageBegin(new TMessage(fn.getMethodName(), TMessageType.REPLY, msg.getSeqid()));\n                final var response_result \u003d fn.getEmptyResultInstance();\n                final var success_field \u003d response_result.fieldForId(SUCCESS_ID);\n                ((TBase) response_result).setFieldValue(success_field, o);\n                response_result.write(out);\n                out.writeMessageEnd();\n                out.getTransport().flush();\n            } catch (TException e) {\n                throw new RuntimeException(e);\n            }\n        }\n\n        @Override\n        public void onError(Exception e) {\n            try {\n                out.writeMessageBegin(new TMessage(fn.getMethodName(), TMessageType.EXCEPTION, msg.getSeqid()));\n                ((TApplicationException) e).write(out);\n                out.writeMessageEnd();\n                out.getTransport().flush();\n            } catch (TException ex) {\n                throw new RuntimeException(ex);\n            }\n        }\n    });\n}\n```\nThe above example code doesn\u0027t need any reference to the original types\nand can dynamically create the correct objects to return a correct\nresponse.\n"
    },
    {
      "commit": "4e4461a946df3a426e54023cc238417f2b14a070",
      "tree": "7d5130ac931ef5c81ee83fdba777c97558286903",
      "parents": [
        "0e872c84aaa49fe9ce72123827f666c0064f0c97"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Thu Aug 10 08:54:54 2023 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Mon Aug 14 13:31:22 2023 -0700"
      },
      "message": "THRIFT-5653: Fix Java UUID typeid\n\nIt should be 16 not 17 according to the spec.\n\nCurrently ENUM holds 16, it\u0027s not in TBinaryProtocol spec and seems to\nbe a Java implementation detail somehow got mixed inside TType, move\nthat to -1 for now. Someone more familiar with Java can probably remove\nit from TType completely in the future.\n\nclient: java\n"
    },
    {
      "commit": "abf3fc31470daf57dc50085f56396abba4b3bc1d",
      "tree": "a5f962c79779f62696283146c6e6ede0188e2996",
      "parents": [
        "a31208823aedea5740b85575f51d2c97b320330b"
      ],
      "author": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "yuxuan.wang@reddit.com",
        "time": "Tue Jun 27 10:04:09 2023 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Tue Jun 27 12:47:44 2023 -0700"
      },
      "message": "Fix spotlessJavaCheck failures\n\nThose are failing CI for a while.\n"
    },
    {
      "commit": "285e39c2422935d80442c0952d88315354f2ac64",
      "tree": "8276b888346dfc1277d27da593e032334294dc8f",
      "parents": [
        "cfede863143810bb8b59e3cb67c532c72bc25bd1"
      ],
      "author": {
        "name": "nicolasb29",
        "email": "nicolas.bonamy2@gmail.com",
        "time": "Thu May 25 23:59:11 2023 +0200"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 25 17:59:11 2023 -0400"
      },
      "message": "THRIFT-5700: Migrate to JakartaEE and Apache HttpComponents 5 (#2746)\n\n- Migrate to JakartaEE and Apache HttpComponents 5\r\n- Modify C code to choose which namespace choose for \"Generated\" annotations (jakarta by default)\r\n"
    },
    {
      "commit": "c82d0c2101544abcad6895b3c9f962980c15844c",
      "tree": "a4d2de4f1529242b9d1ec2c78498ded213ad6b79",
      "parents": [
        "cb60265ec192a5c152d0ce6d4e4ce65633945073"
      ],
      "author": {
        "name": "Jiayu Liu",
        "email": "Jimexist@users.noreply.github.com",
        "time": "Sat Apr 08 16:42:48 2023 +0700"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Apr 08 16:42:48 2023 +0700"
      },
      "message": "reduce java logging (#2659)\n\n"
    },
    {
      "commit": "cb60265ec192a5c152d0ce6d4e4ce65633945073",
      "tree": "ad8cdb140f3dc2f94a161e902ea2894ca9aa9ae8",
      "parents": [
        "12ab079ecfe0c87e984fc7498a43a614d8e8a240"
      ],
      "author": {
        "name": "Riza Suminto",
        "email": "riza.suminto@cloudera.com",
        "time": "Wed Apr 05 13:31:44 2023 -0700"
      },
      "committer": {
        "name": "Yuxuan \u0027fishy\u0027 Wang",
        "email": "fishywang@gmail.com",
        "time": "Thu Apr 06 11:46:34 2023 -0700"
      },
      "message": "THRIFT-5696: Allow custom TConfiguration for TByteBuffer.java\n"
    },
    {
      "commit": "9207b28b7df5f8e01960154971e8de07094c91a8",
      "tree": "233936413d4fd20ba0006970c7cd54c1b1454c55",
      "parents": [
        "439778ae44cb6da5401d8996c392ade1275d497e"
      ],
      "author": {
        "name": "Jiayu Liu",
        "email": "Jimexist@users.noreply.github.com",
        "time": "Sat Oct 15 16:53:55 2022 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sat Oct 15 16:53:55 2022 +0800"
      },
      "message": "fix various java codestyle issues (#2710)\n\n* fix various java codestyle issues\r\n\r\n* Update lib/java/src/main/java/org/apache/thrift/server/TSaslNonblockingServer.java"
    },
    {
      "commit": "0b1a74a3d39afeeb1a8fdc3fbb2dd456172732ca",
      "tree": "686fd17ec7bcd3c30ea8e6e52103b8b19099e0e9",
      "parents": [
        "f027deeaa8bf21769d83a35ac37ede21f035c0ad",
        "60655d2de79e973b89fab52af82f9628d4843b0f"
      ],
      "author": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Sep 19 21:58:45 2022 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Sep 19 21:58:45 2022 +0200"
      },
      "message": "Merge branch \u00270.17.0\u0027 into upstream\n"
    },
    {
      "commit": "60655d2de79e973b89fab52af82f9628d4843b0f",
      "tree": "0269743d2c9b3fa513ecee7fa1be1a6167ed838e",
      "parents": [
        "4d493e867b349f3475203ef9848353b315203c51"
      ],
      "author": {
        "name": "Jiayu Liu",
        "email": "jiayu@hey.com",
        "time": "Mon Sep 19 13:17:05 2022 +0800"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Sep 19 19:23:47 2022 +0200"
      },
      "message": "fix pmd main for java\n"
    },
    {
      "commit": "3f4fa2947dc6e049e0f4748bdb6142b0c4673164",
      "tree": "0adc74f06edd9675f38b4bc6c8d8385e2035428d",
      "parents": [
        "18564d29cf804e5ab6440c781c99889520656886"
      ],
      "author": {
        "name": "Jiayu Liu",
        "email": "jiayu@hey.com",
        "time": "Thu Jun 09 10:58:56 2022 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Mon Sep 05 22:04:21 2022 +0200"
      },
      "message": "THRIFT-5587 add uuid support for java and kotlin\nClient: java, kt\nPatch: Jiayu Liu\n\nThis closes #2621\n"
    },
    {
      "commit": "0aa108fe1ab921ef0371bcfffd3edfa8bea2cdc7",
      "tree": "c9e1fec96133688c726dc61636e3343b46c6b905",
      "parents": [
        "d5c6697bce9efbab0974e6f99df822355335df8a"
      ],
      "author": {
        "name": "Sylwester Lachiewicz",
        "email": "slachiewicz@apache.org",
        "time": "Wed May 18 21:17:56 2022 +0200"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Thu Aug 25 22:24:40 2022 +0200"
      },
      "message": "THRIFT-5502 Log SocketException at WARN level only + Fix formatting\nClient: java\nPatch: Sylwester Lachiewicz \u0026 Christopher Tubbs\n\nThis closes #2608\n"
    },
    {
      "commit": "5b158389b01d028e98e59f0ea41c01d625a84242",
      "tree": "7f8da5c4f388d25f9949952bb566baf6b6fdb1a2",
      "parents": [
        "dae1437ca03834527b654cf5bc8d7f41c9412a20"
      ],
      "author": {
        "name": "Jiayu Liu",
        "email": "Jimexist@users.noreply.github.com",
        "time": "Thu May 12 00:20:37 2022 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Wed May 11 12:20:37 2022 -0400"
      },
      "message": "THRIFT-5581: use gradle 7 for java/kotlin (#2601)\n\n* upgrade gradle version to 7.4\r\n* migrate from `maven` plugin to `maven-publish` plugin as required for Gradle 7\r\n* add guard to ktfmt, since it can\u0027t run with JDK 8\r\n\r\nCo-authored-by: Christopher Tubbs \u003cctubbsii@apache.org\u003e"
    },
    {
      "commit": "a24bcd39a50e3472b5f1bf9fb5b8526fccf7911e",
      "tree": "0388c2f4538202514ad670d0ee69f28fa5b8441a",
      "parents": [
        "ab83ffc894c00f0a8feade2f54cb444c22e16461"
      ],
      "author": {
        "name": "Jiayu Liu",
        "email": "Jimexist@users.noreply.github.com",
        "time": "Tue May 10 19:11:07 2022 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue May 10 07:11:07 2022 -0400"
      },
      "message": "THRIFT-5582: Improve TProtocol.java for Kotlin generator (#2603)\n\n* Improve TProtocol.java through the use of interfaces\r\n* Reduce Kotlin extensions usage"
    },
    {
      "commit": "891c521528beb57fef0c362f535e3e355b52cd1c",
      "tree": "2266ab306b5d5426a389b9024c5d05f542967d7b",
      "parents": [
        "eb62fa8d13f9860c4c877d0252e67ef21b013488"
      ],
      "author": {
        "name": "Jiayu Liu",
        "email": "Jimexist@users.noreply.github.com",
        "time": "Sun May 08 13:31:21 2022 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Sun May 08 01:31:21 2022 -0400"
      },
      "message": "THRIFT-5543: add type parameter to java lib field metadata (#2552)\n\n* add type parameter to java lib field metadata\r\n* reduce number of exceptions"
    },
    {
      "commit": "53ec08228a14130909d4dd6fc2c98f47a09d76b0",
      "tree": "19fd3589502b5471be23efe4d1190ad26fcbc91e",
      "parents": [
        "23b86364ef3dbccc19f5f3828e6d115f7b015651"
      ],
      "author": {
        "name": "Jiayu Liu",
        "email": "Jimexist@users.noreply.github.com",
        "time": "Fri May 06 12:56:42 2022 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Fri May 06 00:56:42 2022 -0400"
      },
      "message": "THRIFT-5568: enforce consistent Java formatting (#2581)\n\n* use spotless plugin and google-java-format to enforce a consistent code format\r\n* add a step of spotless check before building\r\n* only run spotless on the src/ directory\r\n\r\nCo-authored-by: Christopher Tubbs \u003cctubbsii@apache.org\u003e"
    },
    {
      "commit": "ada086529730b13eedb74a975db5167f405d18af",
      "tree": "3311044cf35ddc4c9a45bd39d96eab4d74483268",
      "parents": [
        "7fb21ebff73d6d1f87c67d7d0285ef39f704bce6"
      ],
      "author": {
        "name": "Jiayu Liu",
        "email": "Jimexist@users.noreply.github.com",
        "time": "Fri May 06 03:19:57 2022 +0800"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu May 05 15:19:57 2022 -0400"
      },
      "message": "THRIFT-5544: annotations_as_metadata java code gen param (#2553)\n\nAdd a java code generation parameter called \"annotations_as_metadata\" to\r\noptionally include Thrift field annotations as metadata in the generated code."
    },
    {
      "commit": "eac5103f8204021f7b5436001319c2b17ed5644f",
      "tree": "22610465f5927c466b2e9baa87e55fe116347c6c",
      "parents": [
        "8987820e84ac26392293ab40480cf8f2971fb314"
      ],
      "author": {
        "name": "Jiayu Liu",
        "email": "jiayu.liu@airbnb.com",
        "time": "Fri Mar 11 04:55:13 2022 +0100"
      },
      "committer": {
        "name": "Jens Geyer",
        "email": "jensg@apache.org",
        "time": "Wed Apr 20 23:37:58 2022 +0200"
      },
      "message": "THRIFT-5545: use gradle convention in organizing java project\nClient: java\nPatch: Jiayu Liu\n\nThis closes #2546\n"
    }
  ]
}
