)]}'
{
  "log": [
    {
      "commit": "7c992a1a9f492d0f9e57222fde750ad656f8073e",
      "tree": "4dd586ceae88af63ff9e2b235f3ee2ea7c52a4f2",
      "parents": [
        "4475af89f04c9d199d22fcd5d85b35786924c6c3"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Tue Sep 22 17:02:27 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Sep 22 17:03:27 2026"
      },
      "message": "[IfChainToSwitch] fix bug where cases with multiple patterns ORed can be silently dropped from suggested fix\n\nPiperOrigin-RevId: 986066318\n"
    },
    {
      "commit": "4475af89f04c9d199d22fcd5d85b35786924c6c3",
      "tree": "5b87012c08e18f5eae0a1c225877ba378f8b300b",
      "parents": [
        "e515380eab1258140976649e4b87abc9713c79e1"
      ],
      "author": {
        "name": "Rick Ossendrijver",
        "email": "rick.ossendrijver@gmail.com",
        "time": "Tue Sep 22 15:34:12 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Sep 22 15:35:17 2026"
      },
      "message": "Don\u0027t suggest making JUnit 5 test methods `private` in `ExposedPrivateType`\n\n`shouldReduceVisibility` exempts reflectively invoked test methods using `JUnitMatchers.TEST_CASE`, which covers JUnit 3 and 4 only. Jupiter test methods were therefore privatised, which silently stops them running.\n\nMatching `@ParameterizedTest` requires looking through the `@TestTemplate` meta-annotation, hence `TypePredicates#hasAnnotation` and `Matchers#hasMetaAnnotation`.\n\nThis PR ports over a few Matchers we in Error Prone Support.\n\nFixes https://github.com/google/error-prone/pull/6137\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/google/error-prone/pull/6137 from PicnicSupermarket:bugfix/exposed-private-type-junit5 e44d1f7538da522ba5f6143ccd04e667df4f4e03\nPiperOrigin-RevId: 986017102\n"
    },
    {
      "commit": "e515380eab1258140976649e4b87abc9713c79e1",
      "tree": "ec7a8bc7fb7d8c5ecd8968bab8e2c6f3719a2580",
      "parents": [
        "910dd1ee98609138a056b656f086126ce8ff9197"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Sep 21 21:18:10 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Sep 21 21:19:11 2026"
      },
      "message": "[IfChainToSwitch] demonstrate a bug where cases with multiple patterns ORed can be silently dropped from suggested fix\n\nPiperOrigin-RevId: 985507019\n"
    },
    {
      "commit": "910dd1ee98609138a056b656f086126ce8ff9197",
      "tree": "b5ba784e4ad741287ea158630df362ddb4dfb04c",
      "parents": [
        "2c0e628327fd58ec29c1871418af377cb51e7cb0"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Sep 21 17:33:35 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Sep 21 17:35:02 2026"
      },
      "message": "Bump the dependencies group with 2 updates\n\nBumps the dependencies group with 2 updates: [org.safere:safere](https://github.com/eaftan/safere) and [org.codehaus.mojo:exec-maven-plugin](https://github.com/mojohaus/exec-maven-plugin).\n\nUpdates `org.safere:safere` from 0.10.0 to 0.11.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/eaftan/safere/releases\"\u003eorg.safere:safere\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSafeRE 0.11.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eSafeRE 0.11.0 expands search and replacement acceleration across String and direct UTF-8 inputs, adds an opt-in Vector API scanner, and fixes matcher lifecycle, line-boundary, and Unicode matching behavior. Java 21 remains the minimum runtime; building SafeRE from source requires JDK 26.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eCompatibility change:\u003c/strong\u003e Character-class intersection \u003ccode\u003e\u0026amp;\u0026amp;\u003c/code\u003e now requires nonempty operands on both sides. Malformed expressions such as \u003ccode\u003e[\u0026amp;\u0026amp;a]\u003c/code\u003e, \u003ccode\u003e[a\u0026amp;\u0026amp;]\u003c/code\u003e, \u003ccode\u003e[a\u0026amp;\u0026amp;\u0026amp;b]\u003c/code\u003e, and \u003ccode\u003e[a\u0026amp;\u0026amp;-b]\u003c/code\u003e throw \u003ccode\u003ePatternSyntaxException\u003c/code\u003e. Rewrite affected classes using explicit operands and escape literal punctuation where needed. A solitary \u003ccode\u003e\u0026amp;\u003c/code\u003e is treated as a literal within its operand. See the \u003ca href\u003d\"https://github.com/eaftan/safere/blob/v0.11.0/INTENTIONAL_DIVERGENCES.md\"\u003edocumented intentional divergences\u003c/a\u003e for details. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/801\"\u003e#801\u003c/a\u003e)\u003c/p\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImplement \u003ccode\u003ehasMatch()\u003c/code\u003e on \u003ccode\u003eMatcher\u003c/code\u003e and snapshot match results, including lifecycle and stream coverage. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/710\"\u003e#710\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd an experimental Vector API scanner for direct UTF-8 input on JDK 21–26, including character-class, case-insensitive prefix, and multi-literal scans. Enable it with both \u003ccode\u003e--add-modules\u003djdk.incubator.vector\u003c/code\u003e and \u003ccode\u003e-Dorg.safere.experimental.vectorScanProvider\u003dvector\u003c/code\u003e. It is off by default and does not accelerate String input. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/654\"\u003e#654\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/670\"\u003e#670\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/736\"\u003e#736\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/802\"\u003e#802\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eCompatibility and correctness\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix UTF-8 grapheme searches starting inside multibyte code points, and correct UTF-8 diagnostics. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/712\"\u003e#712\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/637\"\u003e#637\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve CRLF context in cached DFA transitions, honor scoped \u003ccode\u003eUNIX_LINES\u003c/code\u003e flags in line assertions, and fix Unicode word-boundary transition classes. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/815\"\u003e#815\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/816\"\u003e#816\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/812\"\u003e#812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRestore \u003ccode\u003efind()\u003c/code\u003e continuation after failed anchored matches and failed advancement past empty matches. Preserve a coherent overall match after \u003ccode\u003eusePattern()\u003c/code\u003e, and document intentional differences from observed JDK behavior for group zero and initial searches after failed full matches. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/811\"\u003e#811\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/820\"\u003e#820\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/794\"\u003e#794\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/819\"\u003e#819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemove reflective UTF-8 diagnostics dispatch that could fail after ProGuard/AppReduce tree shaking. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/723\"\u003e#723\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePerformance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpand literal and case-insensitive search acceleration, Unicode character-class prefix scanning, and UTF-8 keyword-alternation fast paths. Reuse compiled search state for case-insensitive splitting and multi-anchor alternation probes; the latter is approximately 9× faster for the measured short-gap workload. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/666\"\u003e#666\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/735\"\u003e#735\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/751\"\u003e#751\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/832\"\u003e#832\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/837\"\u003e#837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd specialized execution for small deterministic patterns and eligible multi-anchor patterns with fixed-width or delimiter-bounded gaps. Improve DFA loop skipping and adapt acceleration when candidate matches are too frequent. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/758\"\u003e#758\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/774\"\u003e#774\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/799\"\u003e#799\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/813\"\u003e#813\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce replacement and capture-extraction overhead, specialize \u003ccode\u003ematches()\u003c/code\u003e and \u003ccode\u003elookingAt()\u003c/code\u003e, and extend OnePass execution to Unicode case-folded linear chains. Keep eligible multi-anchor execution active after callers observe inner captures, making the measured 256-byte fixed-anchor captured-match workload 24.2× faster. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/675\"\u003e#675\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/732\"\u003e#732\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/747\"\u003e#747\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/748\"\u003e#748\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/834\"\u003e#834\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce pattern-compilation allocations and repeated AST analysis; avoid revisiting failed start positions in unanchored BitState searches and restore long-literal SWAR scan throughput. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/714\"\u003e#714\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/770\"\u003e#770\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/830\"\u003e#830\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/772\"\u003e#772\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMove benchmark workloads and execution plans to declarative data, expand UTF-8 coverage, and add Rust regex, PCRE2 JIT, and .NET nonbacktracking comparisons. Publish reproducible benchmark artifacts and add a branch-comparison tool. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/622\"\u003e#622\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/632\"\u003e#632\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/630\"\u003e#630\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/634\"\u003e#634\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/665\"\u003e#665\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/722\"\u003e#722\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eStrengthen deterministic work-scaling tests, vector-width coverage, and fuzz integration. Production artifacts are built with JDK 26 and tested on JDK 21–26. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/739\"\u003e#739\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/793\"\u003e#793\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/809\"\u003e#809\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/814\"\u003e#814\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eThank you to \u003ca href\u003d\"https://github.com/cushon\"\u003e\u003ccode\u003e@​cushon\u003c/code\u003e\u003c/a\u003e for extensive search, replacement, compilation, Vector API, parser, and matcher improvements, together with benchmark and regression coverage; and to \u003ca href\u003d\"https://github.com/wendigo\"\u003e\u003ccode\u003e@​wendigo\u003c/code\u003e\u003c/a\u003e for improving unanchored BitState searches, restoring long-literal SWAR performance, and accelerating case-insensitive multi-anchor alternation probes.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href\u003d\"https://github.com/eaftan/safere/compare/v0.10.0...v0.11.0\"\u003ehttps://github.com/eaftan/safere/compare/v0.10.0...v0.11.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/d5497b0012ca4d09e85df17684a7b1424a5b53dd\"\u003e\u003ccode\u003ed5497b0\u003c/code\u003e\u003c/a\u003e Decouple Multi-Anchor Gap Engine from preferCaptureEngine in Matcher (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/834\"\u003e#834\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/a2be5320c54a278fe1fa072fd544b610b94189ba\"\u003e\u003ccode\u003ea2be532\u003c/code\u003e\u003c/a\u003e Precompute case-insensitive search state for multi-anchor Alternation (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/832\"\u003e#832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/6cd475c5486b44a640bf6fe34d7b219c8dab19c2\"\u003e\u003ccode\u003e6cd475c\u003c/code\u003e\u003c/a\u003e Prepare README installation examples for 0.11.0 (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/839\"\u003e#839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/61f4636a84c09fbfbc4ec373a4adb0f7128da479\"\u003e\u003ccode\u003e61f4636\u003c/code\u003e\u003c/a\u003e Bump Spotless Maven plugin to 3.10.2 (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/838\"\u003e#838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/765665b96f3ef86eadb445edfc7efcf8e254a4bc\"\u003e\u003ccode\u003e765665b\u003c/code\u003e\u003c/a\u003e Precompute and reuse case-insensitive literal search state in Anchor.Single a...\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/ae74931da22ec15a988a1f6b51ed7bae16fb228d\"\u003e\u003ccode\u003eae74931\u003c/code\u003e\u003c/a\u003e Prune unanchored BitState start positions with earlier failed starts (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/830\"\u003e#830\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/6071d692e2a8804a150a39465916693ccb80b862\"\u003e\u003ccode\u003e6071d69\u003c/code\u003e\u003c/a\u003e Refactor Gap Engine: Extract GapScanner, Precompute Drivers, and Eliminate He...\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/90d2b016570bbd4b191734c4e5e433e3525e320a\"\u003e\u003ccode\u003e90d2b01\u003c/code\u003e\u003c/a\u003e Implement SIMD Gap Guard-Byte Rejection (\u0026quot;Anti-Anchors\u0026quot;) and Bounded Gap Scan...\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/92822128ea46b5809e5654ace1ed09e8442d3abe\"\u003e\u003ccode\u003e9282212\u003c/code\u003e\u003c/a\u003e Cache compiled multi-anchor eligibility (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/827\"\u003e#827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/d80389f82d0b7d0368eea66d66b33e13fd074640\"\u003e\u003ccode\u003ed80389f\u003c/code\u003e\u003c/a\u003e Implement competitive prefilter selectivity arbitration and poisonous-anchor ...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/eaftan/safere/compare/v0.10.0...v0.11.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.codehaus.mojo:exec-maven-plugin` from 3.6.3 to 3.6.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/mojohaus/exec-maven-plugin/releases\"\u003eorg.codehaus.mojo:exec-maven-plugin\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.6.4\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e📝 Documentation updates\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix typo in docs (\u003ca href\u003d\"https://redirect.github.com/mojohaus/exec-maven-plugin/pull/531\"\u003e#531\u003c/a\u003e) \u003ca href\u003d\"https://github.com/pzygielo\"\u003e\u003ccode\u003e@​pzygielo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e👻 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore Maven Resolver \u0026gt;\u003d 2.0 and SLF4J \u0026gt;\u003d 2.0 in Dependabot (\u003ca href\u003d\"https://redirect.github.com/mojohaus/exec-maven-plugin/pull/538\"\u003e#538\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slachiewicz\"\u003e\u003ccode\u003e@​slachiewicz\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStop dependabot from updating test fixtures (\u003ca href\u003d\"https://redirect.github.com/mojohaus/exec-maven-plugin/pull/535\"\u003e#535\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slachiewicz\"\u003e\u003ccode\u003e@​slachiewicz\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd IT using custom plugin repository (\u003ca href\u003d\"https://redirect.github.com/mojohaus/exec-maven-plugin/pull/497\"\u003e#497\u003c/a\u003e) \u003ca href\u003d\"https://github.com/Marcono1234\"\u003e\u003ccode\u003e@​Marcono1234\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📦 Dependency updates\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cul\u003e\n\u003cli\u003eIgnore Maven Resolver \u0026gt;\u003d 2.0 and SLF4J \u0026gt;\u003d 2.0 in Dependabot (\u003ca href\u003d\"https://redirect.github.com/mojohaus/exec-maven-plugin/pull/538\"\u003e#538\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slachiewicz\"\u003e\u003ccode\u003e@​slachiewicz\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump org.codehaus.plexus:plexus-utils from 3.0.24 to 3.6.1 in /src/it/projects/jigsaw (\u003ca href\u003d\"https://redirect.github.com/mojohaus/exec-maven-plugin/pull/537\"\u003e#537\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump org.codehaus.plexus:plexus-utils from 4.0.3 to 4.1.0 (\u003ca href\u003d\"https://redirect.github.com/mojohaus/exec-maven-plugin/pull/536\"\u003e#536\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump apache/maven-gh-actions-shared/.github/workflows/release-drafter.yml from 4 to 5 (\u003ca href\u003d\"https://redirect.github.com/mojohaus/exec-maven-plugin/pull/528\"\u003e#528\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump org.codehaus.mojo:mojo-parent from 96 to 97 (\u003ca href\u003d\"https://redirect.github.com/mojohaus/exec-maven-plugin/pull/530\"\u003e#530\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-toolchains-plugin from 3.2.0 to 3.3.0 (\u003ca href\u003d\"https://redirect.github.com/mojohaus/exec-maven-plugin/pull/533\"\u003e#533\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump apache/maven-gh-actions-shared/.github/workflows/maven-verify.yml from 4 to 5 (\u003ca href\u003d\"https://redirect.github.com/mojohaus/exec-maven-plugin/pull/529\"\u003e#529\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump asm.version from 9.10 to 9.10.1 (\u003ca href\u003d\"https://redirect.github.com/mojohaus/exec-maven-plugin/pull/525\"\u003e#525\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump asm.version from 9.9.1 to 9.10 (\u003ca href\u003d\"https://redirect.github.com/mojohaus/exec-maven-plugin/pull/524\"\u003e#524\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump org.codehaus.plexus:plexus-utils from 4.0.2 to 4.0.3 (\u003ca href\u003d\"https://redirect.github.com/mojohaus/exec-maven-plugin/pull/516\"\u003e#516\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugin-testing:maven-plugin-testing-harness from 3.5.0 to 3.5.1 (\u003ca href\u003d\"https://redirect.github.com/mojohaus/exec-maven-plugin/pull/512\"\u003e#512\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump org.codehaus.mojo:mojo-parent from 95 to 96 (\u003ca href\u003d\"https://redirect.github.com/mojohaus/exec-maven-plugin/pull/514\"\u003e#514\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugin-testing:maven-plugin-testing-harness from 3.4.0 to 3.5.0 (\u003ca href\u003d\"https://redirect.github.com/mojohaus/exec-maven-plugin/pull/511\"\u003e#511\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump org.codehaus.mojo:mojo-parent from 94 to 95 (\u003ca href\u003d\"https://redirect.github.com/mojohaus/exec-maven-plugin/pull/510\"\u003e#510\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/mojohaus/exec-maven-plugin/commit/56083f01f49958e6a1c6feac4fbb50062518749a\"\u003e\u003ccode\u003e56083f0\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release 3.6.4\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/mojohaus/exec-maven-plugin/commit/57c594b3c1b86aa6981ecfd6760eac8d51eaba09\"\u003e\u003ccode\u003e57c594b\u003c/code\u003e\u003c/a\u003e Ignore Maven Resolver \u0026gt;\u003d 2.0 and SLF4J \u0026gt;\u003d 2.0 in Dependabot\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/mojohaus/exec-maven-plugin/commit/c2f5d4e05214d346a364551219504f24fa920378\"\u003e\u003ccode\u003ec2f5d4e\u003c/code\u003e\u003c/a\u003e Update required module name in jigsaw IT to org.codehaus.plexus.util\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/mojohaus/exec-maven-plugin/commit/d227ee6474b1d78fdfd2d55039f504894b98c197\"\u003e\u003ccode\u003ed227ee6\u003c/code\u003e\u003c/a\u003e Bump org.codehaus.plexus:plexus-utils in /src/it/projects/jigsaw\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/mojohaus/exec-maven-plugin/commit/388fd993ec9fdfc6c2b1bb9ce92a83275b6c175f\"\u003e\u003ccode\u003e388fd99\u003c/code\u003e\u003c/a\u003e Bump org.codehaus.plexus:plexus-utils from 4.0.3 to 4.1.0\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/mojohaus/exec-maven-plugin/commit/30106e8a549998483380864ef6fecc7b26be349c\"\u003e\u003ccode\u003e30106e8\u003c/code\u003e\u003c/a\u003e Stop dependabot from updating test fixtures\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/mojohaus/exec-maven-plugin/commit/b6d5eab1370df8a70ce3c75bf4675eaccf28e1b6\"\u003e\u003ccode\u003eb6d5eab\u003c/code\u003e\u003c/a\u003e Bump apache/maven-gh-actions-shared/.github/workflows/release-drafter.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/mojohaus/exec-maven-plugin/commit/aa98abaeea3b97226e5c89a534b7b2db938b1d46\"\u003e\u003ccode\u003eaa98aba\u003c/code\u003e\u003c/a\u003e Bump org.codehaus.mojo:mojo-parent from 96 to 97\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/mojohaus/exec-maven-plugin/commit/79cfdcd526cdea443a112ed164552ecdcc112f2f\"\u003e\u003ccode\u003e79cfdcd\u003c/code\u003e\u003c/a\u003e Bump org.apache.maven.plugins:maven-toolchains-plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/mojohaus/exec-maven-plugin/commit/8c58ad610d7cb068afdee9556c019bfed35e8207\"\u003e\u003ccode\u003e8c58ad6\u003c/code\u003e\u003c/a\u003e Fix typo in docs (\u003ca href\u003d\"https://redirect.github.com/mojohaus/exec-maven-plugin/issues/531\"\u003e#531\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/mojohaus/exec-maven-plugin/compare/3.6.3...3.6.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency\u0027s major version (unless you unignore this specific dependency\u0027s major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency\u0027s minor version (unless you unignore this specific dependency\u0027s minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\u003c/details\u003e\n\nFixes https://github.com/google/error-prone/pull/6132\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/google/error-prone/pull/6132 from google:dependabot/maven/dependencies-bf047d3350 88956be1f3bf0facb87b38dfc97764d9c36988a2\nPiperOrigin-RevId: 985366286\n"
    },
    {
      "commit": "2c0e628327fd58ec29c1871418af377cb51e7cb0",
      "tree": "9df06be20721471651ccab39352ef4d40426bfff",
      "parents": [
        "543ff5681f51560c1597e3037c5186daf6e5536b"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Mon Sep 21 15:31:05 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Sep 21 15:32:19 2026"
      },
      "message": "Support suppression in AddNullMarkedToPackageInfo.\n\nFixes https://github.com/google/error-prone/issues/6133\n\nPiperOrigin-RevId: 985296260\n"
    },
    {
      "commit": "543ff5681f51560c1597e3037c5186daf6e5536b",
      "tree": "8266c3059669acf677a05d04947d583e065ff092",
      "parents": [
        "e1f7710df92a813bef89d5a1680979366c580719"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Mon Sep 21 15:15:59 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Sep 21 15:17:15 2026"
      },
      "message": "[IfChainToSwitch] enhance handling of generic array patterns to retain their type arguments, when possible\n\nPiperOrigin-RevId: 985288482\n"
    },
    {
      "commit": "e1f7710df92a813bef89d5a1680979366c580719",
      "tree": "495180420b05f2b300e0675603138a945a041026",
      "parents": [
        "82d139de9c238c42d853d3276523fa7bfb4626bc"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Sat Sep 19 01:21:58 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sat Sep 19 01:22:56 2026"
      },
      "message": "Support `allowedPaths` in Android Lint `RestrictedApi` and `RestrictedInheritance` checks\n\n- Enforce `allowedPaths` in `RestrictedDetectorBase` and `RestrictedApiCheckerXlang` using `SourcePathMatcher`.\n- Disallow specifying both `allowedPaths` and `allowedOnPath` on `@RestrictedApi` and `@RestrictedInheritance`.\n\nPiperOrigin-RevId: 984170706\n"
    },
    {
      "commit": "82d139de9c238c42d853d3276523fa7bfb4626bc",
      "tree": "1c64b082a896824f8bdd200448a6eb877dc66ebe",
      "parents": [
        "5e7c0360a3118e2609849bf037c949fecc0fec42"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Fri Sep 18 21:02:54 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Sep 18 21:04:14 2026"
      },
      "message": "Format some Markdown.\n\nRELNOTES\u003dn/a\nPiperOrigin-RevId: 984055579\n"
    },
    {
      "commit": "5e7c0360a3118e2609849bf037c949fecc0fec42",
      "tree": "29def4198b64e714806e6b722a449d3c4b78413d",
      "parents": [
        "b5e493e20665a3baa8e712369055f30c0d9c7f27"
      ],
      "author": {
        "name": "Error Prone Team",
        "email": "java-team-github-bot@google.com",
        "time": "Fri Sep 18 20:12:18 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Sep 18 20:13:56 2026"
      },
      "message": "Exempt record components from `UnnecessaryQualifier` check.\n\nRecord components can have qualifier annotations that propagate to generated accessor methods, constructor parameters, and fields. For records that are not instantiated via `@Inject` (such as configuration records constructed with builders or passed across component boundaries), removing these qualifiers can break dependency injection bindings and downstream consumers. This change exempts record components from being flagged by `UnnecessaryQualifier`.\n\nPiperOrigin-RevId: 984027750\n"
    },
    {
      "commit": "b5e493e20665a3baa8e712369055f30c0d9c7f27",
      "tree": "89d7d7aa039a19cb9ed7108c95f6a0b8c8b6bae3",
      "parents": [
        "ac97fbed043eb46f14cf4c2b4a65c622ef48c455"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Thu Sep 17 21:43:49 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Sep 17 21:46:18 2026"
      },
      "message": "Require `Integer.signum()` when switching over the result of `compare()` or `compareTo()`.\n\nExtend `CompareToZero` to also match `switch` statements and `switch` expressions whose selector expression is a `Comparable.compareTo()` or `Comparator.compare()` (or static `compare()`) call, suggesting `signum(...)` around the selector expression.\n\nPiperOrigin-RevId: 983432744\n"
    },
    {
      "commit": "ac97fbed043eb46f14cf4c2b4a65c622ef48c455",
      "tree": "209d6f880bdd05879e8c37e0f57bb156fd79d3a4",
      "parents": [
        "0a78e4409a3042871036c75eda52e5cf01d0a623"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Thu Sep 17 13:21:58 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Sep 17 13:23:23 2026"
      },
      "message": "Add `allowedPaths` to `@RestrictedApi` and `@RestrictedInheritance`\n\n- Add `String[] allowedPaths() default {};` to `@RestrictedApi` and `@RestrictedInheritance` in Java and Kotlin Multiplatform/Native.\n- Update `RestrictedApiChecker` and `RestrictedInheritanceChecker` to enforce `allowedPaths` using `SourcePathMatcher`.\n- Disallow specifying both `allowedPaths` and `allowedOnPath` on `@RestrictedApi` and `@RestrictedInheritance`.\n- Migrate `RestrictedInheritanceChecker` to `Attribute.Compound` and `MoreAnnotations` to decouple processor and build classpaths and avoid string allocations during symbol matching.\n- Add `RESTRICTED_INHERITANCE_ANNOTATION` to `AnnotationNames`.\n- Extract common restriction evaluation into `com.google.errorprone.bugpatterns.restrictedapi` to deduplicate logic between `RestrictedApiChecker` and `RestrictedInheritanceChecker`.\n\nPiperOrigin-RevId: 983153494\n"
    },
    {
      "commit": "0a78e4409a3042871036c75eda52e5cf01d0a623",
      "tree": "49094a3af4da7e7067794435f85bd4619c8df4d3",
      "parents": [
        "48ecb4e464b4d33422ca26691676f3b03fbc3b52"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Wed Sep 16 23:27:16 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Sep 16 23:28:16 2026"
      },
      "message": "[IfChainToSwitch] fix bug where statements can be unnecessarily deleted after a switch\n\nPiperOrigin-RevId: 982790540\n"
    },
    {
      "commit": "48ecb4e464b4d33422ca26691676f3b03fbc3b52",
      "tree": "8a9453ca54ca197fc3f7f3a5ed1a8a0bfcbf6773",
      "parents": [
        "6e4ab75bb8ecd33649590032fad4c1db1815ffca"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Wed Sep 16 21:37:29 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Sep 16 21:38:45 2026"
      },
      "message": "[IfChainToSwitch] fix bug that can cause non-constant cases to be emitted (invalid Java)\n\nPiperOrigin-RevId: 982731237\n"
    },
    {
      "commit": "6e4ab75bb8ecd33649590032fad4c1db1815ffca",
      "tree": "fd3347917cbb0858ed77b8aee15d978b68e27f21",
      "parents": [
        "22b64ee1aeaadb12e05231dbb3314f35e82b0981"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Wed Sep 16 20:47:56 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Sep 16 20:49:35 2026"
      },
      "message": "[IfChainToSwitch] fix bug in range that can cause checker to crash\n\nPiperOrigin-RevId: 982702377\n"
    },
    {
      "commit": "22b64ee1aeaadb12e05231dbb3314f35e82b0981",
      "tree": "d88b3fd45dbb0f7a35bb952c91f7c9056c6ddcbd",
      "parents": [
        "88f2332f7137df438c6918188370c76923336420"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Wed Sep 16 18:47:42 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Sep 16 18:49:41 2026"
      },
      "message": "Bug tracking tests for [IfChainToSwitch]\n\nPiperOrigin-RevId: 982636031\n"
    },
    {
      "commit": "88f2332f7137df438c6918188370c76923336420",
      "tree": "6855effa01e013507c8c01c29d219981c8fc8d13",
      "parents": [
        "66f4dec5b7074a5f932d76c5281fb7ee70e2d8c8"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Wed Sep 16 14:23:47 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Sep 16 14:25:33 2026"
      },
      "message": "Do not simplify `Boolean.TRUE/Boolean.FALSE` in JUnit\u0027s `assertEquals()` or `assertNotEquals()`.\n\nSimplifying `Boolean.TRUE` or `Boolean.FALSE` to primitive `boolean` literals inside `assertEquals` or `assertNotEquals` calls can cause javac overload resolution ambiguity between `assertEquals(Object, Object)` and `assertEquals(boolean, boolean)` when the other argument is a boxed `Boolean`. Skip matching `BooleanLiteral` when the enclosing expression is an invocation of `assertEquals` or `assertNotEquals`.\n\nPiperOrigin-RevId: 982500805\n"
    },
    {
      "commit": "66f4dec5b7074a5f932d76c5281fb7ee70e2d8c8",
      "tree": "36e7663c591464ddcde3805186281a57303c4b78",
      "parents": [
        "d1652301dd5795101bd2abab40bc4fa96c623144"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Tue Sep 15 12:25:30 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Sep 15 12:27:04 2026"
      },
      "message": "Add a test demonstrating the ambiguous reference problem created by `BooleanLiteral`.\n\nPiperOrigin-RevId: 981756895\n"
    },
    {
      "commit": "d1652301dd5795101bd2abab40bc4fa96c623144",
      "tree": "558ea588086dab07acc4422debf70991c9c367fd",
      "parents": [
        "1d5b6bf72cced077a990b703e570633aaa8753a8"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Mon Sep 14 23:33:57 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Sep 14 23:35:24 2026"
      },
      "message": "Generalize `MultimapKeys` to match `stream()` and `parallelStream()`.\n\nPiperOrigin-RevId: 981429904\n"
    },
    {
      "commit": "1d5b6bf72cced077a990b703e570633aaa8753a8",
      "tree": "5163c2c9f6f993f5802529082173094660a66457",
      "parents": [
        "efb63b8f3460b469d8ea7de1c8312d136dd789d5"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Sep 14 22:09:50 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Sep 14 22:11:26 2026"
      },
      "message": "Add a terrible test for switching over `compare()` and `compareTo()` results.\n\nPiperOrigin-RevId: 981385761\n"
    },
    {
      "commit": "efb63b8f3460b469d8ea7de1c8312d136dd789d5",
      "tree": "b0bb54086f6c60c7b9edf2f8d83a7de7af7eb786",
      "parents": [
        "ce306e9805f0048fc9ef4c8802e9b6ca28188192"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Mon Sep 14 15:43:50 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Sep 14 15:45:48 2026"
      },
      "message": "Flag-guard the new `Record.equals` handling in EqualsIncompatibleType.\n\nRelated to https://github.com/google/error-prone/pull/6108\n\nPiperOrigin-RevId: 981172719\n"
    },
    {
      "commit": "ce306e9805f0048fc9ef4c8802e9b6ca28188192",
      "tree": "0cdedb89dbc533ea86a6d5133011a7daef148ac7",
      "parents": [
        "3aaeb46732bd320ccc9630ce579625bbba97256c"
      ],
      "author": {
        "name": "komori",
        "email": "61416253+rincho0617@users.noreply.github.com",
        "time": "Mon Sep 14 15:06:03 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Sep 14 15:07:35 2026"
      },
      "message": "Don\u0027t treat java.lang.Record#equals as a custom equals implementation.\n\nFixes #6107.\n\n`isFeasiblyCompatible` considers two types compatible when an `equals(Object)`\noverride on one is inherited by the other. `java.lang.Record` declares\n`public abstract boolean equals(Object)`, so every pair of records shares it and\n`EqualsIncompatibleType` never fires on record-to-record comparisons.\n\n`Record.equals` is abstract and specifies no equality semantics that two distinct\nrecord types could share, so this excludes it alongside `Object` and `Enum`.\n\nComparisons where only one side is a record were already flagged; this only adds\nthe record-to-record case. `EqualsIncompatibleTypeTest` covers both the new\npositive case and that two values of the same record type stay comparable.\n\nFixes https://github.com/google/error-prone/pull/6108\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/google/error-prone/pull/6108 from rincho0617:equals-incompatible-type-records 80155cdfd2d345a302f9b153ea85b4b669599abb\nPiperOrigin-RevId: 981155630\n"
    },
    {
      "commit": "3aaeb46732bd320ccc9630ce579625bbba97256c",
      "tree": "4ca70c6970217e0b6715e44e9b280c2edcfe5c5a",
      "parents": [
        "ec3239d87f7b51b4ebaae673e5b6c1e259ff7acd"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Sep 14 14:32:25 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Sep 14 14:34:11 2026"
      },
      "message": "Bump the dependencies group with 6 updates\n\nBumps the dependencies group with 6 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [org.apache.maven.plugins:maven-compiler-plugin](https://github.com/apache/maven-compiler-plugin) | `3.15.0` | `3.16.0` |\n| [org.apache.maven.plugins:maven-surefire-plugin](https://github.com/apache/maven-surefire) | `3.5.6` | `3.6.0` |\n| [com.google.protobuf:protobuf-java](https://github.com/protocolbuffers/protobuf) | `4.36.0` | `4.36.1` |\n| com.google.protobuf:protobuf-java-util | `4.36.0` | `4.36.1` |\n| [org.checkerframework:checker-qual](https://github.com/typetools/checker-framework) | `4.2.2` | `4.2.3` |\n| org.yaml:snakeyaml | `2.6` | `2.7` |\n\nUpdates `org.apache.maven.plugins:maven-compiler-plugin` from 3.15.0 to 3.16.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/apache/maven-compiler-plugin/releases\"\u003eorg.apache.maven.plugins:maven-compiler-plugin\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.16.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e🚀 New features and improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRecompile when dependencies change (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1102\"\u003e#1102\u003c/a\u003e) \u003ca href\u003d\"https://github.com/wilx\"\u003e\u003ccode\u003e@​wilx\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix incremental detection of empty sources, 3.x (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1075\"\u003e#1075\u003c/a\u003e) \u003ca href\u003d\"https://github.com/wilx\"\u003e\u003ccode\u003e@​wilx\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://issues.apache.org/jira/browse/MCOMPILER-578\"\u003e[MCOMPILER-578]\u003c/a\u003e - Track outputs across compiler executions (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1091\"\u003e#1091\u003c/a\u003e) \u003ca href\u003d\"https://github.com/wilx\"\u003e\u003ccode\u003e@​wilx\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBuild fails when annotation processor list is empty (but present) (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1077\"\u003e#1077\u003c/a\u003e) \u003ca href\u003d\"https://github.com/wilx\"\u003e\u003ccode\u003e@​wilx\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://issues.apache.org/jira/browse/MCOMPILER-374\"\u003e[MCOMPILER-374]\u003c/a\u003e - Unable to compile MR-JAR code against older directories when module-info.java is present (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1093\"\u003e#1093\u003c/a\u003e) \u003ca href\u003d\"https://github.com/wilx\"\u003e\u003ccode\u003e@​wilx\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMake mcompiler-120 IT locale independent (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1063\"\u003e#1063\u003c/a\u003e) \u003ca href\u003d\"https://github.com/anilvdl\"\u003e\u003ccode\u003e@​anilvdl\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📝 Documentation updates\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://issues.apache.org/jira/browse/MCOMPILER-569\"\u003e[MCOMPILER-569]\u003c/a\u003e - Document implicitly compiled excluded sources (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1092\"\u003e#1092\u003c/a\u003e) \u003ca href\u003d\"https://github.com/wilx\"\u003e\u003ccode\u003e@​wilx\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd AGENTS.md + SECURITY.md security-model pointer for scanner discoverability (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1074\"\u003e#1074\u003c/a\u003e) \u003ca href\u003d\"https://github.com/potiuk\"\u003e\u003ccode\u003e@​potiuk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e👻 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAvoid using deprecated method CompilerConfiguration.setCompilerVersion (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1121\"\u003e#1121\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slawekjaranowski\"\u003e\u003ccode\u003e@​slawekjaranowski\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReplace adopt-openj9 by semeru JDK distribution on GH (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1122\"\u003e#1122\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slawekjaranowski\"\u003e\u003ccode\u003e@​slawekjaranowski\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePort the site documentation from APT to Markdown (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1110\"\u003e#1110\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slachiewicz\"\u003e\u003ccode\u003e@​slachiewicz\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eVerify against Maven 4.0.0-rc-6 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1105\"\u003e#1105\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slachiewicz\"\u003e\u003ccode\u003e@​slachiewicz\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix tests on Jenkins (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1100\"\u003e#1100\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slawekjaranowski\"\u003e\u003ccode\u003e@​slawekjaranowski\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd AGENTS.md + SECURITY.md security-model pointer for scanner discoverability (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1074\"\u003e#1074\u003c/a\u003e) \u003ca href\u003d\"https://github.com/potiuk\"\u003e\u003ccode\u003e@​potiuk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRefactor compiler mojo to use dependency injection and improve string… (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1066\"\u003e#1066\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slachiewicz\"\u003e\u003ccode\u003e@​slachiewicz\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix ITs for Maven 3.10.x (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1061\"\u003e#1061\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slawekjaranowski\"\u003e\u003ccode\u003e@​slawekjaranowski\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate maven-surefire-plugin version to 3.x in the MCOMPILER-481 IT (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1035\"\u003e#1035\u003c/a\u003e) \u003ca href\u003d\"https://github.com/cdouillard\"\u003e\u003ccode\u003e@​cdouillard\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📦 Dependency updates\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump plexusCompilerVersion from 2.16.2 to 2.17.0 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1112\"\u003e#1112\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump org.codehaus.plexus:plexus-java from 1.5.2 to 1.6.0 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1113\"\u003e#1113\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003euse latest Maven 4 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1045\"\u003e#1045\u003c/a\u003e) \u003ca href\u003d\"https://github.com/hboutemy\"\u003e\u003ccode\u003e@​hboutemy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump apache/maven-gh-actions-shared/.github/workflows/release-drafter.yml from 4 to 5 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1083\"\u003e#1083\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump apache/maven-gh-actions-shared/.github/workflows/pr-automation.yml from 4 to 5 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1082\"\u003e#1082\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump apache/maven-gh-actions-shared/.github/workflows/maven-verify.yml from 4 to 5 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1084\"\u003e#1084\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-plugins from 48 to 49 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1068\"\u003e#1068\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-invoker-plugin from 3.9.1 to 3.10.1 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1047\"\u003e#1047\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-plugins from 47 to 48 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1050\"\u003e#1050\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mavenVersion from 3.9.14 to 3.9.16 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1054\"\u003e#1054\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump org.ow2.asm:asm from 9.10 to 9.10.1 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1059\"\u003e#1059\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump org.ow2.asm:asm from 9.9.1 to 9.10 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1053\"\u003e#1053\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mavenVersion from 3.9.13 to 3.9.14 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1041\"\u003e#1041\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mavenVersion from 3.9.12 to 3.9.13 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1038\"\u003e#1038\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugin-testing:maven-plugin-testing-harness from 3.5.0 to 3.5.1 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/pull/1032\"\u003e#1032\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-compiler-plugin/commit/e7bba6ed5f9c17003d5c5d1413144bb214177408\"\u003e\u003ccode\u003ee7bba6e\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release maven-compiler-plugin-3.16.0\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-compiler-plugin/commit/c906809e0c0b2c79e8a03165cb942f152a911416\"\u003e\u003ccode\u003ec906809\u003c/code\u003e\u003c/a\u003e Avoid using deprecated method CompilerConfiguration.setCompilerVersion\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-compiler-plugin/commit/ad74fee36865d7a1752c9b96ff9a9e702565fdb3\"\u003e\u003ccode\u003ead74fee\u003c/code\u003e\u003c/a\u003e Replace adopt-openj9 by semeru JDK distribution on GH\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-compiler-plugin/commit/beb0eda2100e77d3f01bf4cc89edd5b721411f63\"\u003e\u003ccode\u003ebeb0eda\u003c/code\u003e\u003c/a\u003e Recompile when dependencies change (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/issues/1102\"\u003e#1102\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-compiler-plugin/commit/a0b689e0e7f13d3a7dded7847a807fe6453e0358\"\u003e\u003ccode\u003ea0b689e\u003c/code\u003e\u003c/a\u003e [MCOMPILER-578] Track outputs across compiler executions (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/issues/1091\"\u003e#1091\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-compiler-plugin/commit/2e8122841d9b10d2d83a90cc07530d7a09eebc47\"\u003e\u003ccode\u003e2e81228\u003c/code\u003e\u003c/a\u003e Fix incremental detection of empty sources, 3.x (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/issues/1075\"\u003e#1075\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-compiler-plugin/commit/2132f5bf0cbfcde26301084c4833f1a9420f1baf\"\u003e\u003ccode\u003e2132f5b\u003c/code\u003e\u003c/a\u003e configure ATR project\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-compiler-plugin/commit/5992b772033a7488767c4b3aa806f080eba96593\"\u003e\u003ccode\u003e5992b77\u003c/code\u003e\u003c/a\u003e Build fails when annotation processor list is empty (but present) (\u003ca href\u003d\"https://redirect.github.com/apache/maven-compiler-plugin/issues/1077\"\u003e#1077\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-compiler-plugin/commit/acccef703e5491c29c6dd9e8381677d3e7927589\"\u003e\u003ccode\u003eacccef7\u003c/code\u003e\u003c/a\u003e Bump plexusCompilerVersion from 2.16.2 to 2.17.0\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-compiler-plugin/commit/72bc4454dfdcd1c3551137e5b27560f88b4480ae\"\u003e\u003ccode\u003e72bc445\u003c/code\u003e\u003c/a\u003e Bump org.codehaus.plexus:plexus-java from 1.5.2 to 1.6.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/apache/maven-compiler-plugin/compare/maven-compiler-plugin-3.15.0...maven-compiler-plugin-3.16.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.apache.maven.plugins:maven-surefire-plugin` from 3.5.6 to 3.6.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/apache/maven-surefire/releases\"\u003eorg.apache.maven.plugins:maven-surefire-plugin\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.6.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003cp\u003ePlease refer to the main page for what\u0027s new \u003ca href\u003d\"https://maven.apache.org/surefire/\"\u003ehttps://maven.apache.org/surefire/\u003c/a\u003e\nAnd the migration page \u003ca href\u003d\"https://maven.apache.org/surefire/maven-surefire-plugin/whats-new-3-6-0.html\"\u003ehttps://maven.apache.org/surefire/maven-surefire-plugin/whats-new-3-6-0.html\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003e🚀 New features and improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix \u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/issues/3303\"\u003e#3303\u003c/a\u003e: distinguish JUnit 6 ParameterizedClass invocations (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3432\"\u003e#3432\u003c/a\u003e) \u003ca href\u003d\"https://github.com/AzazelSensei\"\u003e\u003ccode\u003e@​AzazelSensei\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://issues.apache.org/jira/browse/SUREFIRE-1639\"\u003e[SUREFIRE-1639]\u003c/a\u003e - Add ability to configure JUnit 5 TestExecutionListener (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3438\"\u003e#3438\u003c/a\u003e) \u003ca href\u003d\"https://github.com/pan3793\"\u003e\u003ccode\u003e@​pan3793\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eIssue \u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/issues/838\"\u003e#838\u003c/a\u003e Implement extension point to run diagnosis tools when forked JVM times out (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3372\"\u003e#3372\u003c/a\u003e) \u003ca href\u003d\"https://github.com/olamy\"\u003e\u003ccode\u003e@​olamy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://issues.apache.org/jira/browse/SUREFIRE-2148\"\u003e[SUREFIRE-2148]\u003c/a\u003e - Verify recovered BeforeAll does not fail build (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3419\"\u003e#3419\u003c/a\u003e) \u003ca href\u003d\"https://github.com/wilx\"\u003e\u003ccode\u003e@​wilx\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://issues.apache.org/jira/browse/SUREFIRE-823\"\u003e[SUREFIRE-823]\u003c/a\u003e - Decouple -DskipTests from Failsafe plugin (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3371\"\u003e#3371\u003c/a\u003e) \u003ca href\u003d\"https://github.com/olamy\"\u003e\u003ccode\u003e@​olamy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse StackWalker in StackTraceProvider when available (Java 9+) (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3374\"\u003e#3374\u003c/a\u003e) \u003ca href\u003d\"https://github.com/olamy\"\u003e\u003ccode\u003e@​olamy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Issue-3380] Send sourceQualifiedName to forked clients (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/issues/3380\"\u003e#3380\u003c/a\u003e) (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3381\"\u003e#3381\u003c/a\u003e) \u003ca href\u003d\"https://github.com/fabriciorby\"\u003e\u003ccode\u003e@​fabriciorby\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://issues.apache.org/jira/browse/SUREFIRE-523\"\u003e[SUREFIRE-523]\u003c/a\u003e - Link all reported tests to source XRef (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3445\"\u003e#3445\u003c/a\u003e) \u003ca href\u003d\"https://github.com/wilx\"\u003e\u003ccode\u003e@​wilx\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://issues.apache.org/jira/browse/SUREFIRE-3446\"\u003e[SUREFIRE-3446]\u003c/a\u003e - Fix direct selection of JUnit Jupiter \u003ca href\u003d\"https://github.com/Nested\"\u003e\u003ccode\u003e@​Nested\u003c/code\u003e\u003c/a\u003e classes (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3447\"\u003e#3447\u003c/a\u003e) \u003ca href\u003d\"https://github.com/wilx\"\u003e\u003ccode\u003e@​wilx\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eDiscover tests in a fork when a toolchain JDK is used (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3444\"\u003e#3444\u003c/a\u003e) \u003ca href\u003d\"https://github.com/olamy\"\u003e\u003ccode\u003e@​olamy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[SUREFIRE-2239, SUREFIRE-2241, SUREFIRE-2260, SUREFIRE-2274, SUREFIRE-2300] Preserve JUnit Platform test identity across reruns (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3418\"\u003e#3418\u003c/a\u003e) \u003ca href\u003d\"https://github.com/wilx\"\u003e\u003ccode\u003e@​wilx\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix \u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/issues/3428\"\u003e#3428\u003c/a\u003e: resolve parents via TestPlan.getParent for pre-1.8 platforms (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3429\"\u003e#3429\u003c/a\u003e) \u003ca href\u003d\"https://github.com/kalayciburak\"\u003e\u003ccode\u003e@​kalayciburak\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://issues.apache.org/jira/browse/SUREFIRE-859\"\u003e[SUREFIRE-859]\u003c/a\u003e - Make random test order reproducible (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3421\"\u003e#3421\u003c/a\u003e) \u003ca href\u003d\"https://github.com/wilx\"\u003e\u003ccode\u003e@​wilx\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[SUREFIRE-862, SUREFIRE-3178] Handle missing Failsafe summary files (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3417\"\u003e#3417\u003c/a\u003e) \u003ca href\u003d\"https://github.com/wilx\"\u003e\u003ccode\u003e@​wilx\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix: report AfterAll/AfterClass exceptions as errors again (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/issues/3412\"\u003e#3412\u003c/a\u003e) (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3413\"\u003e#3413\u003c/a\u003e) \u003ca href\u003d\"https://github.com/arimu1\"\u003e\u003ccode\u003e@​arimu1\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/issues/3264\"\u003e#3264\u003c/a\u003e : tests inside \u003ca href\u003d\"https://github.com/Suite\"\u003e\u003ccode\u003e@​Suite\u003c/code\u003e\u003c/a\u003e incorrectly classified as flakes (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3342\"\u003e#3342\u003c/a\u003e) \u003ca href\u003d\"https://github.com/mirkoalicastro\"\u003e\u003ccode\u003e@​mirkoalicastro\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Windows flake in CommandChannelDecoderTest (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3400\"\u003e#3400\u003c/a\u003e) \u003ca href\u003d\"https://github.com/ascheman\"\u003e\u003ccode\u003e@​ascheman\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix reportNameSuffix in XML testcase classname (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3379\"\u003e#3379\u003c/a\u003e) \u003ca href\u003d\"https://github.com/goutamadwant\"\u003e\u003ccode\u003e@​goutamadwant\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix: resolve relative classpath elements against the fork\u0027s working dir (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3333\"\u003e#3333\u003c/a\u003e) \u003ca href\u003d\"https://github.com/cwegener-79\"\u003e\u003ccode\u003e@​cwegener-79\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📝 Documentation updates\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eMagnify the home, well at least have something rather than nothing :) (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3377\"\u003e#3377\u003c/a\u003e) \u003ca href\u003d\"https://github.com/olamy\"\u003e\u003ccode\u003e@​olamy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestore the straight quotes the FAQ conversion turned typographic (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3425\"\u003e#3425\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slachiewicz\"\u003e\u003ccode\u003e@​slachiewicz\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRestore the table borders lost in the APT conversion (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3424\"\u003e#3424\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slachiewicz\"\u003e\u003ccode\u003e@​slachiewicz\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConvert the FAQ from FML to Markdown (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3423\"\u003e#3423\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slachiewicz\"\u003e\u003ccode\u003e@​slachiewicz\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eConvert the remaining site documentation from APT to Markdown (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3422\"\u003e#3422\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slachiewicz\"\u003e\u003ccode\u003e@​slachiewicz\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ejavadoc: clarify statelessTestsetReporter, consoleOutputReporter, (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3410\"\u003e#3410\u003c/a\u003e) \u003ca href\u003d\"https://github.com/joshinii\"\u003e\u003ccode\u003e@​joshinii\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd AGENTS.md + SECURITY.md security-model pointer for scanner discoverability (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3387\"\u003e#3387\u003c/a\u003e) \u003ca href\u003d\"https://github.com/potiuk\"\u003e\u003ccode\u003e@​potiuk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate documentation we support Junit 6 as well :) (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3370\"\u003e#3370\u003c/a\u003e) \u003ca href\u003d\"https://github.com/olamy\"\u003e\u003ccode\u003e@​olamy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e👻 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eStop dependabot from updating test fixtures (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3440\"\u003e#3440\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slachiewicz\"\u003e\u003ccode\u003e@​slachiewicz\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eMigrate legacy plugin Javadoc annotations (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3416\"\u003e#3416\u003c/a\u003e) \u003ca href\u003d\"https://github.com/wilx\"\u003e\u003ccode\u003e@​wilx\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse the resolver\u0027s own HTTP transport in the report plugin tests (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3414\"\u003e#3414\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slachiewicz\"\u003e\u003ccode\u003e@​slachiewicz\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePin maven-jar-plugin 3.5.1 in modular IT fixtures (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3398\"\u003e#3398\u003c/a\u003e) \u003ca href\u003d\"https://github.com/ascheman\"\u003e\u003ccode\u003e@​ascheman\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd AGENTS.md + SECURITY.md security-model pointer for scanner discoverability (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/pull/3387\"\u003e#3387\u003c/a\u003e) \u003ca href\u003d\"https://github.com/potiuk\"\u003e\u003ccode\u003e@​potiuk\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-surefire/commit/0ff622b160253f362511a72d29a1f8067631f9d3\"\u003e\u003ccode\u003e0ff622b\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release surefire-3.6.0\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-surefire/commit/bb3932a10a9706df70cf8095e2402348b7a64f0b\"\u003e\u003ccode\u003ebb3932a\u003c/code\u003e\u003c/a\u003e Let\u0027s go for 3.6.0 release\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-surefire/commit/3002a1648cc8092dbd80492aa00509c825fd58e7\"\u003e\u003ccode\u003e3002a16\u003c/code\u003e\u003c/a\u003e Bump mavenVersion from 3.9.14 to 3.9.16\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-surefire/commit/61a531d5981b0e70f8e88a329150f75501bb73e4\"\u003e\u003ccode\u003e61a531d\u003c/code\u003e\u003c/a\u003e Bump Maven parent version from 47 to 49 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/issues/3449\"\u003e#3449\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-surefire/commit/e52ead4cf5075f519578d0053c1ff878dff238f5\"\u003e\u003ccode\u003ee52ead4\u003c/code\u003e\u003c/a\u003e [SUREFIRE-523] Link all reported tests to source XRef (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/issues/3445\"\u003e#3445\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-surefire/commit/45102fa9f2dfc5bc3d2909798e67358ae33e2d49\"\u003e\u003ccode\u003e45102fa\u003c/code\u003e\u003c/a\u003e [SUREFIRE-3446] Fix direct selection of JUnit Jupiter \u003ca href\u003d\"https://github.com/Nested\"\u003e\u003ccode\u003e@​Nested\u003c/code\u003e\u003c/a\u003e classes (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/issues/3447\"\u003e#3447\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-surefire/commit/b2e1f70b24df2d8a6cf1583ca955311184e68022\"\u003e\u003ccode\u003eb2e1f70\u003c/code\u003e\u003c/a\u003e Fix \u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/issues/3303\"\u003e#3303\u003c/a\u003e: distinguish JUnit 6 ParameterizedClass invocations (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/issues/3432\"\u003e#3432\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-surefire/commit/c051938593a29d654b3c1c20d454b9062c3fa3f4\"\u003e\u003ccode\u003ec051938\u003c/code\u003e\u003c/a\u003e Discover tests in a fork when a toolchain JDK is used (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/issues/3444\"\u003e#3444\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-surefire/commit/db75df85a76abf35346f559fe7f7f020cf6435b6\"\u003e\u003ccode\u003edb75df8\u003c/code\u003e\u003c/a\u003e Bump org.codehaus.plexus:plexus-java from 1.5.2 to 1.6.0 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-surefire/issues/3441\"\u003e#3441\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-surefire/commit/77f2759d895a4460f917bdaaff7a025454afebe4\"\u003e\u003ccode\u003e77f2759\u003c/code\u003e\u003c/a\u003e Bump org.codehaus.plexus:plexus-interpolation from 1.29 to 1.30.0\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/apache/maven-surefire/compare/surefire-3.5.6...surefire-3.6.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.google.protobuf:protobuf-java` from 4.36.0 to 4.36.1\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href\u003d\"https://github.com/protocolbuffers/protobuf/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.google.protobuf:protobuf-java-util` from 4.36.0 to 4.36.1\n\nUpdates `com.google.protobuf:protobuf-java-util` from 4.36.0 to 4.36.1\n\nUpdates `org.checkerframework:checker-qual` from 4.2.2 to 4.2.3\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/typetools/checker-framework/releases\"\u003eorg.checkerframework:checker-qual\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChecker Framework 4.2.3\u003c/h2\u003e\n\u003ch2\u003eVersion 4.2.3 (2026-09-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eThe \u003ccode\u003e-AsuggestPureMethods\u003c/code\u003e command-line option and the \u003ccode\u003epurity.effectively.pure\u003c/code\u003e warning no longer require \u003ccode\u003e-AcheckPurityAnnotations\u003c/code\u003e to also be supplied.\u003c/p\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eMade the field \u003ccode\u003eJava8InferenceContext.pathToExpression\u003c/code\u003e private; use \u003ccode\u003egetPathToExpression()\u003c/code\u003e and \u003ccode\u003esetPathToExpression()\u003c/code\u003e instead.\u003c/p\u003e\n\u003cp\u003eRenamed \u003ccode\u003eTreeUtils.isLikeDiamondMemberReference()\u003c/code\u003e to \u003ccode\u003eisRawTypedMemberReference()\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/2816\"\u003e#2816\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7677\"\u003e#7677\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7678\"\u003e#7678\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7681\"\u003e#7681\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7682\"\u003e#7682\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7684\"\u003e#7684\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7693\"\u003e#7693\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7694\"\u003e#7694\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7696\"\u003e#7696\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7698\"\u003e#7698\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7701\"\u003e#7701\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7702\"\u003e#7702\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7875\"\u003e#7875\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8046\"\u003e#8046\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8047\"\u003e#8047\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8048\"\u003e#8048\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8050\"\u003e#8050\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8052\"\u003e#8052\u003c/a\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/typetools/checker-framework/blob/master/docs/CHANGELOG.md\"\u003eorg.checkerframework:checker-qual\u0027s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 4.2.3 (2026-09-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eThe \u003ccode\u003e-AsuggestPureMethods\u003c/code\u003e command-line option and the \u003ccode\u003epurity.effectively.pure\u003c/code\u003e\nwarning no longer require \u003ccode\u003e-AcheckPurityAnnotations\u003c/code\u003e to also be supplied.\u003c/p\u003e\n\u003ch3\u003eChanges for type system implementers\u003c/h3\u003e\n\u003cp\u003eMade the field \u003ccode\u003eJava8InferenceContext.pathToExpression\u003c/code\u003e private; use\n\u003ccode\u003egetPathToExpression()\u003c/code\u003e and \u003ccode\u003esetPathToExpression()\u003c/code\u003e instead.\u003c/p\u003e\n\u003cp\u003eRenamed \u003ccode\u003eTreeUtils.isLikeDiamondMemberReference()\u003c/code\u003e to \u003ccode\u003eisRawTypedMemberReference()\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/2816\"\u003e#2816\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7677\"\u003e#7677\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7678\"\u003e#7678\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7681\"\u003e#7681\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7682\"\u003e#7682\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7684\"\u003e#7684\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7693\"\u003e#7693\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7694\"\u003e#7694\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7696\"\u003e#7696\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7698\"\u003e#7698\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7701\"\u003e#7701\u003c/a\u003e,\n\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7702\"\u003e#7702\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7875\"\u003e#7875\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8046\"\u003e#8046\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8047\"\u003e#8047\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8048\"\u003e#8048\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8050\"\u003e#8050\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8052\"\u003e#8052\u003c/a\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/ddd330dfec46e29c075f923ac89556379566ccd2\"\u003e\u003ccode\u003eddd330d\u003c/code\u003e\u003c/a\u003e new release 4.2.3\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/d44c55a525c9aa3ce427741379021712c12f296b\"\u003e\u003ccode\u003ed44c55a\u003c/code\u003e\u003c/a\u003e Increase the timeout.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/d07e6cedd79c813b4d56931665e88b7d91395d52\"\u003e\u003ccode\u003ed07e6ce\u003c/code\u003e\u003c/a\u003e Fix links.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/0af4fa25558a87b1bdd74792341c1b1714ff7b71\"\u003e\u003ccode\u003e0af4fa2\u003c/code\u003e\u003c/a\u003e Prep for release.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/455d690ae45a70d433954346a14f4bd22386cf58\"\u003e\u003ccode\u003e455d690\u003c/code\u003e\u003c/a\u003e Infer the type arguments of \u003ccode\u003eReferenceType::Identifier\u003c/code\u003e where \u003ccode\u003eReferenceType\u003c/code\u003e...\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/81173f8df325810f7fa1b420ae8eeb130f3ea784\"\u003e\u003ccode\u003e81173f8\u003c/code\u003e\u003c/a\u003e Add javac equivalent class for AnnotationEqualityVisitor (\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7692\"\u003e#7692\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/81b9930f6c164d761535d520997f8993bd1b1050\"\u003e\u003ccode\u003e81b9930\u003c/code\u003e\u003c/a\u003e AFU Javadoc\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/ac24b72c34b0d590e738393e01e988205f0fe111\"\u003e\u003ccode\u003eac24b72\u003c/code\u003e\u003c/a\u003e Add \u003ccode\u003eci_info\u003c/code\u003e jobs, simplify misc jobs\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/d27d6b4322db4512b9dc67b1e25aa09b51561daa\"\u003e\u003ccode\u003ed27d6b4\u003c/code\u003e\u003c/a\u003e Clear SubtypeVisitHistory after each outermost isSubtype call  (\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8064\"\u003e#8064\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/3180cc2fd296b62031e16baabd61abc4ce1ab80c\"\u003e\u003ccode\u003e3180cc2\u003c/code\u003e\u003c/a\u003e Update actions/setup-java action to v6\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/typetools/checker-framework/compare/checker-framework-4.2.2...checker-framework-4.2.3\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.yaml:snakeyaml` from 2.6 to 2.7\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency\u0027s major version (unless you unignore this specific dependency\u0027s major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency\u0027s minor version (unless you unignore this specific dependency\u0027s minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\u003c/details\u003e\n\nFixes https://github.com/google/error-prone/pull/6104\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/google/error-prone/pull/6104 from google:dependabot/maven/dependencies-cb8706ff92 e6eb1008108f72fffb1baf8b8ccef45a79b064b5\nPiperOrigin-RevId: 981141045\n"
    },
    {
      "commit": "ec3239d87f7b51b4ebaae673e5b6c1e259ff7acd",
      "tree": "94feca67b212dc7f36e100df7045a849b02d3885",
      "parents": [
        "90a5fa14772f62774d5a453dc0c209848d310fef"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Sep 14 13:16:28 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Sep 14 13:18:11 2026"
      },
      "message": "Match `SuppressWarnings` annotations by qualified name in `SuggestedFixes`.\n\nSee https://github.com/google/error-prone/pull/6105#pullrequestreview-5192190311\n\nPiperOrigin-RevId: 981110210\n"
    },
    {
      "commit": "90a5fa14772f62774d5a453dc0c209848d310fef",
      "tree": "7979e075a19d87a982f0638937ad069771b5c3b8",
      "parents": [
        "80c91b3fe1998bf066aede4edced63019099efc5"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Sun Sep 13 20:14:30 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sun Sep 13 20:15:24 2026"
      },
      "message": "Refactor Error Prone check APIs to use annotation mirrors and centralize annotation names\n\nAvoids reflective class-literal-based annotation lookups (`getAnnotation(Class\u003cT\u003e)`) in Error Prone check APIs by reading `AnnotationMirror` and javac attributes directly. Standardizes `MoreAnnotations` on `javax.lang.model.element.AnnotationMirror` and `Element`.\n\nPiperOrigin-RevId: 980779519\n"
    },
    {
      "commit": "80c91b3fe1998bf066aede4edced63019099efc5",
      "tree": "2be26a74b7db6a25bf9269ee897e21765f6e0fb7",
      "parents": [
        "d04e249da55e966328037e7a4f6f8a61fe7e6654"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Fri Sep 11 19:34:04 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Sep 11 19:35:55 2026"
      },
      "message": "Use `ImmutableSortedSet.Builder` in `SourcePathMatcher.sortAndPrunePrefixes`\n\nBuild the sorted set directly using `ImmutableSortedSet.naturalOrder()` and\n`build()` instead of building an intermediate `ImmutableList` and copying it\nwith `ImmutableSortedSet.copyOf(...)`.\n\nSee https://github.com/google/error-prone/pull/6096#discussion_r3991908892\n\nPiperOrigin-RevId: 979959929\n"
    },
    {
      "commit": "d04e249da55e966328037e7a4f6f8a61fe7e6654",
      "tree": "05a4ea085069f0c05635b9e9173cb2d4505c4ed8",
      "parents": [
        "a63623ad80c7d5257f0130d33b8f419de2479f6f"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Fri Sep 11 11:03:46 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Sep 11 11:05:39 2026"
      },
      "message": "Optimize `SourcePathMatcher` prefix matching with binary search\n\nSorts and prunes subsumed directory prefixes at construction time,\nand uses `ImmutableSortedSet.floor` for O(log P) prefix matching.\n\nBecause directory prefixes end with `/`, sorting them clusters descendant\nprefixes after their ancestor, allowing subsumed prefixes (e.g. `a/b/c/`\nwhen `a/b/` is present) to be pruned in a single linear pass. At query\ntime, `ImmutableSortedSet.floor` locates the predecessor candidate in\nO(log P) time with zero allocations.\n\nPiperOrigin-RevId: 979733608\n"
    },
    {
      "commit": "a63623ad80c7d5257f0130d33b8f419de2479f6f",
      "tree": "f4d5214798ddba1402f95740750748be8ee33798",
      "parents": [
        "92562c9ce215eaab4fdfca6e38dd3d490fa77267"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Thu Sep 10 12:13:59 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Sep 10 12:16:15 2026"
      },
      "message": "Add `ASTHelpers.getSourcePath`, `SourcePathMatcher`, and path matchers in `Matchers`\n\nPiperOrigin-RevId: 979121272\n"
    },
    {
      "commit": "92562c9ce215eaab4fdfca6e38dd3d490fa77267",
      "tree": "5e5639642595fe51bde6925694e95686dc29ff57",
      "parents": [
        "71961726d1f199f3a64f8930a00943b6bd2c82d3"
      ],
      "author": {
        "name": "Vladimir Sitnikov",
        "email": "sitnikov.vladimir@gmail.com",
        "time": "Wed Sep 09 09:23:43 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Sep 09 09:26:09 2026"
      },
      "message": "Record check timings only when requested (-XepPrintTimings or -XepRecordTimings)\n\n## Why\n\n`ErrorProneScanner.processMatchers` opens a timing span for every matcher it runs on every AST node, and nothing reads what the spans record: `ErrorProneTimings.timings()` and `initializationTime()` have no callers in `error_prone_check_api` or `error_prone_core`, and no test asserts on either.\n\nThe spans are not cheap at that frequency. Compiling `error_prone_core` itself opens 14771508 of them, and Calcite\u0027s `:core` opens 28493608, each a `HashMap` lookup, two `System.nanoTime` calls, and a closure. Against a build whose `span` returns a shared no-op, alternating the two inside one JVM so each pair meets the same machine state, they cost a median of 656 ms of a 13.0 s compile and 1216 ms of a 37 s one, and on Calcite 0.42 GiB of allocation.\n\n[#6079](https://github.com/google/error-prone/issues/6079) has the full measurements.\n\n## What\n\nTiming spans are now gated on opt-in flags:\n- `-XepPrintTimings`: records timings and prints a per-check report at the end of compilation:\n```text\nError Prone ran 440 checks in 582 ms, and spent 338 ms initializing\n       172 ms   29.6%  ParameterName\n        27 ms    4.8%  AvoidCommonTypeNames\n        24 ms    4.2%  AutoValueSubclassLeaked\n```\n- `-XepRecordTimings`: records timings into `ErrorProneTimings` without printing console output (for tools or build systems that query `timings()` programmatically, such as build metrics reporters).\n\nWithout either flag, timing spans are no-ops (`NO_TIMING_SPAN`), avoiding map lookups, timestamp reads, and closure allocations.\n\n## How to verify\n\n```bash\nmvn -pl check_api,core test -Dtest\u003dErrorProneOptionsTest,ErrorProneJavaCompilerTest\n```\n\n`recognizesPrintTimings`, `recognizesRecordTimings`, and `printTimingsIsOffByDefault` cover option parsing.\n`printTimingsReportsEveryCheckThatRan`, `withoutPrintTimingsNoReportIsPrinted`, and `recordTimingsCollectsWithoutPrintingReport` verify timing recording and output behavior.\n\nOne limitation the tests do not cover: under Gradle the report does not reach the build log, because Gradle passes no writer to `JavaCompiler.getTask` and javac\u0027s `NOTICE` writer then goes to the compiler daemon\u0027s stderr. It arrives through any caller that supplies a writer. Emitting it as a diagnostic instead would fix that, and the same applies to what `RefactoringCollection` already prints; I left both alone here.\n\nFixes https://github.com/google/error-prone/pull/6080\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/google/error-prone/pull/6080 from vlsi:vs/timings-opt-in 2dd112fa5c129faf40a5f64f4b60f16a084b518f\nPiperOrigin-RevId: 978412258\n"
    },
    {
      "commit": "71961726d1f199f3a64f8930a00943b6bd2c82d3",
      "tree": "d361b0259e029326aff32d98a47ce5eb2d33b8a9",
      "parents": [
        "c1f99ad5d3fbed011f5be70118611153f8a429d0"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Tue Sep 08 13:31:31 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Sep 08 13:32:41 2026"
      },
      "message": "Flag comparisons of `Class.forName(...)` to `null`.\n\nPiperOrigin-RevId: 977877954\n"
    },
    {
      "commit": "c1f99ad5d3fbed011f5be70118611153f8a429d0",
      "tree": "8c04cc7b62d4e289da1769586da58b3751690795",
      "parents": [
        "fc79cd16375cc9b66175078dd7af2e9297f592fb"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Thu Sep 03 21:07:20 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Sep 03 21:08:53 2026"
      },
      "message": "Rip out `MustBeClosed:CheckArena` flag, and improve check docs.\n\nPiperOrigin-RevId: 975915464\n"
    },
    {
      "commit": "fc79cd16375cc9b66175078dd7af2e9297f592fb",
      "tree": "d25e0b9e4d706faa7c4e84918d651b22363d7c33",
      "parents": [
        "aa377454288b5b94d37342b562860b8e695772af"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Thu Sep 03 19:02:20 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Sep 03 19:03:59 2026"
      },
      "message": "Delete `SubContext` from Error Prone and Refaster\n\nRemove `SubContext` and pass contextual dependencies explicitly across\nRefaster\u0027s template building, matching, and inlining pipelines.\n\nThis avoids overhead of creating `SubContext` and looking up values, and also\ndecouples refaster from the javac internal `Context` API.\n\nPiperOrigin-RevId: 975852294\n"
    },
    {
      "commit": "aa377454288b5b94d37342b562860b8e695772af",
      "tree": "7c04813c5155614b4739bba604cd01864245d41c",
      "parents": [
        "0df6e1fe7cd0cb919a128f984d1587577d72ead6"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Thu Sep 03 18:17:03 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Sep 03 18:18:04 2026"
      },
      "message": "Avoid type identity comparison in `ASTHelpers.isSubtype`\n\nCheck `t.tsym \u003d\u003d state.getSymtab().unknownSymbol` instead of comparing `t \u003d\u003d\nstate.getSymtab().unknownType` by identity. `UnknownType` became an `ErrorType`\nin JDK 24+ (JDK-8339296), but had `TypeTag.UNKNOWN` in earlier JDKs; comparing\n`tsym` avoids type identity issues across JDK versions.\n\nPiperOrigin-RevId: 975827572\n"
    },
    {
      "commit": "0df6e1fe7cd0cb919a128f984d1587577d72ead6",
      "tree": "1035b99a64aeca5f1bcf6921d16f695b0a1580ef",
      "parents": [
        "e6da5f73dd46d6c554d64b2681fb86a2cc2c6476"
      ],
      "author": {
        "name": "Éamonn McManus",
        "email": "emcmanus@google.com",
        "time": "Tue Sep 01 17:29:04 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Sep 01 17:30:56 2026"
      },
      "message": "Undo a change that disabled part of a check.\n\nWe had to disable the check that catches, for example, `messageLite.getExtension(Foo.class) !\u003d null`. (It is never null.) Some Google code was broken by the new check. That code has now been updated.\n\nPiperOrigin-RevId: 974572697\n"
    },
    {
      "commit": "e6da5f73dd46d6c554d64b2681fb86a2cc2c6476",
      "tree": "3eea7ff7ff002d2ea3aea69afd0af311d29ac3b2",
      "parents": [
        "9fefe418c19d148a57c7713f0636d7fe46bcfee2"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Tue Sep 01 13:32:49 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Tue Sep 01 13:32:49 2026"
      },
      "message": "Bump actions/setup-java from 5.7.0 to 6.0.0 in the github-actions group (#6084)\n\nBumps the github-actions group with 1 update: [actions/setup-java](https://github.com/actions/setup-java).\n\n\nUpdates `actions/setup-java` from 5.7.0 to 6.0.0\n- [Release notes](https://github.com/actions/setup-java/releases)\n- [Commits](https://github.com/actions/setup-java/compare/b6effb05e454b25005698d916606bdc6ffcbf961...dd06d9cba3e5552c54d9f8ea23572deb30010f7c)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-java\n  dependency-version: 6.0.0\n  dependency-type: direct:production\n  update-type: version-update:semver-major\n  dependency-group: github-actions\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "9fefe418c19d148a57c7713f0636d7fe46bcfee2",
      "tree": "26b0ba93875cea52c7a7b55e0d593c8837b624ab",
      "parents": [
        "6c98ace15a6156edeb52b393b531ee0fbd41411d"
      ],
      "author": {
        "name": "Vladimir Sitnikov",
        "email": "sitnikov.vladimir@gmail.com",
        "time": "Mon Aug 31 14:47:57 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Aug 31 14:48:56 2026"
      },
      "message": "Don\u0027t allocate a VisitorState when a memoized lookup hits the cache\n\n## Why\n\n`VisitorState.Cache.get` replaced the caller\u0027s state with a pathless copy before it looked in the cache:\n\n```java\npublic synchronized T get(VisitorState state) {\n  state \u003d state.withNoPathForMemoization();\n\n  T value \u003d cache.get();\n  if (value \u003d\u003d null) {\n    value \u003d impl.get(state);\n    ...\n```\n\nThe copy keeps a memoized supplier from reading a `TreePath` that belongs to one compilation unit while its result is cached for the whole compilation, so `impl.get` is the only caller that needs it. The cache answers most reads without calling `impl`, and those reads allocated a `VisitorState` and dropped it.\n\nThe scanner reaches memoized suppliers through `TypePredicates`, `Suppliers.typeFromString`, `Matchers`, and `MethodMatchers`, once per matcher per AST node, so the reads are frequent: compiling the 948 sources of `error_prone_core` with Error Prone enabled runs `Cache.get` 25448504 times and answers 17019874 of those from the cache.\n\n## What\n\n`compute` now makes the pathless copy, and it runs only when the value has to be computed. `withNoPathForMemoization` returns `this` when the path is already null, so a memoized supplier that reads another memoized value allocates nothing either.\n\n`impl` still receives a state whose `getPath()` throws, and the `provenance` bookkeeping reads `sharedState`, which the copy shares with the original.\n\n## How to verify\n\n```bash\nmvn -pl check_api,core test\n```\n\nAllocation was measured with an in-process `javac` compiling the 948 sources of `error_prone_core` with Error Prone enabled on JDK 24, reading `ThreadMXBean.getThreadAllocatedBytes` for the compiling thread. Steady state over six compilations in one JVM: 8.251 GiB before, 7.744 GiB after. The 17019874 cached reads at 32 bytes per `VisitorState` come to 0.507 GiB, which is the whole difference.\n\nFixes https://github.com/google/error-prone/pull/6078\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/google/error-prone/pull/6078 from vlsi:vs/memoize-no-alloc-on-hit e91d4c07588a7431ee14b53a599f8f04e9e8b3f3\nPiperOrigin-RevId: 973878054\n"
    },
    {
      "commit": "6c98ace15a6156edeb52b393b531ee0fbd41411d",
      "tree": "ab45fb324756248eab6d19af18648432bf8d97d1",
      "parents": [
        "19a7ad6cf11aac19783efc89fc94dbddc0482ec0"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Aug 31 07:45:11 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Aug 31 07:46:08 2026"
      },
      "message": "Bump the dependencies group with 7 updates\n\nBumps the dependencies group with 7 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [biz.aQute.bnd:bnd-maven-plugin](https://github.com/bndtools/bnd) | `7.3.0` | `7.4.0` |\n| [com.google.guava:guava-testlib](https://github.com/google/guava) | `33.6.0-jre` | `33.7.1-jre` |\n| [com.google.guava:guava](https://github.com/google/guava) | `33.6.0-jre` | `33.7.1-jre` |\n| [com.google.jimfs:jimfs](https://github.com/google/jimfs) | `1.3.1` | `1.3.2` |\n| [com.google.protobuf:protobuf-java](https://github.com/protocolbuffers/protobuf) | `4.35.1` | `4.36.0` |\n| com.google.protobuf:protobuf-java-util | `4.35.1` | `4.36.0` |\n| [org.easymock:easymock](https://github.com/easymock/easymock) | `5.6.0` | `5.7.0` |\n\nUpdates `biz.aQute.bnd:bnd-maven-plugin` from 7.3.0 to 7.4.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/bndtools/bnd/releases\"\u003ebiz.aQute.bnd:bnd-maven-plugin\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eBnd/Bndtools 7.4.0\u003c/h2\u003e\n\u003cp\u003eSee \u003ca href\u003d\"https://github.com/bndtools/bnd/wiki/Changes-in-7.4.0\"\u003eRelease Notes\u003c/a\u003e\u003c/p\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRemove long-running test from ci server build by \u003ca href\u003d\"https://github.com/peterkir\"\u003e\u003ccode\u003e@​peterkir\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7222\"\u003ebndtools/bnd#7222\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCI build output improvement by \u003ca href\u003d\"https://github.com/peterkir\"\u003e\u003ccode\u003e@​peterkir\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7223\"\u003ebndtools/bnd#7223\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump ruby/setup-ruby from 1.306.0 to 1.307.0 by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7227\"\u003ebndtools/bnd#7227\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump step-security/harden-runner from 2.19.0 to 2.19.2 by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7230\"\u003ebndtools/bnd#7230\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 4.35.2 to 4.36.0 by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7246\"\u003ebndtools/bnd#7246\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump step-security/harden-runner from 2.19.2 to 2.19.4 by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7245\"\u003ebndtools/bnd#7245\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCreate SECURITY.md for bnd security documentation by \u003ca href\u003d\"https://github.com/chrisrueger\"\u003e\u003ccode\u003e@​chrisrueger\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7243\"\u003ebndtools/bnd#7243\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump ruby/setup-ruby from 1.307.0 to 1.310.0 by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7240\"\u003ebndtools/bnd#7240\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump jekyll-seo-tag from 2.8.0 to 2.9.0 in /docs by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7225\"\u003ebndtools/bnd#7225\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAllow overriding HTTPClient request headers by \u003ca href\u003d\"https://github.com/chrisrueger\"\u003e\u003ccode\u003e@​chrisrueger\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7247\"\u003ebndtools/bnd#7247\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update generated docs by \u003ca href\u003d\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7248\"\u003ebndtools/bnd#7248\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSet explicit headers before defaults and refine logging by \u003ca href\u003d\"https://github.com/chrisrueger\"\u003e\u003ccode\u003e@​chrisrueger\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7249\"\u003ebndtools/bnd#7249\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eCooldowns for Dependabot updates by \u003ca href\u003d\"https://github.com/chrisrueger\"\u003e\u003ccode\u003e@​chrisrueger\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7250\"\u003ebndtools/bnd#7250\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump org.apache.maven.plugins:maven-invoker-plugin from 3.10.0 to 3.10.1 in /maven-plugins by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7219\"\u003ebndtools/bnd#7219\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps-dev): bump org.apache.maven.plugins:maven-surefire-plugin from 3.5.5 to 3.5.6 in /maven-plugins by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7251\"\u003ebndtools/bnd#7251\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eSurface Sonatype deployment IDs in CI Job Summary and workflow outputs by \u003ca href\u003d\"https://github.com/peterkir\"\u003e\u003ccode\u003e@​peterkir\u003c/code\u003e\u003c/a\u003e with \u003ca href\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7252\"\u003ebndtools/bnd#7252\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eStabilize SonatypeDeploymentTest deployment ID discovery across CI by \u003ca href\u003d\"https://github.com/peterkir\"\u003e\u003ccode\u003e@​peterkir\u003c/code\u003e\u003c/a\u003e with \u003ca href\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7254\"\u003ebndtools/bnd#7254\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUse \u003ccode\u003ePAT_WORKSPACE_REPO\u003c/code\u003e for \u003ccode\u003ecreate-workspace-template\u003c/code\u003e git auth by \u003ca href\u003d\"https://github.com/peterkir\"\u003e\u003ccode\u003e@​peterkir\u003c/code\u003e\u003c/a\u003e with \u003ca href\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7253\"\u003ebndtools/bnd#7253\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eReadme: Update Bnd Maven and Gradle plugin versions to 7.3.0 by \u003ca href\u003d\"https://github.com/chrisrueger\"\u003e\u003ccode\u003e@​chrisrueger\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7258\"\u003ebndtools/bnd#7258\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 6.0.2 to 6.0.3 by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7256\"\u003ebndtools/bnd#7256\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/stale from 10.2.0 to 10.3.0 by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7244\"\u003ebndtools/bnd#7244\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 4.36.0 to 4.36.1 by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7257\"\u003ebndtools/bnd#7257\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBndtools Explorer Quick Links addition - Existing Bnd Workspace by \u003ca href\u003d\"https://github.com/peterkir\"\u003e\u003ccode\u003e@​peterkir\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7259\"\u003ebndtools/bnd#7259\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate baseline version to 7.3.0 by \u003ca href\u003d\"https://github.com/chrisrueger\"\u003e\u003ccode\u003e@​chrisrueger\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7260\"\u003ebndtools/bnd#7260\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump github/codeql-action from 4.36.1 to 4.36.2 by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7261\"\u003ebndtools/bnd#7261\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd sync baseline version step in postrelease workflow by \u003ca href\u003d\"https://github.com/chrisrueger\"\u003e\u003ccode\u003e@​chrisrueger\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7263\"\u003ebndtools/bnd#7263\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePost release 7.3.0 by \u003ca href\u003d\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7266\"\u003ebndtools/bnd#7266\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[maven][resolve] Provide a better logging experience for maven users when resolving by \u003ca href\u003d\"https://github.com/timothyjward\"\u003e\u003ccode\u003e@​timothyjward\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7255\"\u003ebndtools/bnd#7255\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump gradle/actions from 6.1.0 to 6.2.0 by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7272\"\u003ebndtools/bnd#7272\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump ruby/setup-ruby from 1.310.0 to 1.313.0 by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7271\"\u003ebndtools/bnd#7271\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-java from 5.2.0 to 5.3.0 by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7273\"\u003ebndtools/bnd#7273\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump concurrent-ruby from 1.3.6 to 1.3.7 in /docs by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7278\"\u003ebndtools/bnd#7278\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump ruby/setup-ruby from 1.313.0 to 1.314.0 by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7282\"\u003ebndtools/bnd#7282\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePersist and manage workspace template fragment indexes by \u003ca href\u003d\"https://github.com/maho7791\"\u003e\u003ccode\u003e@​maho7791\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7284\"\u003ebndtools/bnd#7284\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix IllegalArgumentException for Maven-style SNAPSHOT versions in PomResource by \u003ca href\u003d\"https://github.com/peterkir\"\u003e\u003ccode\u003e@​peterkir\u003c/code\u003e\u003c/a\u003e with \u003ca href\u003d\"https://github.com/Copilot\"\u003e\u003ccode\u003e@​Copilot\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7286\"\u003ebndtools/bnd#7286\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003erepo deps\u003c/code\u003e command to export Maven GAVs for dash-licenses by \u003ca href\u003d\"https://github.com/juergen-albert\"\u003e\u003ccode\u003e@​juergen-albert\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7275\"\u003ebndtools/bnd#7275\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003edocs: update generated docs by \u003ca href\u003d\"https://github.com/github-actions\"\u003e\u003ccode\u003e@​github-actions\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7287\"\u003ebndtools/bnd#7287\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efix IndexOutOfBoundsException by \u003ca href\u003d\"https://github.com/chrisrueger\"\u003e\u003ccode\u003e@​chrisrueger\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7291\"\u003ebndtools/bnd#7291\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efixing issue \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/issues/7124\"\u003e#7124\u003c/a\u003e by \u003ca href\u003d\"https://github.com/peterkir\"\u003e\u003ccode\u003e@​peterkir\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7292\"\u003ebndtools/bnd#7292\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/checkout from 6.0.3 to 7.0.0 by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7277\"\u003ebndtools/bnd#7277\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump actions/setup-java from 5.3.0 to 5.4.0 by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7295\"\u003ebndtools/bnd#7295\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eExclude Eclipse features from P2 Repo .versions() by \u003ca href\u003d\"https://github.com/chrisrueger\"\u003e\u003ccode\u003e@​chrisrueger\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7296\"\u003ebndtools/bnd#7296\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump ruby/setup-ruby from 1.314.0 to 1.315.0 by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7299\"\u003ebndtools/bnd#7299\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ebuild(deps): bump ruby/setup-ruby from 1.315.0 to 1.316.0 by \u003ca href\u003d\"https://github.com/dependabot\"\u003e\u003ccode\u003e@​dependabot\u003c/code\u003e\u003c/a\u003e[bot] in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7301\"\u003ebndtools/bnd#7301\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e[Security] Maven Repositories: Add Trusted Checksum Verification by \u003ca href\u003d\"https://github.com/chrisrueger\"\u003e\u003ccode\u003e@​chrisrueger\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7269\"\u003ebndtools/bnd#7269\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix NPE in RepoCollector initialization during Project construction by \u003ca href\u003d\"https://github.com/chrisrueger\"\u003e\u003ccode\u003e@​chrisrueger\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/pull/7304\"\u003ebndtools/bnd#7304\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/bndtools/bnd/commit/2046c36f902161120b55a6b88bfe3c3060dfc251\"\u003e\u003ccode\u003e2046c36\u003c/code\u003e\u003c/a\u003e build: Build Release 7.4.0\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/bndtools/bnd/commit/aab8519ae9da7edb3c3476c7aeef5c08ca7731cc\"\u003e\u003ccode\u003eaab8519\u003c/code\u003e\u003c/a\u003e build: Build Release 7.4.0.RC3\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/bndtools/bnd/commit/606a199c8bb6d3c5cc3678c4dd8ed1c5af52055b\"\u003e\u003ccode\u003e606a199\u003c/code\u003e\u003c/a\u003e build: Build Release 7.4.0.RC2\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/bndtools/bnd/commit/afdf5478f1fbb40fb0423817411d4ef6b99e03f6\"\u003e\u003ccode\u003eafdf547\u003c/code\u003e\u003c/a\u003e missing files\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/bndtools/bnd/commit/9074a7a33f5476982205d36e868b6edad118b174\"\u003e\u003ccode\u003e9074a7a\u003c/code\u003e\u003c/a\u003e build: Build Release 7.4.0.RC1\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/bndtools/bnd/commit/b5c4c588e5aa020c9d9b5692861b3336d2c15851\"\u003e\u003ccode\u003eb5c4c58\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Eclipse feature support for buildpath\u0026quot;\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/bndtools/bnd/commit/4fd8e4a9951d2401954be797d8eb8a5342e688f0\"\u003e\u003ccode\u003e4fd8e4a\u003c/code\u003e\u003c/a\u003e Eclipse feature support for buildpath\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/bndtools/bnd/commit/a6ba530d468ef79720ea273cc22948fb3049fac4\"\u003e\u003ccode\u003ea6ba530\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/issues/7336\"\u003e#7336\u003c/a\u003e from chrisrueger/7214-fix-deadlock-junit-tee\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/bndtools/bnd/commit/0fda33aa548226ce3654e50e58497ceea34b5bbd\"\u003e\u003ccode\u003e0fda33a\u003c/code\u003e\u003c/a\u003e Fix thread-safety in Tee class\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/bndtools/bnd/commit/061b7fd5c265827cf5b931e7f29cb367cf32bdcd\"\u003e\u003ccode\u003e061b7fd\u003c/code\u003e\u003c/a\u003e Merge pull request \u003ca href\u003d\"https://redirect.github.com/bndtools/bnd/issues/7325\"\u003e#7325\u003c/a\u003e from bndtools/dependabot/github_actions/actions/chec...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/bndtools/bnd/compare/7.3.0...7.4.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.google.guava:guava-testlib` from 33.6.0-jre to 33.7.1-jre\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/google/guava/releases\"\u003ecom.google.guava:guava-testlib\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e33.7.1\u003c/h2\u003e\n\u003ch3\u003eMaven\u003c/h3\u003e\n\u003cpre lang\u003d\"xml\"\u003e\u003ccode\u003e\u0026lt;dependency\u0026gt;\n  \u0026lt;groupId\u0026gt;com.google.guava\u0026lt;/groupId\u0026gt;\n  \u0026lt;artifactId\u0026gt;guava\u0026lt;/artifactId\u0026gt;\n  \u0026lt;version\u0026gt;33.7.1-jre\u0026lt;/version\u0026gt;\n  \u0026lt;!-- or, for Android: --\u0026gt;\n  \u0026lt;version\u0026gt;33.7.1-android\u0026lt;/version\u0026gt;\n\u0026lt;/dependency\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eJar files\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://repo1.maven.org/maven2/com/google/guava/guava/33.7.1-jre/guava-33.7.1-jre.jar\"\u003e33.7.1-jre.jar\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://repo1.maven.org/maven2/com/google/guava/guava/33.7.1-android/guava-33.7.1-android.jar\"\u003e33.7.1-android.jar\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eGuava requires \u003ca href\u003d\"https://github.com/google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies\"\u003eone runtime dependency\u003c/a\u003e, which you can download here:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar\"\u003efailureaccess-1.0.3.jar\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavadoc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://guava.dev/releases/33.7.1-jre/api/docs/\"\u003e33.7.1-jre\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://guava.dev/releases/33.7.1-android/api/docs/\"\u003e33.7.1-android\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJDiff\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://guava.dev/releases/33.7.1-jre/api/diffs/\"\u003e33.7.1-jre vs. 33.7.0-jre\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://guava.dev/releases/33.7.1-android/api/diffs/\"\u003e33.7.1-android vs. 33.7.0-android\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://guava.dev/releases/33.7.1-android/api/androiddiffs/\"\u003e33.7.1-android vs. 33.7.1-jre\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog\u003c/h3\u003e\n\u003cp\u003eGuava 33.7.1 removes the \u003ccode\u003eMulti-Release\u003c/code\u003e line from our jar manifest, fixing an issue under Java 9 and 10 that was introduced to \u003ccode\u003eguava-jre\u003c/code\u003e in \u003ca href\u003d\"https://github.com/google/guava/releases/tag/v33.7.0\"\u003eversion 33.7.0\u003c/a\u003e. Sorry for the trouble.\u003c/p\u003e\n\u003ch2\u003e33.7.0\u003c/h2\u003e\n\u003ch3\u003eNewly introduced problem for Java 9 and Java 10 only\u003c/h3\u003e\n\u003cp\u003eGuava 33.7.0 includes a \u003ccode\u003eMulti-Release\u003c/code\u003e line in its jar manifest, even though it is no longer a multi-release jar. This causes \u003ca href\u003d\"https://redirect.github.com/google/guava/issues/8614\"\u003esome problems with tools from Java 9 and Java 10\u003c/a\u003e. The issue is fixed in \u003ca href\u003d\"https://github.com/google/guava/releases/tag/v33.7.1\"\u003eversion 33.7.1\u003c/a\u003e. Sorry for the trouble.\u003c/p\u003e\n\u003ch3\u003eMaven\u003c/h3\u003e\n\u003cpre lang\u003d\"xml\"\u003e\u003ccode\u003e\u0026lt;dependency\u0026gt;\n  \u0026lt;groupId\u0026gt;com.google.guava\u0026lt;/groupId\u0026gt;\n  \u0026lt;artifactId\u0026gt;guava\u0026lt;/artifactId\u0026gt;\n  \u0026lt;version\u0026gt;33.7.0-jre\u0026lt;/version\u0026gt;\n  \u0026lt;!-- or, for Android: --\u0026gt;\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href\u003d\"https://github.com/google/guava/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.google.guava:guava` from 33.6.0-jre to 33.7.1-jre\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/google/guava/releases\"\u003ecom.google.guava:guava\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e33.7.1\u003c/h2\u003e\n\u003ch3\u003eMaven\u003c/h3\u003e\n\u003cpre lang\u003d\"xml\"\u003e\u003ccode\u003e\u0026lt;dependency\u0026gt;\n  \u0026lt;groupId\u0026gt;com.google.guava\u0026lt;/groupId\u0026gt;\n  \u0026lt;artifactId\u0026gt;guava\u0026lt;/artifactId\u0026gt;\n  \u0026lt;version\u0026gt;33.7.1-jre\u0026lt;/version\u0026gt;\n  \u0026lt;!-- or, for Android: --\u0026gt;\n  \u0026lt;version\u0026gt;33.7.1-android\u0026lt;/version\u0026gt;\n\u0026lt;/dependency\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eJar files\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://repo1.maven.org/maven2/com/google/guava/guava/33.7.1-jre/guava-33.7.1-jre.jar\"\u003e33.7.1-jre.jar\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://repo1.maven.org/maven2/com/google/guava/guava/33.7.1-android/guava-33.7.1-android.jar\"\u003e33.7.1-android.jar\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eGuava requires \u003ca href\u003d\"https://github.com/google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies\"\u003eone runtime dependency\u003c/a\u003e, which you can download here:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar\"\u003efailureaccess-1.0.3.jar\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavadoc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://guava.dev/releases/33.7.1-jre/api/docs/\"\u003e33.7.1-jre\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://guava.dev/releases/33.7.1-android/api/docs/\"\u003e33.7.1-android\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJDiff\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://guava.dev/releases/33.7.1-jre/api/diffs/\"\u003e33.7.1-jre vs. 33.7.0-jre\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://guava.dev/releases/33.7.1-android/api/diffs/\"\u003e33.7.1-android vs. 33.7.0-android\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://guava.dev/releases/33.7.1-android/api/androiddiffs/\"\u003e33.7.1-android vs. 33.7.1-jre\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog\u003c/h3\u003e\n\u003cp\u003eGuava 33.7.1 removes the \u003ccode\u003eMulti-Release\u003c/code\u003e line from our jar manifest, fixing an issue under Java 9 and 10 that was introduced to \u003ccode\u003eguava-jre\u003c/code\u003e in \u003ca href\u003d\"https://github.com/google/guava/releases/tag/v33.7.0\"\u003eversion 33.7.0\u003c/a\u003e. Sorry for the trouble.\u003c/p\u003e\n\u003ch2\u003e33.7.0\u003c/h2\u003e\n\u003ch3\u003eNewly introduced problem for Java 9 and Java 10 only\u003c/h3\u003e\n\u003cp\u003eGuava 33.7.0 includes a \u003ccode\u003eMulti-Release\u003c/code\u003e line in its jar manifest, even though it is no longer a multi-release jar. This causes \u003ca href\u003d\"https://redirect.github.com/google/guava/issues/8614\"\u003esome problems with tools from Java 9 and Java 10\u003c/a\u003e. The issue is fixed in \u003ca href\u003d\"https://github.com/google/guava/releases/tag/v33.7.1\"\u003eversion 33.7.1\u003c/a\u003e. Sorry for the trouble.\u003c/p\u003e\n\u003ch3\u003eMaven\u003c/h3\u003e\n\u003cpre lang\u003d\"xml\"\u003e\u003ccode\u003e\u0026lt;dependency\u0026gt;\n  \u0026lt;groupId\u0026gt;com.google.guava\u0026lt;/groupId\u0026gt;\n  \u0026lt;artifactId\u0026gt;guava\u0026lt;/artifactId\u0026gt;\n  \u0026lt;version\u0026gt;33.7.0-jre\u0026lt;/version\u0026gt;\n  \u0026lt;!-- or, for Android: --\u0026gt;\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href\u003d\"https://github.com/google/guava/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.google.jimfs:jimfs` from 1.3.1 to 1.3.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/google/jimfs/releases\"\u003ecom.google.jimfs:jimfs\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.3.2\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFixed \u003ccode\u003eFiles.move\u003c/code\u003e so that \u003ccode\u003eATOMIC_MOVE\u003c/code\u003e always enables overwriting of an existing destination file. (3f6e092c)\u003c/li\u003e\n\u003cli\u003eEnsured that \u003ccode\u003eSecureDirectoryStream.move\u003c/code\u003e works like \u003ccode\u003eFiles.move\u003c/code\u003e with the \u003ccode\u003eATOMIC_MOVE\u003c/code\u003e option, as specified, and required that all \u003ccode\u003ePath\u003c/code\u003e arguments to \u003ccode\u003eSecureDirectoryStream\u003c/code\u003e methods be from the same \u003ccode\u003eFileSystem\u003c/code\u003e as the stream itself. (398b0f90)\u003c/li\u003e\n\u003cli\u003eFixed access from \u003ccode\u003eSystemJimfsFileSystemProvider\u003c/code\u003e to \u003ccode\u003eJimfsFileSystem\u003c/code\u003e when they are loaded by different class loaders. (5b756f17)\u003c/li\u003e\n\u003cli\u003eFixed \u003ccode\u003eJimfsInputStream.read\u003c/code\u003e to always return 0 when \u003ccode\u003elen\u003c/code\u003e is 0. (0e5725b4d44ec51d54fba15336aa23147c1bedc7)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/jimfs/commit/d10679be1d71634beeb6a7919dfb8b166e83bd9f\"\u003e\u003ccode\u003ed10679b\u003c/code\u003e\u003c/a\u003e Set version number for jimfs-parent to 1.3.2.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/jimfs/commit/145b64de2f69dfff7a82227e4cd59dff668f2dfc\"\u003e\u003ccode\u003e145b64d\u003c/code\u003e\u003c/a\u003e Bump Guava to 33.7.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/jimfs/commit/396576085a78c2b9c7f59dbbeb2dc1f7a0ffdec3\"\u003e\u003ccode\u003e3965760\u003c/code\u003e\u003c/a\u003e Throw \u003ccode\u003eUnsupportedOperationException\u003c/code\u003e for unsupported attribute views\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/jimfs/commit/8ccbf27f7c27272451ac39de006aad203867b37a\"\u003e\u003ccode\u003e8ccbf27\u003c/code\u003e\u003c/a\u003e Bump Guava to 33.7.0.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/jimfs/commit/10121d701b7061963ac3ff05f77090fbef08f37d\"\u003e\u003ccode\u003e10121d7\u003c/code\u003e\u003c/a\u003e Update links from the legacy search.maven.org to the new central.sonatype.com.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/jimfs/commit/27ad1f96fcbea1b61584e951419a21232fa5860b\"\u003e\u003ccode\u003e27ad1f9\u003c/code\u003e\u003c/a\u003e Enact some security improvements that I\u0027d missed in previous rounds.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/jimfs/commit/4bb21debff5d658b00eb53256d9baa2dbbaec857\"\u003e\u003ccode\u003e4bb21de\u003c/code\u003e\u003c/a\u003e Delete \u003ccode\u003eassertAsynchronousClose\u003c/code\u003e, migrating callers to \u003ccode\u003eassertClosed\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/jimfs/commit/0dbccb6c41bff6d4bfbe5d01965acbbfc2e5cd0b\"\u003e\u003ccode\u003e0dbccb6\u003c/code\u003e\u003c/a\u003e Set \u003ccode\u003epersist-credentials: false\u003c/code\u003e on \u003ccode\u003echeckout\u003c/code\u003e actions.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/jimfs/commit/6bff2d8d4f4b06e09c915e9bee72724e02793fcd\"\u003e\u003ccode\u003e6bff2d8\u003c/code\u003e\u003c/a\u003e Bump JSpecify to 1.0.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/jimfs/commit/6922aea16f32e94aa6db3881b4f903d411a4332d\"\u003e\u003ccode\u003e6922aea\u003c/code\u003e\u003c/a\u003e Bump the github-actions group across 1 directory with 2 updates\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/google/jimfs/compare/v1.3.1...v1.3.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.google.guava:guava` from 33.6.0-jre to 33.7.1-jre\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/google/guava/releases\"\u003ecom.google.guava:guava\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e33.7.1\u003c/h2\u003e\n\u003ch3\u003eMaven\u003c/h3\u003e\n\u003cpre lang\u003d\"xml\"\u003e\u003ccode\u003e\u0026lt;dependency\u0026gt;\n  \u0026lt;groupId\u0026gt;com.google.guava\u0026lt;/groupId\u0026gt;\n  \u0026lt;artifactId\u0026gt;guava\u0026lt;/artifactId\u0026gt;\n  \u0026lt;version\u0026gt;33.7.1-jre\u0026lt;/version\u0026gt;\n  \u0026lt;!-- or, for Android: --\u0026gt;\n  \u0026lt;version\u0026gt;33.7.1-android\u0026lt;/version\u0026gt;\n\u0026lt;/dependency\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003ch3\u003eJar files\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://repo1.maven.org/maven2/com/google/guava/guava/33.7.1-jre/guava-33.7.1-jre.jar\"\u003e33.7.1-jre.jar\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://repo1.maven.org/maven2/com/google/guava/guava/33.7.1-android/guava-33.7.1-android.jar\"\u003e33.7.1-android.jar\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eGuava requires \u003ca href\u003d\"https://github.com/google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies\"\u003eone runtime dependency\u003c/a\u003e, which you can download here:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://repo1.maven.org/maven2/com/google/guava/failureaccess/1.0.3/failureaccess-1.0.3.jar\"\u003efailureaccess-1.0.3.jar\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJavadoc\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://guava.dev/releases/33.7.1-jre/api/docs/\"\u003e33.7.1-jre\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://guava.dev/releases/33.7.1-android/api/docs/\"\u003e33.7.1-android\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eJDiff\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://guava.dev/releases/33.7.1-jre/api/diffs/\"\u003e33.7.1-jre vs. 33.7.0-jre\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://guava.dev/releases/33.7.1-android/api/diffs/\"\u003e33.7.1-android vs. 33.7.0-android\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://guava.dev/releases/33.7.1-android/api/androiddiffs/\"\u003e33.7.1-android vs. 33.7.1-jre\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog\u003c/h3\u003e\n\u003cp\u003eGuava 33.7.1 removes the \u003ccode\u003eMulti-Release\u003c/code\u003e line from our jar manifest, fixing an issue under Java 9 and 10 that was introduced to \u003ccode\u003eguava-jre\u003c/code\u003e in \u003ca href\u003d\"https://github.com/google/guava/releases/tag/v33.7.0\"\u003eversion 33.7.0\u003c/a\u003e. Sorry for the trouble.\u003c/p\u003e\n\u003ch2\u003e33.7.0\u003c/h2\u003e\n\u003ch3\u003eNewly introduced problem for Java 9 and Java 10 only\u003c/h3\u003e\n\u003cp\u003eGuava 33.7.0 includes a \u003ccode\u003eMulti-Release\u003c/code\u003e line in its jar manifest, even though it is no longer a multi-release jar. This causes \u003ca href\u003d\"https://redirect.github.com/google/guava/issues/8614\"\u003esome problems with tools from Java 9 and Java 10\u003c/a\u003e. The issue is fixed in \u003ca href\u003d\"https://github.com/google/guava/releases/tag/v33.7.1\"\u003eversion 33.7.1\u003c/a\u003e. Sorry for the trouble.\u003c/p\u003e\n\u003ch3\u003eMaven\u003c/h3\u003e\n\u003cpre lang\u003d\"xml\"\u003e\u003ccode\u003e\u0026lt;dependency\u0026gt;\n  \u0026lt;groupId\u0026gt;com.google.guava\u0026lt;/groupId\u0026gt;\n  \u0026lt;artifactId\u0026gt;guava\u0026lt;/artifactId\u0026gt;\n  \u0026lt;version\u0026gt;33.7.0-jre\u0026lt;/version\u0026gt;\n  \u0026lt;!-- or, for Android: --\u0026gt;\n\u0026lt;/tr\u0026gt;\u0026lt;/table\u0026gt;\n\u003c/code\u003e\u003c/pre\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href\u003d\"https://github.com/google/guava/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.google.protobuf:protobuf-java` from 4.35.1 to 4.36.0\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003eSee full diff in \u003ca href\u003d\"https://github.com/protocolbuffers/protobuf/commits\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.google.protobuf:protobuf-java-util` from 4.35.1 to 4.36.0\n\nUpdates `com.google.protobuf:protobuf-java-util` from 4.35.1 to 4.36.0\n\nUpdates `org.easymock:easymock` from 5.6.0 to 5.7.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/easymock/easymock/releases\"\u003eorg.easymock:easymock\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e5.7.0\u003c/h2\u003e\n\u003cp\u003eAdd Java 26 support where bytebuddy isn\u0027t using unsafe anymore.\u003c/p\u003e\n\u003ch2\u003eChange log\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd mock() methods without parameters using varargs reification (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/issues/933\"\u003e#933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMock creation fails with JDK 26 and ByteBuddy 1.18.10 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/issues/908\"\u003e#908\u003c/a\u003e)git log --oneline\u003c/li\u003e\n\u003cli\u003eUse new Maven central plugin\u003c/li\u003e\n\u003cli\u003eUse a github_token instead\u003c/li\u003e\n\u003cli\u003eAdd the missing REST calls to fully automated the release\u003c/li\u003e\n\u003cli\u003eMove to .mvn style version\u003c/li\u003e\n\u003cli\u003eUse assertThrows all over the place\u003c/li\u003e\n\u003cli\u003eOptimize imports and finish updating to JUnit 5\u003c/li\u003e\n\u003cli\u003eUpdate eclipse configuration\u003c/li\u003e\n\u003cli\u003eMove all to UTF-8 like it should already be\u003c/li\u003e\n\u003cli\u003eUse https for xsd\u003c/li\u003e\n\u003cli\u003eUpdate objenesis to 3.6\u003c/li\u003e\n\u003cli\u003eUpdate copyrights to 2026\u003c/li\u003e\n\u003cli\u003eRemove Hamcrest usage\u003c/li\u003e\n\u003cli\u003eAdd Maven cache\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 7.0.0 to 7.0.1 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/917\"\u003e#917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump actions/github-script from 8 to 9 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/887\"\u003e#887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump actions/setup-java from 5.6.0 to 5.7.0 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/918\"\u003e#918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump activesupport from 8.1.2 to 8.1.2.1 in /website (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/882\"\u003e#882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump addressable from 2.8.8 to 2.9.0 in /website (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/886\"\u003e#886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump ch.qos.logback:logback-classic from 1.3.14 to 1.6.3 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/930\"\u003e#930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump com.github.spotbugs:spotbugs from 4.8.6 to 4.10.3 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/921\"\u003e#921\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump com.github.spotbugs:spotbugs-maven-plugin from 4.8.6.6 to 4.10.3.0 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump com.mycila:license-maven-plugin from 4.6 to 5.1.1 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/919\"\u003e#919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump com.puppycrawl.tools:checkstyle from 13.9.0 to 13.11.0 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/931\"\u003e#931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump concurrent-ruby from 1.3.6 to 1.3.7 in /website (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/913\"\u003e#913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump faraday from 2.14.2 to 2.14.3 in /website (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/912\"\u003e#912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump json from 2.20.0 to 2.21.2 in /website (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/924\"\u003e#924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump junit.jupiter.version from 5.14.1 to 6.1.3 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/926\"\u003e#926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump net.bytebuddy:byte-buddy from 1.18.8 to 1.18.12 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/932\"\u003e#932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump nokogiri from 1.19.3 to 1.19.4 in /website (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/911\"\u003e#911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.apache.felix:maven-bundle-plugin from 5.1.9 to 6.1.0 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/929\"\u003e#929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-assembly-plugin from 3.7.1 to 3.8.0 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/832\"\u003e#832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-compiler-plugin from 3.14.1 to 3.15.0 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/863\"\u003e#863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-dependency-plugin from 3.10.0 to 3.11.0 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/899\"\u003e#899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-enforcer-plugin from 3.6.2 to 3.6.3 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/894\"\u003e#894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-jar-plugin from 3.4.2 to 3.5.0 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/833\"\u003e#833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-resources-plugin from 3.4.0 to 3.5.0 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/879\"\u003e#879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-shade-plugin from 3.6.1 to 3.6.2 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-source-plugin from 3.3.1 to 3.4.0 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/837\"\u003e#837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-surefire-plugin from 3.5.5 to 3.5.6 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/900\"\u003e#900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-toolchains-plugin from 3.2.0 to 3.3.0 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.surefire:surefire-testng from 3.5.5 to 3.5.6 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/897\"\u003e#897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.codehaus.mojo:animal-sniffer-maven-plugin from 1.26 to 1.27 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/852\"\u003e#852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.codehaus.mojo:exec-maven-plugin from 3.6.2 to 3.6.3 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/844\"\u003e#844\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/easymock/easymock/blob/master/ReleaseNotes.md\"\u003eorg.easymock:easymock\u0027s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003cp\u003eAdd Java 26 support where bytebuddy isn\u0027t using unsafe anymore.\u003c/p\u003e\n\u003ch2\u003eChange log\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd mock() methods without parameters using varargs reification (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/issues/933\"\u003e#933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMock creation fails with JDK 26 and ByteBuddy 1.18.10 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/issues/908\"\u003e#908\u003c/a\u003e)git log --oneline\u003c/li\u003e\n\u003cli\u003eUse new Maven central plugin\u003c/li\u003e\n\u003cli\u003eUse a github_token instead\u003c/li\u003e\n\u003cli\u003eAdd the missing REST calls to fully automated the release\u003c/li\u003e\n\u003cli\u003eMove to .mvn style version\u003c/li\u003e\n\u003cli\u003eUse assertThrows all over the place\u003c/li\u003e\n\u003cli\u003eOptimize imports and finish updating to JUnit 5\u003c/li\u003e\n\u003cli\u003eUpdate eclipse configuration\u003c/li\u003e\n\u003cli\u003eMove all to UTF-8 like it should already be\u003c/li\u003e\n\u003cli\u003eUse https for xsd\u003c/li\u003e\n\u003cli\u003eUpdate objenesis to 3.6\u003c/li\u003e\n\u003cli\u003eUpdate copyrights to 2026\u003c/li\u003e\n\u003cli\u003eRemove Hamcrest usage\u003c/li\u003e\n\u003cli\u003eAdd Maven cache\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 7.0.0 to 7.0.1 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/917\"\u003e#917\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump actions/github-script from 8 to 9 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/887\"\u003e#887\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump actions/setup-java from 5.6.0 to 5.7.0 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/918\"\u003e#918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump activesupport from 8.1.2 to 8.1.2.1 in /website (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/882\"\u003e#882\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump addressable from 2.8.8 to 2.9.0 in /website (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/886\"\u003e#886\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump ch.qos.logback:logback-classic from 1.3.14 to 1.6.3 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/930\"\u003e#930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump com.github.spotbugs:spotbugs from 4.8.6 to 4.10.3 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/921\"\u003e#921\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump com.github.spotbugs:spotbugs-maven-plugin from 4.8.6.6 to 4.10.3.0 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/922\"\u003e#922\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump com.mycila:license-maven-plugin from 4.6 to 5.1.1 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/919\"\u003e#919\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump com.puppycrawl.tools:checkstyle from 13.9.0 to 13.11.0 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/931\"\u003e#931\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump concurrent-ruby from 1.3.6 to 1.3.7 in /website (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/913\"\u003e#913\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump faraday from 2.14.2 to 2.14.3 in /website (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/912\"\u003e#912\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump json from 2.20.0 to 2.21.2 in /website (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/924\"\u003e#924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump junit.jupiter.version from 5.14.1 to 6.1.3 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/926\"\u003e#926\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump net.bytebuddy:byte-buddy from 1.18.8 to 1.18.12 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/932\"\u003e#932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump nokogiri from 1.19.3 to 1.19.4 in /website (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/911\"\u003e#911\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.apache.felix:maven-bundle-plugin from 5.1.9 to 6.1.0 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/929\"\u003e#929\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-assembly-plugin from 3.7.1 to 3.8.0 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/832\"\u003e#832\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-compiler-plugin from 3.14.1 to 3.15.0 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/863\"\u003e#863\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-dependency-plugin from 3.10.0 to 3.11.0 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/899\"\u003e#899\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-enforcer-plugin from 3.6.2 to 3.6.3 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/894\"\u003e#894\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-jar-plugin from 3.4.2 to 3.5.0 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/833\"\u003e#833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-resources-plugin from 3.4.0 to 3.5.0 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/879\"\u003e#879\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-shade-plugin from 3.6.1 to 3.6.2 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/880\"\u003e#880\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-source-plugin from 3.3.1 to 3.4.0 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/837\"\u003e#837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-surefire-plugin from 3.5.5 to 3.5.6 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/900\"\u003e#900\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-toolchains-plugin from 3.2.0 to 3.3.0 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/928\"\u003e#928\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.surefire:surefire-testng from 3.5.5 to 3.5.6 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/897\"\u003e#897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.codehaus.mojo:animal-sniffer-maven-plugin from 1.26 to 1.27 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/852\"\u003e#852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.codehaus.mojo:exec-maven-plugin from 3.6.2 to 3.6.3 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/844\"\u003e#844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump org.codehaus.mojo:jdepend-maven-plugin from 2.1 to 2.2.0 (\u003ca href\u003d\"https://redirect.github.com/easymock/easymock/pull/855\"\u003e#855\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/easymock/easymock/commit/a8422b97046b58a1671ebd4493729db070281645\"\u003e\u003ccode\u003ea8422b9\u003c/code\u003e\u003c/a\u003e Move to version 5.7.0\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/easymock/easymock/commit/c0ffdcc99d2b29cd127a1e553aaac1e0e3804066\"\u003e\u003ccode\u003ec0ffdcc\u003c/code\u003e\u003c/a\u003e Flatten for oss\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/easymock/easymock/commit/dc07999c696465eee8b5f04315f3a9adcfeadb17\"\u003e\u003ccode\u003edc07999\u003c/code\u003e\u003c/a\u003e Add missing headers\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/easymock/easymock/commit/6047a3c60be00801eeb3887d45c6b286eaf4f10b\"\u003e\u003ccode\u003e6047a3c\u003c/code\u003e\u003c/a\u003e Class can be static\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/easymock/easymock/commit/e208b61da22d603562342a80945bbf6a361d6c15\"\u003e\u003ccode\u003ee208b61\u003c/code\u003e\u003c/a\u003e Upgrade samples to JUnit 5 and reified calls\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/easymock/easymock/commit/f833ee7fbf2e4f4ea6a889c5bc66bfdfee8001f7\"\u003e\u003ccode\u003ef833ee7\u003c/code\u003e\u003c/a\u003e Add reified methods (close \u003ca href\u003d\"https://redirect.github.com/easymock/easymock/issues/933\"\u003e#933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/easymock/easymock/commit/ffaa64ba5001d6a2b02db5d82cb06398f75d6bb4\"\u003e\u003ccode\u003effaa64b\u003c/code\u003e\u003c/a\u003e Add flatten-maven-plugin\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/easymock/easymock/commit/02e038e95c77116bcb7136dec58133a1a5cf363a\"\u003e\u003ccode\u003e02e038e\u003c/code\u003e\u003c/a\u003e Bump com.puppycrawl.tools:checkstyle from 13.10.0 to 13.11.0\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/easymock/easymock/commit/dd4dcf8fc8acb6a1b5e5cc0c8652020ecc28da00\"\u003e\u003ccode\u003edd4dcf8\u003c/code\u003e\u003c/a\u003e Bump net.bytebuddy:byte-buddy from 1.18.11 to 1.18.12\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/easymock/easymock/commit/4d66c46c87de489f58a23562be1eb2ad5cae0702\"\u003e\u003ccode\u003e4d66c46\u003c/code\u003e\u003c/a\u003e CI has been github actions for years now\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/easymock/easymock/compare/easymock-5.6.0...easymock-5.7.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency\u0027s major version (unless you unignore this specific dependency\u0027s major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency\u0027s minor version (unless you unignore this specific dependency\u0027s minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\u003c/details\u003e\n\nFixes https://github.com/google/error-prone/pull/6076\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/google/error-prone/pull/6076 from google:dependabot/maven/dependencies-52691bf543 a5968d50b6f88fe025cbd2e53804f4f38b509379\nPiperOrigin-RevId: 973715985\n"
    },
    {
      "commit": "19a7ad6cf11aac19783efc89fc94dbddc0482ec0",
      "tree": "50fce7bdb62e079bb0f5b08d36a39c4181ae9e64",
      "parents": [
        "cd290682cf09fc3b8068dc1d879d719b1d4f48af"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Fri Aug 28 19:14:22 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Aug 28 19:15:49 2026"
      },
      "message": "Refer to `java.net.http.HttpClient` by name in `WellKnownMutability`\n\nPiperOrigin-RevId: 972722491\n"
    },
    {
      "commit": "cd290682cf09fc3b8068dc1d879d719b1d4f48af",
      "tree": "1ba929a7fdc9344974c51f10516fc1bae42a95e8",
      "parents": [
        "85479ad96312bee825a8c1118d4bd71604c3b62f"
      ],
      "author": {
        "name": "Chaoren Lin",
        "email": "aoe@google.com",
        "time": "Fri Aug 28 14:52:34 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Aug 28 14:53:41 2026"
      },
      "message": "Document `Channel` thread-safety semantics in `WellKnownThreadSafety`.\n\nPiperOrigin-RevId: 972589112\n"
    },
    {
      "commit": "85479ad96312bee825a8c1118d4bd71604c3b62f",
      "tree": "e47247ab83c595e6916f6c8bd1411d467a918812",
      "parents": [
        "346971ba5a14646de81bae2d053758af7f6f5645"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Thu Aug 27 20:37:01 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Aug 27 20:38:37 2026"
      },
      "message": "Don\u0027t assume that there\u0027s exactly a semicolon and a newline after the package name.\n\nAnd, as part of testing that, make our tests stop appending a newline to the given file content. (More on that later.)\n\nIn the depot, there are a number of `package-info` files that have _no_ newline at the end. (I saw a bunch when running AddNullMarkedToPackageInfoTest over the depot as part of a test of unknown commit.) This causes fix application to fail.\n\n(It might be nice to fail immediately when the bad fix is generated, as in unknown commit. But I worry a bit about the performance of that particular implementation, and I\u0027m not even sure whether it\u0027s the right place for the specific Error Prone integration I was using. Given that, I\u0027m not planning to push on it now.)\n\nAs for no longer appending a newline in tests:\n\nMost tests nowadays already have a trailing newline (especially after https://github.com/google/error-prone/commit/5902c721a61cd73fe588f88b4a7c6d30b9bd4503), since text blocks have one unless the final line ends with a backslash. In such a case, we actively don\u0027t want to add an additional newline. Similarly, in the new test in this CL, we actively don\u0027t want to add the \"missing\" newline because it would unmake the scenario that we want to test.\n\nThis CL does mean that [we also stop appending a newline to expected _outputs_](https://github.com/google/error-prone/blob/3cf3c69711690b15acf8f720c85e3f50e45c0bdf/test_helpers/src/main/java/com/google/errorprone/BugCheckerRefactoringTestHelper.java#L472). I worried that that might have caused trouble in `TEXT_MATCH`-mode tests, especially after that mode became the default in https://github.com/google/error-prone/commit/ccfc176eb738a46e15e29a296d41f169101112fa. However, it should be safe because we\u0027ve long formatted the expected and actual outputs: unknown commit.\n\nPiperOrigin-RevId: 972130097\n"
    },
    {
      "commit": "346971ba5a14646de81bae2d053758af7f6f5645",
      "tree": "b87ba0efc60fad04c391971469f0c32a226ec8fa",
      "parents": [
        "39a506a0b960b47a611d4cfc584b6d85edaa7546"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Thu Aug 27 16:48:56 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Aug 27 16:50:11 2026"
      },
      "message": "Expand more on the dangers of cycles involving `private` classes.\n\nThis is prompted by https://github.com/google/guava/issues/8617 / https://github.com/google/guava/pull/8634.\n\nPiperOrigin-RevId: 972006555\n"
    },
    {
      "commit": "39a506a0b960b47a611d4cfc584b6d85edaa7546",
      "tree": "8b2eef786222c65c8290fdd68537bc63ca50e7c0",
      "parents": [
        "84c1dbfb38dc1d91f2b92296609fe6026489b990"
      ],
      "author": {
        "name": "Chaoren Lin",
        "email": "aoe@google.com",
        "time": "Thu Aug 27 15:51:05 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Aug 27 15:52:54 2026"
      },
      "message": "Add standard Kotlin and kotlinx types to WellKnownMutability and WellKnownThreadSafety.\n\nAdditionally, register `java.lang.Enum` as unconditionally immutable without regard to its self-referential type parameter `E`.\n\nPiperOrigin-RevId: 971978681\n"
    },
    {
      "commit": "84c1dbfb38dc1d91f2b92296609fe6026489b990",
      "tree": "be61dc0a0298c1663281e91d1d6c6d722f74c314",
      "parents": [
        "4256277c3b75de82af4b523296131132950f3e79"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Wed Aug 26 18:45:14 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Aug 26 18:46:45 2026"
      },
      "message": "Disable UnnamedVariable check for Android-compatible code.\n\nThis change temporarily disables the `UnnamedVariable` bug pattern when compiling Android-compatible code, as some Android toolchains do not yet support the unnamed variable syntax.\n\nPiperOrigin-RevId: 971410428\n"
    },
    {
      "commit": "4256277c3b75de82af4b523296131132950f3e79",
      "tree": "22b1c8e762dfbb74d97c7c97f94e812aa96a76fb",
      "parents": [
        "83f6be3f696eb180382f74ef82f452dbb17f2c90"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Wed Aug 26 17:58:50 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Aug 26 18:00:50 2026"
      },
      "message": "Extend MustBeClosedChecker to cover `Arena.ofConfined` and `ofShared`.\n\nThose are [the two kinds of explicitly closeable arenas](https://docs.oracle.com/en/java/javase/26/docs/api/java.base/java/lang/foreign/Arena.html#:~:text\u003dExplicitly%20closeable).\n\nPiperOrigin-RevId: 971380996\n"
    },
    {
      "commit": "83f6be3f696eb180382f74ef82f452dbb17f2c90",
      "tree": "7ccca424f173345d983d5a796b1b57251c2bf7c6",
      "parents": [
        "19ed7cac775bba1131c3d26e3cd587dad802f9b9"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Wed Aug 26 13:15:31 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Aug 26 13:17:23 2026"
      },
      "message": "Be less lenient of unexpected types and nulls.\n\nThis CL rejects:\n\n- `getType` calls that pass a non-null, non-`JCTree` value.\n- `ClassTree` arguments that somehow have a null type.\n- `AnnotationTree` arguments that somehow have a null symbol.\n- null arguments to `getAnnotationName`.\n\nAs best I can see from my testing, none of those come up in practice. I predict that the one we\u0027re most likely to see is a null argument to `getAnnotationName`, even though we didn\u0027t have a `@Nullable` on the parameter there.\n\n(I have not looked into whether `((JCTree) tree).type` can be null, but I think I remember that it can for cases like the \"`com`\" in \"`com.google.foo.Bar`.\")\n\nPiperOrigin-RevId: 971235996\n"
    },
    {
      "commit": "19ed7cac775bba1131c3d26e3cd587dad802f9b9",
      "tree": "6fc1360d45d6902a8649ff93b665e487dbce8ed0",
      "parents": [
        "3cf3c69711690b15acf8f720c85e3f50e45c0bdf"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Tue Aug 25 22:17:10 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Aug 25 22:18:36 2026"
      },
      "message": "Handle negation in ObjectEqualsForPrimitives.\n\nWhen converting `!Objects.equals(a, b)` to use primitive equality, rewriting only the method call leaves an awkward `!(a \u003d\u003d b)`. Inspect parent AST nodes across enclosing parentheses to detect logical negation (`!`) and replace the whole expression with `(a !\u003d b)`.\n\nPiperOrigin-RevId: 970828962\n"
    },
    {
      "commit": "3cf3c69711690b15acf8f720c85e3f50e45c0bdf",
      "tree": "5e35574c966a19e53405c9e7fb04acf0211bfd90",
      "parents": [
        "a0a382cdb96169e95aed289b21b9af3010bbb51a"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Aug 24 22:55:50 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Aug 24 22:57:59 2026"
      },
      "message": "Flag non-relational operations and unary negation on compareTo results in `CompareToZero`.\n\nThe `CompareToZero` bug pattern previously only flagged addition, subtraction, and specific comparisons on `compareTo` results. This change updates the check to flag all non-relational binary operations (including arithmetic, string concatenation, and bitwise operations) as well as unary negation (`-x.compareTo(y)`).\n\nSpecific diagnostic messages are added for arithmetic operations (clarifying `{-1, 0, +1}` range assumptions and overflow risks), unary negation, and general non-relational operations, recommending `Integer.signum`.\n\nThe check is temporarily disabled via Error Prone flags until depot violations are cleaned up.\n\nPiperOrigin-RevId: 970134346\n"
    },
    {
      "commit": "a0a382cdb96169e95aed289b21b9af3010bbb51a",
      "tree": "b67a7f819aafc6f2ab9e26176a73ef6e86c1617e",
      "parents": [
        "f7dabfa2f2914e0c720b1929119690df736c6514"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Aug 24 00:14:09 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Aug 24 00:16:06 2026"
      },
      "message": "Upgrade `CompareToZero` from a `WARNING` to an `ERROR`.\n\nPiperOrigin-RevId: 969535474\n"
    },
    {
      "commit": "f7dabfa2f2914e0c720b1929119690df736c6514",
      "tree": "fe6758ed722d8712b09d30eade25e0180b18d687",
      "parents": [
        "984f6adb6ab11291d6fc200b18726c35937b0ccb"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Sun Aug 23 14:11:17 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sun Aug 23 14:12:22 2026"
      },
      "message": "Include `GeneratedMessageLite.ExtendableMessage` in `ImpossibleNullComparison` flag guard\n\nPiperOrigin-RevId: 969381879\n"
    },
    {
      "commit": "984f6adb6ab11291d6fc200b18726c35937b0ccb",
      "tree": "5018f3212c7a1ad5825e3fb89d78f84e7c49e5e8",
      "parents": [
        "674e2c86451e9b453d2213fd885228206ebc663f"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Sat Aug 22 17:34:12 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sat Aug 22 17:35:08 2026"
      },
      "message": "Ensure `ProtobufMatchers.IS_ONEOF_ENUM` only matches enum types\n\nPiperOrigin-RevId: 969054816\n"
    },
    {
      "commit": "674e2c86451e9b453d2213fd885228206ebc663f",
      "tree": "0ccbfd00b53de509b3b0940cad34486c45286cab",
      "parents": [
        "253ac4d08517891191be5226a817cac8b1065362"
      ],
      "author": {
        "name": "Rick Ossendrijver",
        "email": "rick.ossendrijver@gmail.com",
        "time": "Fri Aug 21 17:18:28 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Aug 21 17:19:30 2026"
      },
      "message": "Fix a Refaster crash on `module-info.java` files.\n\n`UMemberSelect#visitIdentifier` unconditionally dereferences `sym.owner`, but module symbols have no owner: `Symbol.ModuleSymbol#create` always passes `null`. Any Refaster rule whose `@BeforeTemplate` is rooted at an instance member select then crashes the compiler as soon as it scans a `requires` directive whose module name is a single identifier.\n\nModule names that contain a dot are parsed as member selects instead, and `#visitMemberSelect` is already null-safe; as every JDK module name contains a dot, this has so far gone unnoticed.\n\nReported at https://github.com/PicnicSupermarket/error-prone-support/issues/2316.\nFixes https://github.com/google/error-prone/pull/6055\n\nPiperOrigin-RevId: 968565585\n"
    },
    {
      "commit": "253ac4d08517891191be5226a817cac8b1065362",
      "tree": "70b1760d0c43b2acfa16c38a2c80a29e8e1cbb0d",
      "parents": [
        "574fa904edefb1fc43200d235496617e04928bd7"
      ],
      "author": {
        "name": "Rick Ossendrijver",
        "email": "rick.ossendrijver@gmail.com",
        "time": "Fri Aug 21 16:07:02 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Aug 21 16:08:13 2026"
      },
      "message": "Add a[] for Refaster crash on `module-info.java` files.\n\n`UMemberSelect#visitIdentifier` unconditionally dereferences `sym.owner`, but module symbols have no owner (`Symbol.ModuleSymbol#create` always passes `null`). Any Refaster rule whose `@BeforeTemplate` is rooted at an instance member select crashes the compiler with a `NullPointerException` when scanning a `requires` directive whose module name is a single identifier.\n\nPer[] add a unit test in `UMemberSelectTest` reproducing the `NullPointerException` with a TODO breadcrumb prior to landing the fix in unknown commit.\n\nReported at https://github.com/PicnicSupermarket/error-prone-support/issues/2316.\nProgress toward https://github.com/google/error-prone/pull/6055\n\nPiperOrigin-RevId: 968530188\n"
    },
    {
      "commit": "574fa904edefb1fc43200d235496617e04928bd7",
      "tree": "50cf59e382bc70ab6dbcaef52df77a3d149ded87",
      "parents": [
        "372f5551a27102bc965b856a26cccb2495f353dc"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Fri Aug 21 15:29:41 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Aug 21 15:30:43 2026"
      },
      "message": "Make `RefasterRule.simpleTemplateName()` an eager property and optimize `fromSecondLevel()`\n\nPiperOrigin-RevId: 968513744\n"
    },
    {
      "commit": "372f5551a27102bc965b856a26cccb2495f353dc",
      "tree": "b7e48de5e918f8c4059676561ecd222c41fa468a",
      "parents": [
        "90099f92c7b03fcbee0c8013977e875ab0e354b5"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Thu Aug 20 20:42:47 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Aug 20 20:43:56 2026"
      },
      "message": "Give placeholder-replacement trees a type *before* checking for matches.\n\nThis allows matchers to query that type directly, rather than having to pull it from the `TreePath` instead.\n\nThis came up when I looked to use the matchers proposed in unknown commit in some more locations in unknown commit.\n\nPiperOrigin-RevId: 968029100\n"
    },
    {
      "commit": "90099f92c7b03fcbee0c8013977e875ab0e354b5",
      "tree": "3a203b257013a809b06c8688fc5e480ec99adff3",
      "parents": [
        "de2bc3b2330c53678ea94ac3677fef0d48de69e5"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Thu Aug 20 12:51:54 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Aug 20 12:52:43 2026"
      },
      "message": "Update summary of `UnnamedVariable`.\n\nPiperOrigin-RevId: 967768717\n"
    },
    {
      "commit": "de2bc3b2330c53678ea94ac3677fef0d48de69e5",
      "tree": "b1c45e4447af99c91b0055a1fcd0a6c24102033e",
      "parents": [
        "f2cf33d313252803ef6e9fff36e4f7c8a84820ee"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Thu Aug 20 12:30:07 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Aug 20 12:31:08 2026"
      },
      "message": "Add some[] for `ObjectEqualsForPrimitivesTest` and negations.\n\nPiperOrigin-RevId: 967760574\n"
    },
    {
      "commit": "f2cf33d313252803ef6e9fff36e4f7c8a84820ee",
      "tree": "396c914c5c4f2b7c62462a22c7b2b50c7fc28dc6",
      "parents": [
        "c504f5b71a8519a5a319ced53fc9a5d25738f7c2"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Aug 19 15:01:11 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Aug 19 15:02:12 2026"
      },
      "message": "Implement persistent linked node external chaining for Refaster `Bindings`\n\nPreviously, `Bindings` was backed with a `HashMap`. When `Unifier.fork()`\nbranched during backtracking, it created a new `Bindings` wrapper and copied\nall entries into a new `HashMap`.\n\nIn practice Bindings usually store a relatively small number of entries, and a\nforked often, so walking a short linked list for lookups should be cheaper than\ncopying the maps.\n\nPiperOrigin-RevId: 967212321\n"
    },
    {
      "commit": "c504f5b71a8519a5a319ced53fc9a5d25738f7c2",
      "tree": "872e9279102391322755b86a3ed5c847e86427e0",
      "parents": [
        "a645fc177641fc287f11b39de1590b3ef2a74e00"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Aug 19 12:56:29 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Aug 19 12:57:32 2026"
      },
      "message": "Add ASTHelpers.extractTypeArgAsMemberOfSupertype and deduplicate existing definitions\n\nAdds `ASTHelpers.extractTypeArgAsMemberOfSupertype` to extract a type argument from a supertype of a given type, handling wildcard capture and raw types defensively.\n\nUpdates existing definitions and callers across Error Prone to use the shared helper.\n\nPiperOrigin-RevId: 967163520\n"
    },
    {
      "commit": "a645fc177641fc287f11b39de1590b3ef2a74e00",
      "tree": "c01ebaf20ec884557020d21dc4362c09f7f9d7f7",
      "parents": [
        "5839e6e6f1bab9b5cf46288edc5bec6b1b56bf9e"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Aug 19 08:22:33 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Aug 19 08:23:28 2026"
      },
      "message": "Tune HashMap initial sizing in Refaster Bindings\n\nIn Refaster unification, `Bindings` instances typically store only 1 to 3 entries.\n\nThis change initializes `HashMap` with an expected capacity of 4 (and 2 for single-binding instances) rather than the default 16, eliminating unnecessary bucket array allocations and rehash operations during unifier branching.\n\nPiperOrigin-RevId: 967053777\n"
    },
    {
      "commit": "5839e6e6f1bab9b5cf46288edc5bec6b1b56bf9e",
      "tree": "0632f46649169c05a0ab8a9dbc48a362a20ba407",
      "parents": [
        "f1d2b3008d5a1e01142eee95a07de74db961d8e9"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Tue Aug 18 23:35:00 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Aug 18 23:36:20 2026"
      },
      "message": "Implement ErrorProne check `HashCodeInObjectsHash`.\n\nThis check detects redundant calls to `hashCode()` (instance or primitive wrapper)\nor `Objects.hash()` / `Objects.hashCode()` inside `Objects.hash(...)`, and simplifies single-argument `Objects.hash(foo)` calls to `Objects.hashCode(foo)`.\n\nExemptions:\n- `super.hashCode()` and qualified `Enclosing.super.hashCode()`\n- `Arrays.hashCode(...)` and `Arrays.deepHashCode(...)`\n- `System.identityHashCode(...)`\nPiperOrigin-RevId: 966870958\n"
    },
    {
      "commit": "f1d2b3008d5a1e01142eee95a07de74db961d8e9",
      "tree": "1a9c3ddfa11f137457a76fc1607bdc65733f18cb",
      "parents": [
        "dc89088e92a009c6ec8d1ef0d320eb2cae2c6bd6"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Aug 18 21:06:18 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Aug 18 21:08:08 2026"
      },
      "message": "Memoize Bindings.Key on UFreeIdent and ULocalVarIdent with @Memoized\n\nPreviously, `UFreeIdent.key()` and `ULocalVarIdent.key()` instantiated a new `Key` object on every AST lookup/match across all Refaster rules.\n\nThis change caches the `Key` instance via AutoValue\u0027s `@Memoized` on the immutable template nodes, eliminating per-lookup allocations.\n\nPiperOrigin-RevId: 966795982\n"
    },
    {
      "commit": "dc89088e92a009c6ec8d1ef0d320eb2cae2c6bd6",
      "tree": "87eb5e9ae2ef457521dd88f596c108cb1353e8bc",
      "parents": [
        "1ce625104bbecbfef38f8080a06dff6883574dca"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Aug 18 20:19:11 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Aug 18 20:20:44 2026"
      },
      "message": "Consolidate Protobuf Matchers and Constants into `ProtobufMatchers`\n\nConsolidates references to protobuf classes, type suppliers, predicates,\nand AST method matchers across Error Prone checkers into `ProtobufMatchers`.\n\nAdds flag-guarding options for error-severity checks where check precision was broadened, and disables them pending cleanup:\n- `-XepOpt:SizeGreaterThanOrEqualsZero:CheckLiteProtos\u003dfalse`: Controls checking repeated field count methods on Lite Protos (previously only matched `com.google.protobuf.GeneratedMessage`).\n- `-XepOpt:ProtoStringFieldReferenceEquality:CheckOrBuilder\u003dfalse`: Controls checking string field reference equality on `MessageLiteOrBuilder` / `MessageOrBuilder` interfaces (previously only matched concrete message classes).\n- `-XepOpt:ImpossibleNullComparison:CheckOrBuilder\u003dfalse`: Controls checking impossible null comparisons on `MessageLiteOrBuilder` / `MessageOrBuilder` interfaces (previously only matched concrete message classes).\n\nPiperOrigin-RevId: 966768699\n"
    },
    {
      "commit": "1ce625104bbecbfef38f8080a06dff6883574dca",
      "tree": "74bc1e8b3701239e2b1a91c235d30eb618ef7cbc",
      "parents": [
        "192f2e3628d0fd0c21b9fe2b1f1ee97420fdfab8"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Tue Aug 18 16:44:56 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Aug 18 16:46:07 2026"
      },
      "message": "Convert some `switch` statements into `switch` expressions.\n\nPiperOrigin-RevId: 966646657\n"
    },
    {
      "commit": "192f2e3628d0fd0c21b9fe2b1f1ee97420fdfab8",
      "tree": "8c8567ad92788243f3d54294ead28010fc05c09b",
      "parents": [
        "b41e2ba8565492799bb1aeb3615f0711b2b619df"
      ],
      "author": {
        "name": "Éamonn McManus",
        "email": "emcmanus@google.com",
        "time": "Tue Aug 18 14:46:41 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Aug 18 14:47:45 2026"
      },
      "message": "Remove a confusing phrase from the `UnnecessaryDefaultInEnumSwitch` documentation.\n\nIt is not clear what \"with a break\" is supposed to mean here. In a colon-style `switch`, you\u0027ll add a `break` to the new `UNRECOGNIZED` case in the same circumstances as for any other new case, namely when it is not the last case and does not share logic with another case. In an arrow-style `switch`, you usually won\u0027t add a `break` at all.\n\nIncidentally this documentation should probably be rewritten somewhat to take arrow-style switches and especially expression switches into account.\n\nPiperOrigin-RevId: 966589687\n"
    },
    {
      "commit": "b41e2ba8565492799bb1aeb3615f0711b2b619df",
      "tree": "c20008a2f32c637a9d444450ed91621e320b0884",
      "parents": [
        "609e3e41bab26293d95ecc0786212574aeda4844"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Aug 17 20:44:19 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Aug 17 20:45:36 2026"
      },
      "message": "Support type parameter substitution at call-sites during inlining.\n\nWhen inlining generic methods whose `@InlineMe` replacement contains type variables\n(e.g., `Client.\u003cT\u003eafter()`, `new ArrayList\u003cV\u003e()`, `(T) obj`, `this.\u003cT\u003eafter()`),\nInliner now maps method type parameter names to the explicit type arguments\npassed at the call-site and substitutes them into the replacement expression.\n\nWhen explicit type arguments are omitted at the call-site:\n- In method invocations (e.g. `Client.\u003cV\u003eafter()`), unsubstituted type arguments\n  are stripped to allow standard compiler type inference (`Client.after()`).\n- In constructor invocations (e.g. `new ArrayList\u003cV\u003e()`), unsubstituted type\n  arguments are converted to diamond syntax (`new ArrayList\u003c\u003e()`).\n- In casts (e.g. `(T) obj`), unresolvable type variable casts are stripped\n  (`obj`), allowing compiler type inference when the cast is unnecessary.\n\nPiperOrigin-RevId: 966158769\n"
    },
    {
      "commit": "609e3e41bab26293d95ecc0786212574aeda4844",
      "tree": "a92c829ee6a703dbabcb5021f1cf060e99832620",
      "parents": [
        "3276c0e7faf4acb769cae67bad9cc20b7e38b778"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Sun Aug 16 18:14:37 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sun Aug 16 18:15:21 2026"
      },
      "message": "Update `ReturnsNullCollection` and `ProvidesNull` to use `NullnessUtils.hasDefinitelyNullBranch()` instead of looking only for `null` literals, allowing them to flag conditional null expressions (e.g., `return foo ? bar : null`). Also make `NullnessUtils` and `hasDefinitelyNullBranch` public to support these checks.\n\nUpdate terrible tests to expect diagnostics now that conditional null returns are flagged.\n\nPiperOrigin-RevId: 965584501\n"
    },
    {
      "commit": "3276c0e7faf4acb769cae67bad9cc20b7e38b778",
      "tree": "dbffd817b278a2fb5e3f0dde33bc6332af619521",
      "parents": [
        "8556f5eae3e85a292babf3dfb7121a14173655cf"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sun Aug 16 16:03:52 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sun Aug 16 16:05:11 2026"
      },
      "message": "Bump org.checkerframework:checker-qual from 4.2.1 to 4.2.2 in the dependencies group\n\nBumps the dependencies group with 1 update: [org.checkerframework:checker-qual](https://github.com/typetools/checker-framework).\n\nUpdates `org.checkerframework:checker-qual` from 4.2.1 to 4.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/typetools/checker-framework/releases\"\u003eorg.checkerframework:checker-qual\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChecker Framework 4.2.2\u003c/h2\u003e\n\u003ch2\u003eVersion 4.2.2 (2026-08-06)\u003c/h2\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eRenamed \u003ccode\u003eCFAbstractValue.validateSet()\u003c/code\u003e to \u003ccode\u003ehasAnnotationFromEveryHierarchy()\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7723\"\u003e#7723\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7784\"\u003e#7784\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7806\"\u003e#7806\u003c/a\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/typetools/checker-framework/blob/master/docs/CHANGELOG.md\"\u003eorg.checkerframework:checker-qual\u0027s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 4.2.2 (2026-08-06)\u003c/h2\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eRenamed \u003ccode\u003eCFAbstractValue.validateSet()\u003c/code\u003e to \u003ccode\u003ehasAnnotationFromEveryHierarchy()\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7723\"\u003e#7723\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7784\"\u003e#7784\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7806\"\u003e#7806\u003c/a\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/2dc79eef5a9d2cd18fdbf79550e454c1d7c044f8\"\u003e\u003ccode\u003e2dc79ee\u003c/code\u003e\u003c/a\u003e new release 4.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/c038044ee33ad159f769068d43aaaa933983897e\"\u003e\u003ccode\u003ec038044\u003c/code\u003e\u003c/a\u003e Use the Gradle Nexus publish plugin.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/51d31cad10d00c8ae069ac32416165c1a1b4a824\"\u003e\u003ccode\u003e51d31ca\u003c/code\u003e\u003c/a\u003e Update release date.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/765fe18026bac9cfa15a0199a8dfae52ef212b72\"\u003e\u003ccode\u003e765fe18\u003c/code\u003e\u003c/a\u003e Define \u003ccode\u003eequals()\u003c/code\u003e and \u003ccode\u003ehashCode()\u003c/code\u003e (\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7892\"\u003e#7892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/214e1a72f091d34f6cd42877380ff84ecb5ec520\"\u003e\u003ccode\u003e214e1a7\u003c/code\u003e\u003c/a\u003e Don\u0027t use snapshot versions of libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/83a2be97ae8694c658b0655a5cb1ae3f57e22e0a\"\u003e\u003ccode\u003e83a2be9\u003c/code\u003e\u003c/a\u003e Gradle improvements\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/6342795a2d5c5f4a7030ca064ec21f7f0a6016fb\"\u003e\u003ccode\u003e6342795\u003c/code\u003e\u003c/a\u003e Use object equality, not reference equality (\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7891\"\u003e#7891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/53ae35709d313c5a8ad5986026057eb9d17ab880\"\u003e\u003ccode\u003e53ae357\u003c/code\u003e\u003c/a\u003e Document side effect (\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7897\"\u003e#7897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/b7f5e73bff79e340e580201b7d748f7e8ec4a071\"\u003e\u003ccode\u003eb7f5e73\u003c/code\u003e\u003c/a\u003e Address alignment between declared and substituted type (\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7885\"\u003e#7885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/45a6235aa06c5d70bf02ca480260352994208773\"\u003e\u003ccode\u003e45a6235\u003c/code\u003e\u003c/a\u003e The three alternatives of 18.5.2.1 are not mutually exclusive (\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7883\"\u003e#7883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/typetools/checker-framework/compare/checker-framework-4.2.1...checker-framework-4.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dorg.checkerframework:checker-qual\u0026package-manager\u003dmaven\u0026previous-version\u003d4.2.1\u0026new-version\u003d4.2.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency\u0027s major version (unless you unignore this specific dependency\u0027s major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency\u0027s minor version (unless you unignore this specific dependency\u0027s minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\u003c/details\u003e\n\nFixes https://github.com/google/error-prone/pull/6036\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/google/error-prone/pull/6036 from google:dependabot/maven/dependencies-eaaac9437e 3798936b0c2427ff812d291ee4204153a9e36164\nPiperOrigin-RevId: 965554511\n"
    },
    {
      "commit": "8556f5eae3e85a292babf3dfb7121a14173655cf",
      "tree": "51c1a203a6daa662fc68b5bf6c76709fdb5c15b4",
      "parents": [
        "83bf637060281b4aaad66f7c1bc155906c3b989f"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Fri Aug 14 13:34:27 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Aug 14 13:35:17 2026"
      },
      "message": "Consolidate boxed and primitive type helpers in `ASTHelpers`\n\nAdd helpers to `ASTHelpers` for inspecting, unboxing, and boxing primitive wrapper types:\n- `isBoxedPrimitiveType(Type, VisitorState)` / `isBoxedPrimitiveType(Tree, VisitorState)`\n- `unboxedType(Type, VisitorState)`\n- `unboxedTypeOrType(Type, VisitorState)`\n- `boxedType(Type, VisitorState)`\n- `boxedTypeOrType(Type, VisitorState)`\n- `boxedClass(Type, VisitorState)`\n\nUpdate `Matchers.isBoxedPrimitiveType()` and `Matchers.isPrimitiveOrBoxedPrimitiveType()` to delegate to `ASTHelpers`.\nMigrate existing bug patterns (`IdentityHashMapBoxing`, `AutoValueBoxedValues`, `BoxedPrimitiveConstructor`, `BoxedPrimitiveEquality`, `IfChainToSwitch`, `ObjectsHashCodePrimitive`, `PrimitiveAtomicReference`, `UnnecessaryBoxedAssignment`, `UnnecessaryBoxedVariable`) to use the consolidated helpers.\n\nFixes https://github.com/google/error-prone/issues/6029\n\nPiperOrigin-RevId: 964669227\n"
    },
    {
      "commit": "83bf637060281b4aaad66f7c1bc155906c3b989f",
      "tree": "601188afcbf92c89f2e847d1dc19efeecd13b939",
      "parents": [
        "49ffa66c0a09fdbcb9fa04b991a8f53dc6d4e479"
      ],
      "author": {
        "name": "jihoon",
        "email": "git4ub0@gmail.com",
        "time": "Fri Aug 14 13:29:37 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Aug 14 13:30:25 2026"
      },
      "message": "Add chrono types to ValueClassIdentity fallback\n\n## Summary\n\n- Add `HijrahDate`, `JapaneseDate`, `MinguoDate`, and `ThaiBuddhistDate` to the explicit `ValueClassIdentity` fallback list.\n- Add regression coverage using `--release 15` so the test exercises the fallback path without relying on `@jdk.internal.ValueBased` metadata.\n\n## Test\n\n- `mvn -pl core test \"-Dtest\u003dValueClassIdentityTest\"`\n\nRelated to #6029\n\nFixes https://github.com/google/error-prone/pull/6031\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/google/error-prone/pull/6031 from jihxonx:fix/value-class-identity-chrono 8026c45de6a7c8951ea94d105e46c30e87011e9a\nPiperOrigin-RevId: 964667686\n"
    },
    {
      "commit": "49ffa66c0a09fdbcb9fa04b991a8f53dc6d4e479",
      "tree": "6e05bed93d3b0fc02e7f01022f576cce024dd409",
      "parents": [
        "b2e71f3ce59a330d310ae95f3528f8fd59fd3981"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Fri Aug 14 06:52:06 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Aug 14 06:52:50 2026"
      },
      "message": "Check to discourage relying on identity semantics of JEP 401 value objects\n\nPiperOrigin-RevId: 964519883\n"
    },
    {
      "commit": "b2e71f3ce59a330d310ae95f3528f8fd59fd3981",
      "tree": "624faeb7b4938b5bf98921ca6b48165a8c1d294b",
      "parents": [
        "bcc3cb02bd88f08356a34adbdb044174b9859c54"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Thu Aug 13 21:38:42 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Aug 13 21:39:52 2026"
      },
      "message": "Add repro tests for type parameter inlining with casts, instance methods, and multiple type parameters.\n\nDemonstrates that type arguments at the call-site are currently not substituted\ninto type variables in the `@InlineMe` replacement string for type casts,\ninstance method calls, and constructor invocations with multiple type parameters.\n\nPiperOrigin-RevId: 964300823\n"
    },
    {
      "commit": "bcc3cb02bd88f08356a34adbdb044174b9859c54",
      "tree": "8346cd4432022967c8c5eb12fdaa21cde6c49b08",
      "parents": [
        "121e024176e53594707c41b8dc751358bfeaac50"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Thu Aug 13 20:57:25 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Aug 13 20:58:10 2026"
      },
      "message": "Qualify static field references when generating `@InlineMe` annotations.\n\nPreviously, `ImportAndQualificationFinder` skipped identifiers whose parent node\nwas a `MemberSelectTree`. When an unqualified static field was the receiver of a\nmember selection (such as `STR.length()` or `MAGIC.get()`), this check caused\n`InlineMe` to leave the field reference unqualified and omit the required class\nimport.\n\nWe now handle `ClassSymbol` explicitly and ensure static fields on the enclosing\nclass are correctly qualified with the class name and the class is added to\nimports.\n\nPiperOrigin-RevId: 964277465\n"
    },
    {
      "commit": "121e024176e53594707c41b8dc751358bfeaac50",
      "tree": "ae6a6df4ff9bda2566e27e7b0acc9646b3f883b4",
      "parents": [
        "438a123c412c25200f92225d389b3c5ad816f640"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Thu Aug 13 20:28:01 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Aug 13 20:29:48 2026"
      },
      "message": "Add some terrible tests for static fields in InlineMe.\n\nPiperOrigin-RevId: 964261274\n"
    },
    {
      "commit": "438a123c412c25200f92225d389b3c5ad816f640",
      "tree": "821d04bf633d74c2db24f2dc5c074f2e6f9ed13d",
      "parents": [
        "ad80c8b9f868085d129a667d9dff0e1f1033d652"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Wed Aug 12 18:47:48 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Aug 12 18:48:39 2026"
      },
      "message": "Document the need to use erased types for type variables, too.\n\nAnd remove the suggestion that Javadoc is likely to support generics in references in the future: [JDK-5096551](https://bugs.openjdk.org/browse/JDK-5096551) has been rejected (in addition to being over twenty years old).\n\n(In practice, `javadoc` is quite lenient about accepting [anything that looks like a syntactically valid Java class name](https://bugs.openjdk.org/browse/JDK-8279474). But InvalidLink and IntelliJ are at least sometimes not, and `javadoc` may change.\n\nPiperOrigin-RevId: 963575165\n"
    },
    {
      "commit": "ad80c8b9f868085d129a667d9dff0e1f1033d652",
      "tree": "3473b1e7c6e209b1ca7ddb72038231f0f8375e0b",
      "parents": [
        "d6419122899bd24fadb5f8fe087b3fcb4a2459c0"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Wed Aug 12 16:44:02 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Aug 12 16:45:36 2026"
      },
      "message": "Avoid flagging primitive var-args in `NonApiType` (e.g., `int...`).\n\nPiperOrigin-RevId: 963499629\n"
    },
    {
      "commit": "d6419122899bd24fadb5f8fe087b3fcb4a2459c0",
      "tree": "f2f69d484f22ef5b5e8b79d82cec1db2fa7bc5f1",
      "parents": [
        "c46493f1e48a2f3bb0070bb0ec5d17db0b7ae57a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Aug 12 16:35:47 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Aug 12 16:36:28 2026"
      },
      "message": "Bump com.google.googlejavaformat:google-java-format from 1.36.0 to 1.36.1 in the dependencies group across 1 directory\n\nBumps the dependencies group with 1 update in the / directory: [com.google.googlejavaformat:google-java-format](https://github.com/google/google-java-format).\n\nUpdates `com.google.googlejavaformat:google-java-format` from 1.36.0 to 1.36.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/google/google-java-format/releases\"\u003ecom.google.googlejavaformat:google-java-format\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.36.1\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue with formatting indented list items.\u003c/li\u003e\n\u003cli\u003eHandle blank lines before and within Markdown lists more accurately.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href\u003d\"https://github.com/google/google-java-format/compare/v1.36.0...v1.36.1\"\u003ehttps://github.com/google/google-java-format/compare/v1.36.0...v1.36.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/google-java-format/commit/a95a5290336acd179d42c6baf0557d590f5839d0\"\u003e\u003ccode\u003ea95a529\u003c/code\u003e\u003c/a\u003e Release google-java-format 1.36.1\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/google-java-format/commit/fce6509660391af6cb79a3b492ca74210c137151\"\u003e\u003ccode\u003efce6509\u003c/code\u003e\u003c/a\u003e Bump JSpecify to 1.0.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/google-java-format/commit/14e90399a09bfdb3f5bb6be027205adc785328c8\"\u003e\u003ccode\u003e14e9039\u003c/code\u003e\u003c/a\u003e Handle blank lines before and within Markdown lists more accurately.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/google-java-format/commit/7d9649fba7f3b2ab8916b2bec5afb339dd3963b0\"\u003e\u003ccode\u003e7d9649f\u003c/code\u003e\u003c/a\u003e Fix an issue with formatting indented list items.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href\u003d\"https://github.com/google/google-java-format/compare/v1.36.0...v1.36.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nFixes https://github.com/google/error-prone/pull/6004\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/google/error-prone/pull/6004 from google:dependabot/maven/dependencies-ae1c9126db 64257481c1c9256ff3ed00ecacf81a59bf46eaef\nPiperOrigin-RevId: 963495097\n"
    },
    {
      "commit": "c46493f1e48a2f3bb0070bb0ec5d17db0b7ae57a",
      "tree": "675cb3a5ca6331444180d65c1fd0e532f54cfc12",
      "parents": [
        "48f9483d9acf8c3a230f562ee26639572bb8517b"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Tue Aug 11 20:11:22 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Aug 11 20:12:08 2026"
      },
      "message": "Remove exclusion of `META-INF/versions/9/OSGI-INF/MANIFEST.MF`.\n\n[JSpecify 1.0.1](https://github.com/jspecify/jspecify/releases) removed that file from the JSpecify jar.\n\n(You can see the history of why the exclusion was added in https://github.com/google/error-prone/commit/2517f1b44b704f4e7e42f8178b21d461a391df44.)\n\nI do notice some other preexisting shading-related diagnostics, though they are only warnings:\n\n```\n[INFO] --- shade:3.6.2:shade (default) @ error_prone_refaster ---\n[WARNING] error_prone_core-1.0-HEAD-SNAPSHOT-with-dependencies.jar, error_prone_refaster-1.0-HEAD-SNAPSHOT.jar define 2 overlapping resources:\n[WARNING]   - META-INF/MANIFEST.MF\n[WARNING]   - META-INF/services/com.sun.source.util.Plugin\n[WARNING] maven-shade-plugin has detected that some files are\n[WARNING] present in two or more JARs. When this happens, only one\n[WARNING] single version of the file is copied to the uber jar.\n[WARNING] Usually this is not harmful and you can skip these warnings,\n[WARNING] otherwise try to manually exclude artifacts based on\n[WARNING] mvn dependency:tree -Ddetail\u003dtrue and the above output.\n[WARNING] See https://maven.apache.org/plugins/maven-shade-plugin/\n```\n\nI also notice this:\n\n```\n[INFO] --- bnd:7.3.0:bnd-process (generate-OSGi-manifest) @ error_prone_refaster ---\n[WARNING] Cannot consider developer in line \u002757\u0027 of file \u0027/usr/local/google/home/cpovirk/clients/error-prone-white/error-prone/pom.xml\u0027 for bundle header \u0027Bundle-Developers\u0027 as it does not contain the mandatory id.\n```\n\nAgain, that\u0027s unrelated.\n\nPiperOrigin-RevId: 962955941\n"
    },
    {
      "commit": "48f9483d9acf8c3a230f562ee26639572bb8517b",
      "tree": "29cc84cf8dafbd811d5a4abb1ffdf2d091177425",
      "parents": [
        "876a6e369c5ef0bb3370f08fc1800f797393d67e"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Tue Aug 11 16:00:52 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Aug 11 16:01:42 2026"
      },
      "message": "Avoid warning multiple times for \"`sun.misc.Unsafe.class`.\"\n\nPiperOrigin-RevId: 962812357\n"
    },
    {
      "commit": "876a6e369c5ef0bb3370f08fc1800f797393d67e",
      "tree": "d86a356f751dc3aa0aab70d06a0edd2954174e37",
      "parents": [
        "41c162323d84bfa59e1be0798682dfea282f60e8"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Tue Aug 11 00:34:01 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Aug 11 00:35:08 2026"
      },
      "message": "Update `PatternMatchingInstanceof` to recognize `while` and `for` loops.\n\nPiperOrigin-RevId: 962461484\n"
    },
    {
      "commit": "41c162323d84bfa59e1be0798682dfea282f60e8",
      "tree": "7fd38d79274b60d440cce73c8bb65fbce466278b",
      "parents": [
        "09ea3a2f8aae466b45681fb3e2411c298caf514a"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Aug 10 23:38:02 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Aug 10 23:39:12 2026"
      },
      "message": "Refactor `isReassigned` in `PatternMatchingInstanceof` to use the local field trick\n\nUse `TreeScanner\u003cVoid, Void\u003e` with a local `boolean` field to track reassignment instead of `TreeScanner\u003cBoolean, Void\u003e` with `reduce()`. This allows short-circuiting AST traversal once reassignment is found and removes unnecessary boxing/unboxing.\n\nPiperOrigin-RevId: 962436051\n"
    },
    {
      "commit": "09ea3a2f8aae466b45681fb3e2411c298caf514a",
      "tree": "f0b732dd8d948f77dde69b7a8627591aae64eefc",
      "parents": [
        "56412f496f0b614f30056825b8b2ef043718dd23"
      ],
      "author": {
        "name": "Éamonn McManus",
        "email": "emcmanus@google.com",
        "time": "Mon Aug 10 23:24:34 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Aug 10 23:27:04 2026"
      },
      "message": "Add commentary to clarify a complicated method in `PatternMatchingInstanceof`.\n\nAlso rearrange the method slightly so it has only one return statement.\n\nPiperOrigin-RevId: 962429731\n"
    },
    {
      "commit": "56412f496f0b614f30056825b8b2ef043718dd23",
      "tree": "8ad977b2e961d4f3582666032349fd0451664888",
      "parents": [
        "d4b24165b04cccd95ef0c22551fee02bf944829a"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Aug 10 22:11:50 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Aug 10 22:13:08 2026"
      },
      "message": "Demonstrate duplicate/colliding variable name bugs in `PatternMatchingInstanceof` with[]\n\n1. Nested `instanceof` checks of the same type generating the same pattern variable name and shadowing the outer variable.\n2. Compound `\u0026\u0026` condition with two `instanceof` checks of the same type generating duplicate pattern variable names.\n3. `instanceof` in a variable initializer generating a pattern variable name that clashes with the variable being initialized.\n\nPiperOrigin-RevId: 962393089\n"
    },
    {
      "commit": "d4b24165b04cccd95ef0c22551fee02bf944829a",
      "tree": "ad9629ff88dd6e9aae6b026bd4bebfd8fa107643",
      "parents": [
        "63c1129fc5074b1c752fe0bf8e02159e15e36b8f"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Aug 10 20:01:46 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Aug 10 20:05:28 2026"
      },
      "message": "Fix scope-expansion variable clobbering bug in `PatternMatchingInstanceof`.\n\nAvoid refactoring if reusing the variable name would cause a clash/shadowing conflict with another variable declared later in the scope (where the pattern variable\u0027s scope expands).\n\nChanges:\n- Generalize `SuggestedFixes.variableNamer` with an overload that accepts `Iterable\u003c? extends Tree\u003e extraScope` to avoid declarations across extra trees (such as downstream statements).\n- Update `VariableNamer` and `isNameDeclared` to not descend into local classes, since declarations inside a local class do not clash with local variables outside.\n- Update `PatternMatchingInstanceof.generateVariableName` to use `SuggestedFixes.variableNamer(state, impliedStatements)`.\n- Update `PatternMatchingInstanceof.isReassigned` to use `TreeScanner\u003cVoid, Void\u003e` with a boolean field and extracted local variable for mutating unaries.\n- Add test coverage in `SuggestedFixesTest` and `PatternMatchingInstanceofTest`.\nPiperOrigin-RevId: 962319945\n"
    },
    {
      "commit": "63c1129fc5074b1c752fe0bf8e02159e15e36b8f",
      "tree": "4785cc4573dcb500ed907c0660941f47630857a9",
      "parents": [
        "85bc5abdcb024398d1526cd0c5638f311d5e1f1d"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Aug 10 20:01:42 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Aug 10 20:02:59 2026"
      },
      "message": "Handle `enum` constants and other values in `record` component annotations in `RemoveUnusedImports`.\n\nRecursively scan annotation element values on `record` members so that symbols\nlike `enum` constants and class literals used in `record` component annotations\nare recognized as used.\n\nPiperOrigin-RevId: 962319914\n"
    },
    {
      "commit": "85bc5abdcb024398d1526cd0c5638f311d5e1f1d",
      "tree": "c8b7e7d73e85dda60460bda368bb5a5800f045c1",
      "parents": [
        "353707b881cadb2d226a3a638a71e73d5f50326c"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Aug 10 18:45:15 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Aug 10 18:46:20 2026"
      },
      "message": "Add a[] for `SuggestedFixes.variableNamer(state)`.\n\nPiperOrigin-RevId: 962278221\n"
    },
    {
      "commit": "353707b881cadb2d226a3a638a71e73d5f50326c",
      "tree": "86eb36a26d0f5ab2d6cf2d492b45d89a51bfb086",
      "parents": [
        "a2923f9ae02209044a5be15aff81d02df262747d"
      ],
      "author": {
        "name": "Chris Povirk",
        "email": "cpovirk@google.com",
        "time": "Mon Aug 10 17:59:19 2026"
      },
      "committer": {
        "name": "Chris Povirk",
        "email": "cpovirk@google.com",
        "time": "Mon Aug 10 18:11:34 2026"
      },
      "message": "Use `vX.Y.Z` tags instead of `vX` for version comments.\n\nUpdate `oracle-actions/setup-java` along the way.\n\nThis prevents the `zizmor` trouble seen in https://github.com/google/google-java-format/pull/1442.\n"
    },
    {
      "commit": "a2923f9ae02209044a5be15aff81d02df262747d",
      "tree": "fcd92e3c3a04db29adc93bcc7ae94d4b8cf56842",
      "parents": [
        "9031902a8b8f75a4dbb3cac5a28f39f624102a0f"
      ],
      "author": {
        "name": "Chris Povirk",
        "email": "cpovirk@google.com",
        "time": "Mon Aug 10 17:08:19 2026"
      },
      "committer": {
        "name": "Chris Povirk",
        "email": "cpovirk@google.com",
        "time": "Mon Aug 10 18:06:18 2026"
      },
      "message": "Increase Dependabot cooldown from the default of 3 days to 7, as [required by `zizmor`](https://docs.zizmor.sh/audits/#rulesdependabot-cooldownconfigdays).\n"
    },
    {
      "commit": "9031902a8b8f75a4dbb3cac5a28f39f624102a0f",
      "tree": "4f75154c20d600ab0d00193ca29fe53d51770e29",
      "parents": [
        "03473d830d530905140f95d3c4e163315b7cb9c9"
      ],
      "author": {
        "name": "Chris Povirk",
        "email": "cpovirk@google.com",
        "time": "Mon Aug 10 17:18:44 2026"
      },
      "committer": {
        "name": "Chris Povirk",
        "email": "cpovirk@google.com",
        "time": "Mon Aug 10 18:05:57 2026"
      },
      "message": "Use `cancel-in-progress` instead of `styfle/cancel-workflow-action`.\n\nCompare https://github.com/google/google-java-format/pull/1442.\n"
    },
    {
      "commit": "03473d830d530905140f95d3c4e163315b7cb9c9",
      "tree": "9d0a6755d6eab11a6fa17c964bde29eeabdf081a",
      "parents": [
        "76086193541ca88c2fa02b695c15a2fdf8aff989"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Aug 10 17:16:23 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Aug 10 17:17:06 2026"
      },
      "message": "Add a regression test that demonstrates false positive unused imports warning when enum constants are used as annotation values on record components.\n\nPiperOrigin-RevId: 962225371\n"
    },
    {
      "commit": "76086193541ca88c2fa02b695c15a2fdf8aff989",
      "tree": "c3115b6734c8112b4856318a7b5c0d109938ca62",
      "parents": [
        "841aaefb3e76f4948f6e4172fd0183971a359518"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Fri Aug 07 13:58:03 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Aug 07 13:59:09 2026"
      },
      "message": "Improve UnnamedVariable documentation\n\nPiperOrigin-RevId: 960906256\n"
    },
    {
      "commit": "841aaefb3e76f4948f6e4172fd0183971a359518",
      "tree": "3e2428c587e389fcc5f88bb67c6bfd1edd8d4fe1",
      "parents": [
        "59ab20811fb05aefbad052d1280a12ea70626569"
      ],
      "author": {
        "name": "Michael Diamond",
        "email": "diamondm@google.com",
        "time": "Wed Aug 05 17:09:23 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Aug 05 17:10:11 2026"
      },
      "message": "Add links to outage caused by this bug. Referenced in http://b/18854585#comment5.\n\nPiperOrigin-RevId: 959726600\n"
    },
    {
      "commit": "59ab20811fb05aefbad052d1280a12ea70626569",
      "tree": "51fc9989801ba3178bab0f75b5cd62fc7ff37d58",
      "parents": [
        "eb5a7e440484a415630bc0bc7742e383ca803521"
      ],
      "author": {
        "name": "Error Prone Team",
        "email": "java-team-github-bot@google.com",
        "time": "Tue Aug 04 18:10:16 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Aug 04 18:11:34 2026"
      },
      "message": "Add `java.util.Properties` to `WellKnownThreadSafety`.\n\nPiperOrigin-RevId: 959124000\n"
    },
    {
      "commit": "eb5a7e440484a415630bc0bc7742e383ca803521",
      "tree": "ae2b3685efdd004c28042d182a7eedd47a5b54da",
      "parents": [
        "4144d4a366e9ae492c62c6c06b97705cf1b335bf"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Tue Aug 04 17:19:30 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Aug 04 17:20:41 2026"
      },
      "message": "Ignore unused local variables in Refaster templates.\n\nAlso, test the existing handling of _parameters_ in Refaster templates from https://github.com/google/error-prone/pull/4060.\n\nPiperOrigin-RevId: 959093859\n"
    },
    {
      "commit": "4144d4a366e9ae492c62c6c06b97705cf1b335bf",
      "tree": "61dd78773fa61926d5048ef5984c07e91e9ef49b",
      "parents": [
        "57ac6b98525e695ed847d1ce0a0ef49a593e36e1"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Aug 03 18:46:02 2026"
      },
      "committer": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Aug 03 20:52:06 2026"
      },
      "message": "Bump the github-actions group across 1 directory with 2 updates\n\nBumps the github-actions group with 2 updates in the / directory: [actions/setup-java](https://github.com/actions/setup-java) and [softprops/action-gh-release](https://github.com/softprops/action-gh-release).\n\n\nUpdates `actions/setup-java` from 5.6.0 to 5.7.0\n- [Release notes](https://github.com/actions/setup-java/releases)\n- [Commits](https://github.com/actions/setup-java/compare/03ad4de0992f5dab5e18fcb136590ce7c4a0ac95...b6effb05e454b25005698d916606bdc6ffcbf961)\n\nUpdates `softprops/action-gh-release` from 3.0.1 to 3.0.2\n- [Release notes](https://github.com/softprops/action-gh-release/releases)\n- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/softprops/action-gh-release/compare/718ea10b132b3b2eba29c1007bb80653f286566b...3d0d9888cb7fd7b750713d6e236d1fcb99157228)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-java\n  dependency-version: 5.6.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n  dependency-group: github-actions\n- dependency-name: softprops/action-gh-release\n  dependency-version: 3.0.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: github-actions\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "57ac6b98525e695ed847d1ce0a0ef49a593e36e1",
      "tree": "2e894a2d7464f84adf06ff5bee1e74f54bd86efb",
      "parents": [
        "60ceb270db9cc2890351335bbe2442f5bbda1356"
      ],
      "author": {
        "name": "Chris Povirk",
        "email": "cpovirk@google.com",
        "time": "Fri Jul 31 21:53:58 2026"
      },
      "committer": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Aug 03 18:43:56 2026"
      },
      "message": "Address [excessive permissions](https://docs.zizmor.sh/audits/#excessive-permissions).\n"
    },
    {
      "commit": "60ceb270db9cc2890351335bbe2442f5bbda1356",
      "tree": "e077a3812b28024319e7c7b2cc0e42b1f8a18bc5",
      "parents": [
        "531c01d139ac6268bdd0030a2612d7bbdd5c06a6"
      ],
      "author": {
        "name": "Chris Povirk",
        "email": "cpovirk@google.com",
        "time": "Fri Jul 31 21:24:21 2026"
      },
      "committer": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Aug 03 18:43:56 2026"
      },
      "message": "Improve version comments.\n"
    },
    {
      "commit": "531c01d139ac6268bdd0030a2612d7bbdd5c06a6",
      "tree": "0611846cc358e3a9f9f6d1383e697e8ff290506b",
      "parents": [
        "c7b004af339be7ca9140b7b70a11312e48878f25"
      ],
      "author": {
        "name": "Chris Povirk",
        "email": "cpovirk@google.com",
        "time": "Fri Jul 31 19:47:54 2026"
      },
      "committer": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Aug 03 18:43:56 2026"
      },
      "message": "Address `zizmor` findings:\n\n- [`persist-credentials: false`](https://docs.zizmor.sh/audits/#artipacked)\n- [pinning `uses`](https://docs.zizmor.sh/audits/#unpinned-uses)\n\nThere may be other findings, but these are the easy one.\n"
    },
    {
      "commit": "c7b004af339be7ca9140b7b70a11312e48878f25",
      "tree": "bbbe47a6defd025fc51125d7127a4789de5d4da0",
      "parents": [
        "a2017138ccfae362a2ddb6ca44d1bd2985a829ce"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sun Aug 02 17:22:58 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sun Aug 02 17:23:47 2026"
      },
      "message": "Bump the dependencies group with 2 updates\n\nBumps the dependencies group with 2 updates: [org.apache.maven.plugins:maven-toolchains-plugin](https://github.com/apache/maven-toolchains-plugin) and [org.safere:safere](https://github.com/eaftan/safere).\n\nUpdates `org.apache.maven.plugins:maven-toolchains-plugin` from 3.2.0 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/apache/maven-toolchains-plugin/releases\"\u003eorg.apache.maven.plugins:maven-toolchains-plugin\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e🚀 New features and improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDiscover additional JDKs on Windows (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/issues/140\"\u003e#140\u003c/a\u003e) (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/143\"\u003e#143\u003c/a\u003e) \u003ca href\u003d\"https://github.com/Okeanos\"\u003e\u003ccode\u003e@​Okeanos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLog matching discovered toolchain as info in select-jdk-toolchain mojo (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/144\"\u003e#144\u003c/a\u003e) \u003ca href\u003d\"https://github.com/HannesWell\"\u003e\u003ccode\u003e@​HannesWell\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd additional locations for auto-discovery to scan (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/130\"\u003e#130\u003c/a\u003e) \u003ca href\u003d\"https://github.com/Okeanos\"\u003e\u003ccode\u003e@​Okeanos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix matching against one of multiple env-variables pointing to one JDK (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/148\"\u003e#148\u003c/a\u003e) \u003ca href\u003d\"https://github.com/HannesWell\"\u003e\u003ccode\u003e@​HannesWell\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/issues/145\"\u003e#145\u003c/a\u003e: JDKs installed by asdf are not discovered. (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/146\"\u003e#146\u003c/a\u003e) \u003ca href\u003d\"https://github.com/mbutov\"\u003e\u003ccode\u003e@​mbutov\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://issues.apache.org/jira/browse/MTOOLCHAINS-53\"\u003e[MTOOLCHAINS-53]\u003c/a\u003e - Fix possible NPE (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/54\"\u003e#54\u003c/a\u003e) \u003ca href\u003d\"https://github.com/gnodet\"\u003e\u003ccode\u003e@​gnodet\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📝 Documentation updates\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate toolchains documentation to use JSR-330 terminology and links (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/165\"\u003e#165\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slawekjaranowski\"\u003e\u003ccode\u003e@​slawekjaranowski\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Maven site links in See Also menu (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/155\"\u003e#155\u003c/a\u003e) \u003ca href\u003d\"https://github.com/euiwpoi\"\u003e\u003ccode\u003e@​euiwpoi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://issues.apache.org/jira/browse/MNGSITE-529\"\u003e[MNGSITE-529]\u003c/a\u003e - Rename \u0026quot;Goals\u0026quot; to \u0026quot;Plugin Documentation\u0026quot; (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/48\"\u003e#48\u003c/a\u003e) \u003ca href\u003d\"https://github.com/Bukama\"\u003e\u003ccode\u003e@​Bukama\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e👻 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace Plexus XML configuration with JSR-330 annotated beans (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/160\"\u003e#160\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slawekjaranowski\"\u003e\u003ccode\u003e@​slawekjaranowski\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd .asf.yaml project metadata for ATR (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/158\"\u003e#158\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slawekjaranowski\"\u003e\u003ccode\u003e@​slawekjaranowski\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate site descriptors and download page content (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/159\"\u003e#159\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slawekjaranowski\"\u003e\u003ccode\u003e@​slawekjaranowski\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: enable prevent branch protection rules (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/131\"\u003e#131\u003c/a\u003e) \u003ca href\u003d\"https://github.com/sebtiem\"\u003e\u003ccode\u003e@​sebtiem\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer Inject API over plexus-component-annotations (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/127\"\u003e#127\u003c/a\u003e) \u003ca href\u003d\"https://github.com/olamy\"\u003e\u003ccode\u003e@​olamy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove Jira URL (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/84\"\u003e#84\u003c/a\u003e) \u003ca href\u003d\"https://github.com/sparsick\"\u003e\u003ccode\u003e@​sparsick\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable Github Issues (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/55\"\u003e#55\u003c/a\u003e) \u003ca href\u003d\"https://github.com/Bukama\"\u003e\u003ccode\u003e@​Bukama\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove Java 5 references and clean up (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/24\"\u003e#24\u003c/a\u003e) \u003ca href\u003d\"https://github.com/elharo\"\u003e\u003ccode\u003e@​elharo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📦 Dependency updates\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump apache/maven-gh-actions-shared/.github/workflows/release-drafter.yml from 4 to 5 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/162\"\u003e#162\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump apache/maven-gh-actions-shared/.github/workflows/stale.yml from 4 to 5 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/161\"\u003e#161\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump apache/maven-gh-actions-shared/.github/workflows/pr-automation.yml from 4 to 5 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/163\"\u003e#163\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump apache/maven-gh-actions-shared/.github/workflows/maven-verify.yml from 4 to 5 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/164\"\u003e#164\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate plexus-utils to 3.6.1 in IT dependencies (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/157\"\u003e#157\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slawekjaranowski\"\u003e\u003ccode\u003e@​slawekjaranowski\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-plugins from 48 to 49 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/156\"\u003e#156\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mavenVersion from 3.9.15 to 3.9.16 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/154\"\u003e#154\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-plugins from 47 to 48 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/153\"\u003e#153\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mavenVersion from 3.9.14 to 3.9.15 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/151\"\u003e#151\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mavenVersion from 3.9.13 to 3.9.14 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/149\"\u003e#149\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mavenVersion from 3.9.12 to 3.9.13 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/147\"\u003e#147\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate to 47 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/138\"\u003e#138\u003c/a\u003e) \u003ca href\u003d\"https://github.com/Bukama\"\u003e\u003ccode\u003e@​Bukama\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mavenVersion from 3.9.10 to 3.9.11 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/124\"\u003e#124\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-plugins from 44 to 45 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/61\"\u003e#61\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mavenVersion from 3.9.9 to 3.9.10 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/60\"\u003e#60\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://issues.apache.org/jira/browse/MTOOLCHAINS-64\"\u003e[MTOOLCHAINS-64]\u003c/a\u003e - Bump org.apache.maven.plugins:maven-plugins from 43 to 44 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/52\"\u003e#52\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump org.junit:junit-bom from 5.12.0 to 5.12.1 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/51\"\u003e#51\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-toolchains-plugin/commit/52474c04f074dec34db005886bcba3f9c5db78f7\"\u003e\u003ccode\u003e52474c0\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release maven-toolchains-plugin-3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-toolchains-plugin/commit/39e84b2e86751264f4cc89be87ea8d9a93c2fdca\"\u003e\u003ccode\u003e39e84b2\u003c/code\u003e\u003c/a\u003e Update toolchains documentation to use JSR-330 terminology and links (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/issues/165\"\u003e#165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-toolchains-plugin/commit/a213292b980768a480bd87bb271d772c2b215906\"\u003e\u003ccode\u003ea213292\u003c/code\u003e\u003c/a\u003e Bump apache/maven-gh-actions-shared/.github/workflows/release-drafter.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-toolchains-plugin/commit/2402d77e3d12719fa18b1e08f66635287ec42d0f\"\u003e\u003ccode\u003e2402d77\u003c/code\u003e\u003c/a\u003e Replace Plexus XML configuration with JSR-330 annotated beans (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/issues/160\"\u003e#160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-toolchains-plugin/commit/ab80fc840732538637f13c8082b2d01b2d2dc2ce\"\u003e\u003ccode\u003eab80fc8\u003c/code\u003e\u003c/a\u003e Bump apache/maven-gh-actions-shared/.github/workflows/stale.yml (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/issues/161\"\u003e#161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-toolchains-plugin/commit/525f40c3ff59a6acce3598334e5843260d61d98e\"\u003e\u003ccode\u003e525f40c\u003c/code\u003e\u003c/a\u003e Bump apache/maven-gh-actions-shared/.github/workflows/pr-automation.yml (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/issues/163\"\u003e#163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-toolchains-plugin/commit/d3960b93d3c59dd47ac4e60f74715ae31c1f7b6c\"\u003e\u003ccode\u003ed3960b9\u003c/code\u003e\u003c/a\u003e Bump apache/maven-gh-actions-shared/.github/workflows/maven-verify.yml (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/issues/164\"\u003e#164\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-toolchains-plugin/commit/e0b39a6ca45d9b78a5065c3bcc2dad4a0949f816\"\u003e\u003ccode\u003ee0b39a6\u003c/code\u003e\u003c/a\u003e Add .asf.yaml project metadata for ATR\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-toolchains-plugin/commit/e53bcec19fb51c7097050c841171043eab90920f\"\u003e\u003ccode\u003ee53bcec\u003c/code\u003e\u003c/a\u003e Add tag-template to release-drafter config\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-toolchains-plugin/commit/df6df088f12ba10e29f3109a8573e6374b65bb2a\"\u003e\u003ccode\u003edf6df08\u003c/code\u003e\u003c/a\u003e Update site descriptors and download page content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/apache/maven-toolchains-plugin/compare/maven-toolchains-plugin-3.2.0...maven-toolchains-plugin-3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.safere:safere` from 0.9.0 to 0.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/eaftan/safere/releases\"\u003eorg.safere:safere\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSafeRE 0.10.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eThis release adds structured static and runtime regex diagnostics, improves several successful-match and replacement paths, and expands the benchmark infrastructure used to compare SafeRE with other regex engines.\u003c/p\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003ePattern.analysis()\u003c/code\u003e for immutable static information about pattern features, engine capabilities, limitations, program size, and captures, plus a process-wide \u003ccode\u003eSafeReMatchDiagnostics\u003c/code\u003e listener that reports the strategies used by matching and replacement operations without exposing pattern or input text. Runtime diagnostics remain disabled by default and the disabled path does not allocate diagnostics state. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePerformance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAccelerated long-input multi-byte literal searches over UTF-8 input with a SWAR candidate filter while preserving linear-time fallback behavior; measured absent-literal scans improved by 2.2–6.2×, with explicit Boyer-Moore-Horspool batching preserving short-input throughput. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/580\"\u003e#580\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduced repeated capture-extraction work after callers request inner captures, improving representative log parsing by 1.85× and stack-trace extraction by 1.51×. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded a single backward-scan path for greedy whole-input wrappers around word-bounded ASCII case-insensitive keyword alternatives, producing improvements from 108× at 1,000 characters to 14,726× at 100,000 characters in the measured matching workload. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved redundant anchored DFA verification passes when forward and reverse bounds are authoritative, improving representative successful searches by 1.21–1.33×. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved replacement fast paths by recording template capture demand earlier and directly handling nullable repeated character classes with literal templates; measured empty-match \u003ccode\u003ereplaceAll\u003c/code\u003e improved by 7.22× and Pig Latin replacement by 1.20×. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefreshed the benchmark report with reproducible same-runtime and cross-language comparisons, and integrated the separately licensed OpenJDK-derived regex benchmark suite into the standard collection workflow. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/581\"\u003e#581\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/596\"\u003e#596\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMade benchmark inputs reproducible across Java, C++, and Go by materializing one shared workload definition, and decoupled cross-engine workload selection from JMH entry points. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/601\"\u003e#601\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/605\"\u003e#605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved release automation, centralized the CI JDK configuration, and made the C++ benchmark harness portable to macOS. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/582\"\u003e#582\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/598\"\u003e#598\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/600\"\u003e#600\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eThanks to \u003ca href\u003d\"https://github.com/wendigo\"\u003e\u003ccode\u003e@​wendigo\u003c/code\u003e\u003c/a\u003e for the SWAR-based UTF-8 literal-search acceleration and its benchmark and correctness coverage.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href\u003d\"https://github.com/eaftan/safere/compare/v0.9.0...v0.10.0\"\u003ehttps://github.com/eaftan/safere/compare/v0.9.0...v0.10.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/20f4ec5e386a914076e5eb586f38755eb00a6a1d\"\u003e\u003ccode\u003e20f4ec5\u003c/code\u003e\u003c/a\u003e Update README examples for 0.10.0 (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/621\"\u003e#621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/e03377d2a32208e7eb6523d510b86e8aa0408829\"\u003e\u003ccode\u003ee03377d\u003c/code\u003e\u003c/a\u003e Decouple cross-engine benchmark execution (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/605\"\u003e#605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/c4e8203bab7d31ca030f024382518c76d8ffed80\"\u003e\u003ccode\u003ec4e8203\u003c/code\u003e\u003c/a\u003e Materialize shared benchmark inputs before execution (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/601\"\u003e#601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/e84ff6018a4f0878f3a9ca8216afb4ab17ec43df\"\u003e\u003ccode\u003ee84ff60\u003c/code\u003e\u003c/a\u003e Centralize CI JDK configuration (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/600\"\u003e#600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/7ac65120197821c9b2abd60b0f6863909b6292a5\"\u003e\u003ccode\u003e7ac6512\u003c/code\u003e\u003c/a\u003e Make C++ benchmark harness build on macOS (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/598\"\u003e#598\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/ea3f66d4607ddd5e6e7f5e390b89f90ebcb1b7da\"\u003e\u003ccode\u003eea3f66d\u003c/code\u003e\u003c/a\u003e Integrate external OpenJDK regex benchmarks (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/596\"\u003e#596\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/f4360fd72c2251c9c3693654e3484926d26b54de\"\u003e\u003ccode\u003ef4360fd\u003c/code\u003e\u003c/a\u003e Add static and runtime regex diagnostics (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/1f7c41483b0a6c66729a4878dae539ace7a56e66\"\u003e\u003ccode\u003e1f7c414\u003c/code\u003e\u003c/a\u003e Improve replacement fast paths (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/bc315e75dcd1ad9e1fa5feb6e1c04cbf4c1a5359\"\u003e\u003ccode\u003ebc315e7\u003c/code\u003e\u003c/a\u003e Remove redundant anchored DFA passes (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/50708cf2a975791c88793b0821ca4acd781f9c43\"\u003e\u003ccode\u003e50708cf\u003c/code\u003e\u003c/a\u003e Accelerate greedy keyword searches (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/eaftan/safere/compare/v0.9.0...v0.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency\u0027s major version (unless you unignore this specific dependency\u0027s major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency\u0027s minor version (unless you unignore this specific dependency\u0027s minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\u003c/details\u003e\n\nFixes https://github.com/google/error-prone/pull/5995\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/google/error-prone/pull/5995 from google:dependabot/maven/dependencies-102eaeaa0f 72b18a09b9504f66a7b9b3c1d600cf5a6c7f7e0d\nPiperOrigin-RevId: 957985602\n"
    },
    {
      "commit": "a2017138ccfae362a2ddb6ca44d1bd2985a829ce",
      "tree": "7a52c6e5ae4dce4b4d651f0a1a020a8f133d127d",
      "parents": [
        "663409a35b5ae8a52b0bd163eb9103322d6ca7fd"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Sun Aug 02 09:30:52 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sun Aug 02 09:31:49 2026"
      },
      "message": "Add descriptions to the `ErrorProneCommentStyle` enum.\n\nPiperOrigin-RevId: 957881951\n"
    },
    {
      "commit": "663409a35b5ae8a52b0bd163eb9103322d6ca7fd",
      "tree": "7ec8cfb96137ce2e4482fdcc077355af09597aec",
      "parents": [
        "859d2b019d3496c342f2bd92aec2687f0739695c"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Sun Aug 02 00:48:44 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sun Aug 02 00:49:44 2026"
      },
      "message": "Remove `containsAtLeast` from `DistinctVarargsChecker` --- it respects cardinality and duplicates are meaningful!\n\nPiperOrigin-RevId: 957758519\n"
    },
    {
      "commit": "859d2b019d3496c342f2bd92aec2687f0739695c",
      "tree": "ed46d279cc3a486de85becf6079c63afc5b26135",
      "parents": [
        "e0cb5a1f02776854c71b677c39f805b5f5b09745"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Sat Aug 01 22:41:46 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sat Aug 01 22:42:29 2026"
      },
      "message": "Add JDK, Guava, Protobuf, Truth, Mockito, and ErrorProne APIs to DistinctVarargsChecker.\n\nFlag method invocations when passed non-distinct arguments for:\n- Objects.hash, Objects.requireNonNullElse, com.google.common.base.Objects.hashCode\n- MoreObjects.firstNonNull\n- CompletableFuture.allOf, CompletableFuture.anyOf\n- Mockito.verifyNoInteractions, Mockito.verifyNoMoreInteractions, Mockito.inOrder, Mockito.ignoreStubs\n- EnumSet.of\n- Predicates.and, Predicates.or\n- java.nio.file.Files (copy, move, isSameFile, mismatch, write, writeString)\n- Collections.disjoint\n- Sets.intersection, Sets.union, Sets.difference, Sets.symmetricDifference\n- Stream.concat, IntStream.concat, LongStream.concat, DoubleStream.concat, Iterables.concat\n- Math.max/min, StrictMath.max/min, Primitive boxed max/min (Integer, Long, Double, Float)\n- Guava Primitive max/min (Ints, Longs, Doubles, Floats, Shorts, Chars, SignedBytes, UnsignedBytes)\n- Comparators.min, Comparators.max\n- Maps.difference\n- FieldMaskUtil (union, intersection, subtract)\n- Truth Subject (isAnyOf, isNoneOf), Truth IterableSubject (containsAnyOf, containsAtLeast), Truth MapSubject (containsExactly key parity)\n- ErrorProne Matchers (anyOf, allOf), MethodClassMatcher (namedAnyOf), StaticMethodMatcher/InstanceMethodMatcher/AnyMethodMatcher (onClassAny, onExactClassAny, onDescendantOfAny)\n\nPiperOrigin-RevId: 957729607\n"
    }
  ],
  "next": "e0cb5a1f02776854c71b677c39f805b5f5b09745"
}
