)]}'
{
  "log": [
    {
      "commit": "854665b6924534eb866aa5cf5e65a3e42a506718",
      "tree": "a8d95b9a80a6c2196861b8fb9e4af9521de96931",
      "parents": [
        "35884331592899a49c692bd5d0b3aca518869f34"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Thu Oct 15 08:13:48 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Oct 15 08:15:23 2026"
      },
      "message": "Collapse duplicated package prefixes in `_javac` source jar paths.\n\nPiperOrigin-RevId: 999944366\n"
    },
    {
      "commit": "35884331592899a49c692bd5d0b3aca518869f34",
      "tree": "f317ffcd11ae376904b7bf52b1c908f15aa1c486",
      "parents": [
        "b8a8390ac9938b9ec59530166525f0ef01f0b78d"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Wed Oct 14 16:02:46 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Oct 14 16:04:39 2026"
      },
      "message": "Introduce `-XepOpt:Nullness:LikelyPublicApiOnly\u003dtrue` for annotating only APIs that are likely to be accessible to users outside the package.\n\n(It\u0027s possible to \"trick\" the check by having a `private` or package-private class that is extended by a more visible class. But the point here is just to identify cases that are very _likely_ to be \"public API.\")\n\nPiperOrigin-RevId: 999407550\n"
    },
    {
      "commit": "b8a8390ac9938b9ec59530166525f0ef01f0b78d",
      "tree": "f1a39629235261af4f138c7734129dd093b5a8b5",
      "parents": [
        "59f98c3d9c0cb42a82f93a2661a54ba98d40803f"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Oct 13 23:32:38 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Oct 13 23:34:11 2026"
      },
      "message": "Merge CollectionUndefinedEquality and ArrayAsKeyOfSetOrMap into UndefinedEquals.\n\n`UndefinedEquals`, `CollectionUndefinedEquality`, and `ArrayAsKeyOfSetOrMap` all report code that relies on `equals` or `hashCode` of types where those methods aren\u0027t meaningful, but each covered a different subset of use sites: direct equality, collection containment, and hash-based container creation.\n\nAdd `AbstractEqualsHashCodeUsageChecker`, which finds the places where code relies on `equals` and `hashCode`, either explicitly or implicitly through collections, and lets each check decide which types are a problem for each kind of use. Rebuild `UndefinedEquals` on top of it, absorbing the other two checks and keeping their names as `altNames` so existing suppressions and `-Xep` flags keep working.\n\nPiperOrigin-RevId: 998967393\n"
    },
    {
      "commit": "59f98c3d9c0cb42a82f93a2661a54ba98d40803f",
      "tree": "7f31cd84c01c2561fa30428850da7510e526b46f",
      "parents": [
        "08e222c543214942594fae201f6746685aaf3c12"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Tue Oct 13 21:15:53 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Oct 13 21:19:39 2026"
      },
      "message": "Allow `\u003d\u003d` comparisons on `Tree` instances.\n\nNone of javac\u0027s `Tree` implementations override `Object.equals`, so reference equality behaves identically to `equals` while avoiding verbosity and `NullPointerException`.\n\n(This came up again in unknown commit and maybe another time previously?)\n\nPiperOrigin-RevId: 998886008\n"
    },
    {
      "commit": "08e222c543214942594fae201f6746685aaf3c12",
      "tree": "f2093c9cbf6e350bcb4881e1d45c06198b46871d",
      "parents": [
        "245ddd2936ee85b0e3971449f3bd751493d0aa7a"
      ],
      "author": {
        "name": "Error Prone Team",
        "email": "java-team-github-bot@google.com",
        "time": "Tue Oct 13 19:20:12 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Oct 13 19:21:22 2026"
      },
      "message": "Resolve canonical owner of static imports to the most general accessible supertype.\n\n`StaticImports.tryCreate` previously resolved the canonical owner of an imported static member directly to `member.owner` without verifying whether that declaring type is accessible from the package of the importing compilation unit. When a public type inherits constants from a package-private supertype or super-interface (such as protobuf `large_enum \u003d true` shard interfaces), `NonCanonicalStaticMemberImport` suggested importing from the inaccessible package-private type outside its package.\n\nWalk `types.closure(baseType.type)` in `canonicalOwner` to select the most general supertype that is a subtype of `member.owner` and whose type (and any enclosing types) is accessible from the importing package, and only treat a single imported `ClassSymbol` as a canonical type import when it is similarly accessible from the importing package.\n\nPiperOrigin-RevId: 998810316\n"
    },
    {
      "commit": "245ddd2936ee85b0e3971449f3bd751493d0aa7a",
      "tree": "cf73de93dcfcbdab62ad059d600a03a2a92960c8",
      "parents": [
        "9360a0a9423f0e4be68f3683dcfa080460ed0827"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Tue Oct 13 19:05:39 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Oct 13 19:09:20 2026"
      },
      "message": "[Reachability] count a labeled `break` only against the labeled statement\n\nPiperOrigin-RevId: 998800813\n"
    },
    {
      "commit": "9360a0a9423f0e4be68f3683dcfa080460ed0827",
      "tree": "7be5cd338ab269645cc5289308b21b120d4c3176",
      "parents": [
        "f61f6fa20c2b609d9f7daa9bb7c6a2fb0c1b4a16"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Tue Oct 13 17:59:06 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Oct 13 18:00:38 2026"
      },
      "message": "Don\u0027t suggest adding `@Nullable` to `Class\u003cVoid\u003e` or `TypeToken\u003cVoid\u003e`.\n\nWe consider both of those classes to require non-null type arguments, since there would be no difference between `Class\u003c@NonNull Void\u003e` and `Class\u003c@Nullable Void\u003e` except that nullness checkers would complain if you tried to mix them.\n\nPiperOrigin-RevId: 998751332\n"
    },
    {
      "commit": "f61f6fa20c2b609d9f7daa9bb7c6a2fb0c1b4a16",
      "tree": "3a56d762ca1f7bf85a69e94915fb3b735099d56e",
      "parents": [
        "d5b3014bd3003baeb0a4b086758c8f04032a6285"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Tue Oct 13 15:27:51 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Oct 13 15:29:42 2026"
      },
      "message": "[Reachability] add tests showing that a labeled `break` is counted against the statement it labels\n\nPiperOrigin-RevId: 998653845\n"
    },
    {
      "commit": "d5b3014bd3003baeb0a4b086758c8f04032a6285",
      "tree": "dc86bfab56f4738939995fc266abb4a163a9dc69",
      "parents": [
        "3feb303747e79b195fb4bb05a4168248a0ed7e48"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Oct 13 07:57:17 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Oct 13 07:58:20 2026"
      },
      "message": "Check enclosing classes when applying `RefasterRule` to a subtree `TreePath`\n\nCheck ancestor trees in `RefasterScanner.scan(TreePath, Context)` so `isSuppressed` and the self-application check still take effect on subtree paths, and revert the blanket skip of `@BeforeTemplate` and `@Placeholder` methods in `RefasterScanner.visitMethod` so other Refaster rules can match inside `@BeforeTemplate` methods (see https://github.com/google/error-prone/pull/6195#issuecomment-6127694134).\n\nPiperOrigin-RevId: 998444201\n"
    },
    {
      "commit": "3feb303747e79b195fb4bb05a4168248a0ed7e48",
      "tree": "bf09e27d4cf6f58da5f9d3c47473802f698eb0a0",
      "parents": [
        "077fe54b34a51f770d677d71d0bbdc70a7c0f27d"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Mon Oct 12 14:54:57 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Oct 12 14:55:56 2026"
      },
      "message": "[IfChainToSwitch] document where deleting code is incorrect\n\nPiperOrigin-RevId: 997919134\n"
    },
    {
      "commit": "077fe54b34a51f770d677d71d0bbdc70a7c0f27d",
      "tree": "ab1661e8e9812725b0c6e8117eb7015981ca3b3c",
      "parents": [
        "05b284038356134e8284e0cbfc0398d41ea61469"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Oct 12 12:18:25 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Oct 12 12:19:57 2026"
      },
      "message": "Migrate from `@RestrictedApi` `allowedOnPath` to `allowedPaths`\n\nPiperOrigin-RevId: 997852193\n"
    },
    {
      "commit": "05b284038356134e8284e0cbfc0398d41ea61469",
      "tree": "43b35525cf8e7ad00d9badb020bc4826120efec9",
      "parents": [
        "6bfe989150b4ac39b1f0d56fed17d8171a6e603c"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Oct 12 09:01:21 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Oct 12 09:03:08 2026"
      },
      "message": "Skip `@BeforeTemplate` and `@Placeholder` methods in `RefasterScanner`.\n\nPreviously, `RefasterScanner` only skipped the template class defining the rule currently being scanned, so other Refaster rules would still match patterns inside `@BeforeTemplate` and `@Placeholder` methods.\n\nPiperOrigin-RevId: 997769712\n"
    },
    {
      "commit": "6bfe989150b4ac39b1f0d56fed17d8171a6e603c",
      "tree": "cb1f0c3beabd70cf82cf5a00d6b73034183c5e2e",
      "parents": [
        "216a1d80954c970638a9c2dc1bbe73f70835135a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sun Oct 11 15:45:24 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sun Oct 11 15:47:09 2026"
      },
      "message": "Bump the dependencies group with 7 updates\n\nBumps the dependencies group with 7 updates:\n\n| Package | From | To |\n| --- | --- | --- |\n| [com.google.guava:guava-testlib](https://github.com/google/guava) | `33.7.1-jre` | `33.7.2-jre` |\n| [com.google.guava:guava](https://github.com/google/guava) | `33.7.1-jre` | `33.7.2-jre` |\n| com.google.testparameterinjector:test-parameter-injector | `1.23` | `1.24` |\n| [org.safere:safere](https://github.com/eaftan/safere) | `0.11.0` | `1.0.0` |\n| [com.google.googlejavaformat:google-java-format](https://github.com/google/google-java-format) | `1.36.1` | `1.37.0` |\n| [joda-time:joda-time](https://github.com/JodaOrg/joda-time) | `2.14.4` | `2.15.0` |\n| [org.checkerframework:checker-qual](https://github.com/typetools/checker-framework) | `4.2.3` | `4.3.0` |\n\nUpdates `com.google.guava:guava-testlib` from 33.7.1-jre to 33.7.2-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.2\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.2-jre\u0026lt;/version\u0026gt;\n  \u0026lt;!-- or, for Android: --\u0026gt;\n  \u0026lt;version\u0026gt;33.7.2-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.2-jre/guava-33.7.2-jre.jar\"\u003e33.7.2-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.2-android/guava-33.7.2-android.jar\"\u003e33.7.2-android.jar\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eGuava requires\n\u003ca href\u003d\"https://github.com/google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies\"\u003eone runtime dependency\u003c/a\u003e,\nwhich 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.2-jre/api/docs/\"\u003e33.7.2-jre\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://guava.dev/releases/33.7.2-android/api/docs/\"\u003e33.7.2-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.2-jre/api/diffs/\"\u003e33.7.2-jre vs. 33.7.1-jre\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://guava.dev/releases/33.7.2-android/api/diffs/\"\u003e33.7.2-android vs. 33.7.1-android\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://guava.dev/releases/33.7.2-android/api/androiddiffs/\"\u003e33.7.2-android vs. 33.7.2-jre\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecollect\u003c/code\u003e: Changed \u003ccode\u003eMapMaker\u003c/code\u003e, \u003ccode\u003eCompactHashMap\u003c/code\u003e, and \u003ccode\u003eCompactHashSet\u003c/code\u003e deserialization to \u003ca href\u003d\"https://github.com/google/guava/security/advisories/GHSA-xxph-c9ww-hj94\"\u003eavoid eagerly allocating as much memory as a serialization payload requests\u003c/a\u003e (\u003ca href\u003d\"https://www.cve.org/CVERecord?id\u003dCVE-2026-102554\"\u003eCVE-2026-102554\u003c/a\u003e). (a0d0c36432)\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\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.7.1-jre to 33.7.2-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.2\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.2-jre\u0026lt;/version\u0026gt;\n  \u0026lt;!-- or, for Android: --\u0026gt;\n  \u0026lt;version\u0026gt;33.7.2-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.2-jre/guava-33.7.2-jre.jar\"\u003e33.7.2-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.2-android/guava-33.7.2-android.jar\"\u003e33.7.2-android.jar\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eGuava requires\n\u003ca href\u003d\"https://github.com/google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies\"\u003eone runtime dependency\u003c/a\u003e,\nwhich 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.2-jre/api/docs/\"\u003e33.7.2-jre\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://guava.dev/releases/33.7.2-android/api/docs/\"\u003e33.7.2-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.2-jre/api/diffs/\"\u003e33.7.2-jre vs. 33.7.1-jre\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://guava.dev/releases/33.7.2-android/api/diffs/\"\u003e33.7.2-android vs. 33.7.1-android\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://guava.dev/releases/33.7.2-android/api/androiddiffs/\"\u003e33.7.2-android vs. 33.7.2-jre\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecollect\u003c/code\u003e: Changed \u003ccode\u003eMapMaker\u003c/code\u003e, \u003ccode\u003eCompactHashMap\u003c/code\u003e, and \u003ccode\u003eCompactHashSet\u003c/code\u003e deserialization to \u003ca href\u003d\"https://github.com/google/guava/security/advisories/GHSA-xxph-c9ww-hj94\"\u003eavoid eagerly allocating as much memory as a serialization payload requests\u003c/a\u003e (\u003ca href\u003d\"https://www.cve.org/CVERecord?id\u003dCVE-2026-102554\"\u003eCVE-2026-102554\u003c/a\u003e). (a0d0c36432)\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\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.testparameterinjector:test-parameter-injector` from 1.23 to 1.24\n\nUpdates `org.safere:safere` from 0.11.0 to 1.0.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 1.0.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eSafeRE 1.0.0 is the first major release of SafeRE: linear-time regular expressions for Java, with \u003ccode\u003ejava.util.regex\u003c/code\u003e-compatible behavior within that constraint and direct UTF-8 matching. This release improves Unicode grapheme handling, fixes matching and capture edge cases, and speeds up literal searches and DFA-heavy workloads. Java 21 or later is required.\u003c/p\u003e\n\u003ch2\u003eMigration from 0.11.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eThe retired multi-anchor gap executor and its public diagnostics enum constant, \u003ccode\u003eMatchStrategy.MULTI_ANCHOR\u003c/code\u003e, have been removed. Update any references or exhaustive switches over that constant; matching continues through the remaining engines and accelerators. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/865\"\u003e#865\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSafeRE\u0027s supported syntax and documented compatibility boundaries still apply. Backreferences, lookaround, atomic groups, \u003ccode\u003e\\G\u003c/code\u003e, and consuming possessive quantifiers remain unsupported; see the \u003ca href\u003d\"https://github.com/eaftan/safere/blob/v1.0.0/docs/SYNTAX.md\"\u003esyntax guide\u003c/a\u003e and \u003ca href\u003d\"https://github.com/eaftan/safere/blob/v1.0.0/INTENTIONAL_DIVERGENCES.md\"\u003eintentional divergences\u003c/a\u003e when migrating from \u003ccode\u003ejava.util.regex\u003c/code\u003e.\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eCompatibility and correctness\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAlign \u003ccode\u003e\\X\u003c/code\u003e grapheme segmentation with Unicode 17 data, including format controls, extenders, spacing marks, prepend characters, and Indic conjuncts. Grapheme tables now come from pinned public Unicode data. Preserve Unicode segmentation for unassigned code points instead of treating all unassigned code points as grapheme controls, and document the intentional JDK difference. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/932\"\u003e#932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMake Unicode case equivalence symmetric. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/870\"\u003e#870\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix deferred capture coordinates in opaque matcher regions and reverse DFA searches starting inside surrogate pairs. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/887\"\u003e#887\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/930\"\u003e#930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve consuming branches after deferred DFA matches, refresh DFA storage references after allocation, and restrict start acceleration to unanchored forward states. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/859\"\u003e#859\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/886\"\u003e#886\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/893\"\u003e#893\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix case-insensitive UTF-8 prefix scan bounds at logical slice ends. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/885\"\u003e#885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDocument intentional differences in quoting inside comments and matcher state after a terminal empty \u003ccode\u003efind()\u003c/code\u003e, with regression and differential coverage. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/860\"\u003e#860\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/933\"\u003e#933\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePerformance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImprove literal selection and String searches with rare-character anchors, single-character search kernels, and bounded fallback when candidate density makes acceleration unproductive. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/876\"\u003e#876\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/883\"\u003e#883\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/901\"\u003e#901\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/905\"\u003e#905\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAccelerate exact-case and Unicode-case-insensitive UTF-8 literal searches and literal-prefix filtering, while bounding verification work across retries and repeated finds. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/919\"\u003e#919\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/920\"\u003e#920\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/924\"\u003e#924\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFlush and rebuild productive DFA caches on state-budget exhaustion, with backoff and recovery for unproductive workloads. The reported Rebar bounded-repeat workload improved by about 3× across String, UTF-8, and vector configurations. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/908\"\u003e#908\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduce capture speculation, resolve variable-offset start candidates against leading character classes, verify nullable leading expansions at the inner match, and base accelerator backoff on actual skipped work. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/878\"\u003e#878\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/906\"\u003e#906\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/915\"\u003e#915\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/896\"\u003e#896\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove rejection prefilters and fast-reject non-matching start-anchored replacements. The reported Rebar Ruff workload improved by about 2.4× on the String path through single-character class rejection. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/910\"\u003e#910\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/922\"\u003e#922\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/927\"\u003e#927\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eDispatch experimental vector scans according to each search window and strengthen dispatch auditing. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/861\"\u003e#861\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/862\"\u003e#862\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/909\"\u003e#909\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003ePublish development snapshots after successful \u003ccode\u003emain\u003c/code\u003e CI and correct SCM URLs in published Maven POMs. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/897\"\u003e#897\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/877\"\u003e#877\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eExpand randomized UTF-8, capture-bound, repeated-find, and scan-boundary coverage; add Rebar benchmark results and additional native benchmark workloads. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/875\"\u003e#875\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/907\"\u003e#907\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/918\"\u003e#918\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReorganize the documentation and refresh the README with a new SafeRE logo. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/942\"\u003e#942\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/943\"\u003e#943\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/cushon\"\u003e\u003ccode\u003e@​cushon\u003c/code\u003e\u003c/a\u003e for search acceleration, DFA cache recovery, Unicode grapheme work, and stronger differential and dispatch coverage, and \u003ca href\u003d\"https://github.com/wendigo\"\u003e\u003ccode\u003e@​wendigo\u003c/code\u003e\u003c/a\u003e for correcting published Maven SCM metadata. Thanks also to \u003ca href\u003d\"https://github.com/eaftan\"\u003e\u003ccode\u003e@​eaftan\u003c/code\u003e\u003c/a\u003e for compatibility fixes, UTF-8 search improvements, release infrastructure, and documentation.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href\u003d\"https://github.com/eaftan/safere/compare/v0.11.0...v1.0.0\"\u003ehttps://github.com/eaftan/safere/compare/v0.11.0...v1.0.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/09c4812d41221294f3dc4958ca41c7490b27bc06\"\u003e\u003ccode\u003e09c4812\u003c/code\u003e\u003c/a\u003e Prepare installation examples for SafeRE 1.0.0 (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/953\"\u003e#953\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/38a051623c6c9ad0fb295b3e4046cc444922efed\"\u003e\u003ccode\u003e38a0516\u003c/code\u003e\u003c/a\u003e Exclude unsupported previous-match anchor and atomic groups in fuzz compiler ...\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/86066ee271cf887a68e5b51d5eed258c3f42a37a\"\u003e\u003ccode\u003e86066ee\u003c/code\u003e\u003c/a\u003e Reorganize documentation and refresh the SafeRE README (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/942\"\u003e#942\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/30ae754981ab2b3529e8b5214da628230218a6c4\"\u003e\u003ccode\u003e30ae754\u003c/code\u003e\u003c/a\u003e Add SafeRE logo to README (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/943\"\u003e#943\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/5bfcec92acda26fcde50fc8bc510f3a4afe855ea\"\u003e\u003ccode\u003e5bfcec9\u003c/code\u003e\u003c/a\u003e Preserve unassigned grapheme semantics and document JDK divergence (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/932\"\u003e#932\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/f63b00212573e7d2467dc0803481b85a82a75a68\"\u003e\u003ccode\u003ef63b002\u003c/code\u003e\u003c/a\u003e Discourage dependencies on JDK internals (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/941\"\u003e#941\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/39565b2dc2af4b5b1c980e5cafd78066e6cdb55d\"\u003e\u003ccode\u003e39565b2\u003c/code\u003e\u003c/a\u003e Document and test intentional exhausted matcher state divergence (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/933\"\u003e#933\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/a9f90efb5910399b81f2ce509bc233b338476743\"\u003e\u003ccode\u003ea9f90ef\u003c/code\u003e\u003c/a\u003e Bump org.codehaus.mojo:build-helper-maven-plugin (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/937\"\u003e#937\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/848d0597dd34330ffd3218d8504fd2ab657888c3\"\u003e\u003ccode\u003e848d059\u003c/code\u003e\u003c/a\u003e Keep reverse DFA search within surrogate-interior start (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/930\"\u003e#930\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/6eea37ab5aa081cac2a9483b82a15711540949d2\"\u003e\u003ccode\u003e6eea37a\u003c/code\u003e\u003c/a\u003e Streamline agent guidance and scope local validation (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/934\"\u003e#934\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/eaftan/safere/compare/v0.11.0...v1.0.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.google.googlejavaformat:google-java-format` from 1.36.1 to 1.37.0\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.37.0\u003c/h2\u003e\n\u003cp\u003eChanges:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eAdd a \u003ccode\u003e--max-line-length\u003c/code\u003e flag (\u003ca href\u003d\"https://redirect.github.com/google/google-java-format/issues/425\"\u003e#425\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMarkdown javadoc formatting improvements (c51d6916518ab4dfffbb086449fa00f7160ae468, ecba4fb24fd064a64d2918c5fdb45546d08e3063)\u003c/li\u003e\n\u003cli\u003eAdd \u003ccode\u003e--google-style\u003c/code\u003e and \u003ccode\u003e--style\u003dgoogle|aosp\u003c/code\u003e flags for easier switching between Google and AOSP style (\u003ca href\u003d\"https://redirect.github.com/google/google-java-format/issues/1415\"\u003e#1415\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eFull Changelog: \u003ca href\u003d\"https://github.com/google/google-java-format/compare/v1.36.1...v1.37.0\"\u003ehttps://github.com/google/google-java-format/compare/v1.36.1...v1.37.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/google/google-java-format/commit/d34669338e718f197048a54e2cff152b919de40c\"\u003e\u003ccode\u003ed346693\u003c/code\u003e\u003c/a\u003e Release google-java-format 1.37.0\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/google-java-format/commit/f70f5e1b8738352f81f9275a1353c78ccf3c7f9c\"\u003e\u003ccode\u003ef70f5e1\u003c/code\u003e\u003c/a\u003e Cache indentation spaces lazily in JavaOutput.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/google-java-format/commit/6b868494b55eb91f322abd1af41deb434fbe133d\"\u003e\u003ccode\u003e6b86849\u003c/code\u003e\u003c/a\u003e Add --max-line-length and --style options, and programmatic tab support, to g...\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/google-java-format/commit/4c732b859307820bd8aa420cf0a202a7c6fe8327\"\u003e\u003ccode\u003e4c732b8\u003c/code\u003e\u003c/a\u003e Rewrite code so it doesn\u0027t use negative lookahead in a regex.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/google-java-format/commit/81650924a7e3cb10bc156f822018417642f1fe31\"\u003e\u003ccode\u003e8165092\u003c/code\u003e\u003c/a\u003e Add --google-style to select Google Style\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/google-java-format/commit/ed872072f70c5956bbe1eafc4c5834830309be23\"\u003e\u003ccode\u003eed87207\u003c/code\u003e\u003c/a\u003e Use inherited EMPTY_RANGE in JavaOutput to eliminate Formatter dependency.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/google-java-format/commit/4b088d248c524fcb93c23d174e271b69824f1c7b\"\u003e\u003ccode\u003e4b088d2\u003c/code\u003e\u003c/a\u003e Replace calls to \u003ccode\u003eRunnables.doNothing()\u003c/code\u003e with a do-nothing lambda, \u003ccode\u003e() -\u0026gt; {}\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/google-java-format/commit/b291d957157c737ee6ac9574c1ea9c8c0ec077c2\"\u003e\u003ccode\u003eb291d95\u003c/code\u003e\u003c/a\u003e Fix duplicate blank lines before \u003ccode\u003eM O E\u003c/code\u003e end strip comment tag\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/google-java-format/commit/c6c150d775215ac01f96107b707eb59ddc6f6a1d\"\u003e\u003ccode\u003ec6c150d\u003c/code\u003e\u003c/a\u003e Move google-java-format settings page to Tools section.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/google-java-format/commit/4b3d373162c10973a87e4ecde19830ae6d22d34c\"\u003e\u003ccode\u003e4b3d373\u003c/code\u003e\u003c/a\u003e Bump the dependencies group across 1 directory with 2 updates\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/google/google-java-format/compare/v1.36.1...v1.37.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` from 33.7.1-jre to 33.7.2-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.2\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.2-jre\u0026lt;/version\u0026gt;\n  \u0026lt;!-- or, for Android: --\u0026gt;\n  \u0026lt;version\u0026gt;33.7.2-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.2-jre/guava-33.7.2-jre.jar\"\u003e33.7.2-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.2-android/guava-33.7.2-android.jar\"\u003e33.7.2-android.jar\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eGuava requires\n\u003ca href\u003d\"https://github.com/google/guava/wiki/UseGuavaInYourBuild#what-about-guavas-own-dependencies\"\u003eone runtime dependency\u003c/a\u003e,\nwhich 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.2-jre/api/docs/\"\u003e33.7.2-jre\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://guava.dev/releases/33.7.2-android/api/docs/\"\u003e33.7.2-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.2-jre/api/diffs/\"\u003e33.7.2-jre vs. 33.7.1-jre\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://guava.dev/releases/33.7.2-android/api/diffs/\"\u003e33.7.2-android vs. 33.7.1-android\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://guava.dev/releases/33.7.2-android/api/androiddiffs/\"\u003e33.7.2-android vs. 33.7.2-jre\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3\u003eChangelog\u003c/h3\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ccode\u003ecollect\u003c/code\u003e: Changed \u003ccode\u003eMapMaker\u003c/code\u003e, \u003ccode\u003eCompactHashMap\u003c/code\u003e, and \u003ccode\u003eCompactHashSet\u003c/code\u003e deserialization to \u003ca href\u003d\"https://github.com/google/guava/security/advisories/GHSA-xxph-c9ww-hj94\"\u003eavoid eagerly allocating as much memory as a serialization payload requests\u003c/a\u003e (\u003ca href\u003d\"https://www.cve.org/CVERecord?id\u003dCVE-2026-102554\"\u003eCVE-2026-102554\u003c/a\u003e). (a0d0c36432)\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\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 `joda-time:joda-time` from 2.14.4 to 2.15.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/JodaOrg/joda-time/releases\"\u003ejoda-time:joda-time\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v2.15.0\u003c/h2\u003e\n\u003cp\u003eSee the \u003ca href\u003d\"https://www.joda.org/joda-time/changes-report.html#a2.15.0\"\u003echange notes\u003c/a\u003e for more information.\u003c/p\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix DelegatedDurationField by \u003ca href\u003d\"https://github.com/jodastephen\"\u003e\u003ccode\u003e@​jodastephen\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/JodaOrg/joda-time/pull/838\"\u003eJodaOrg/joda-time#838\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate time zone data to 2026egtz by \u003ca href\u003d\"https://github.com/jodastephen\"\u003e\u003ccode\u003e@​jodastephen\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/JodaOrg/joda-time/pull/841\"\u003eJodaOrg/joda-time#841\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href\u003d\"https://github.com/JodaOrg/joda-time/compare/v2.14.4...v2.15.0\"\u003ehttps://github.com/JodaOrg/joda-time/compare/v2.14.4...v2.15.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/JodaOrg/joda-time/commit/5ffcf3c2bce34c95207ef2746229a40a932afeee\"\u003e\u003ccode\u003e5ffcf3c\u003c/code\u003e\u003c/a\u003e Release v2.15.0\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/JodaOrg/joda-time/commit/d6135ac0ba1d2ec4193cfc8cf93a9fc6159e1844\"\u003e\u003ccode\u003ed6135ac\u003c/code\u003e\u003c/a\u003e Update time zone data to 2026egtz (\u003ca href\u003d\"https://redirect.github.com/JodaOrg/joda-time/issues/841\"\u003e#841\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/JodaOrg/joda-time/commit/4b7867a245ad7f3327f6dd09c36fbb913d234feb\"\u003e\u003ccode\u003e4b7867a\u003c/code\u003e\u003c/a\u003e Fix DelegatedDurationField (\u003ca href\u003d\"https://redirect.github.com/JodaOrg/joda-time/issues/838\"\u003e#838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/JodaOrg/joda-time/commit/9c34f03b79ea70cd63ddf8ab88723805c872d7a1\"\u003e\u003ccode\u003e9c34f03\u003c/code\u003e\u003c/a\u003e Fix changes.xml\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href\u003d\"https://github.com/JodaOrg/joda-time/compare/v2.14.4...v2.15.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.checkerframework:checker-qual` from 4.2.3 to 4.3.0\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.3.0\u003c/h2\u003e\n\u003ch2\u003eVersion 4.3.0 (2026-10-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eThe new Modifiability Checker warns when a program might throw \u003ccode\u003eUnsupportedOperationException\u003c/code\u003e at run time because it calls a mutating method on a collection that does not support the method.\u003c/p\u003e\n\u003cp\u003eThe new \u003ccode\u003ewpi2.sh\u003c/code\u003e script does whole-program inference, but requires buildfile edits.\u003c/p\u003e\n\u003cp\u003ePurity Checker:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRenamed message keys \u003ccode\u003epurity.not.deterministic.X\u003c/code\u003e, \u003ccode\u003epurity.not.sideeffectfree.X\u003c/code\u003e, and \u003ccode\u003epurity.not.deterministic.not.sideeffectfree.X\u003c/code\u003e to \u003ccode\u003epurity.X\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AcheckPurityAnnotations\u003c/code\u003e issues warnings that it missed previously.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe Checker Framework runs under JDK 27 -- that is, it runs on a version 27 JVM.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework runs noticeably faster, due to performance tuning.\u003c/p\u003e\n\u003cp\u003eThe HTML version of the manual has a new look.  In addition to the single-page version, there is a \u003ca href\u003d\"https://checkerframework.org/manual/manual-multipage.html\"\u003emulti-page version\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eChanges for type system implementers\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eJavaParserUtil\u003c/code\u003e: moved \u003ccode\u003eDEFAULT_LANGUAGE_LEVEL\u003c/code\u003e, \u003ccode\u003eparseCompilationUnit()\u003c/code\u003e, \u003ccode\u003eparseStubUnit()\u003c/code\u003e, and \u003ccode\u003eparseExpression()\u003c/code\u003e into new class \u003ccode\u003eStaticJavaParserUtil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eRenamed \u003ccode\u003eAnnotatedTypes.innerMostType()\u003c/code\u003e to \u003ccode\u003einnermostComponentType()\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eRemoved the unused method\n\u003ccode\u003eWholeProgramInferenceScenesStorage.updateAnnotationSetInScene()\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eMethods that used to return (or accept) an \u003ccode\u003eIPair\u003c/code\u003e now use a record with meaningful component names.\u003c/p\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/294\"\u003e#294\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/1170\"\u003e#1170\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/1184\"\u003e#1184\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/1256\"\u003e#1256\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/1440\"\u003e#1440\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/1444\"\u003e#1444\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/1669\"\u003e#1669\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/2090\"\u003e#2090\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/2172\"\u003e#2172\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/2429\"\u003e#2429\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/2448\"\u003e#2448\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/2561\"\u003e#2561\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/2637\"\u003e#2637\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/2704\"\u003e#2704\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/2722\"\u003e#2722\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/2770\"\u003e#2770\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/2896\"\u003e#2896\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/2995\"\u003e#2995\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/3015\"\u003e#3015\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/3025\"\u003e#3025\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/3027\"\u003e#3027\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/3146\"\u003e#3146\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/3281\"\u003e#3281\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/3624\"\u003e#3624\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/4690\"\u003e#4690\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/4708\"\u003e#4708\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/4754\"\u003e#4754\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/5064\"\u003e#5064\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/5201\"\u003e#5201\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/6038\"\u003e#6038\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/6716\"\u003e#6716\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/6741\"\u003e#6741\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/6748\"\u003e#6748\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/6756\"\u003e#6756\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/6768\"\u003e#6768\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/6832\"\u003e#6832\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/6881\"\u003e#6881\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7023\"\u003e#7023\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7049\"\u003e#7049\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7064\"\u003e#7064\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7311\"\u003e#7311\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7683\"\u003e#7683\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8053\"\u003e#8053\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8054\"\u003e#8054\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8055\"\u003e#8055\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8167\"\u003e#8167\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8168\"\u003e#8168\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8169\"\u003e#8169\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8238\"\u003e#8238\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8261\"\u003e#8261\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8284\"\u003e#8284\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.3.0 (2026-10-01)\u003c/h2\u003e\n\u003ch3\u003eUser-visible changes\u003c/h3\u003e\n\u003cp\u003eThe new Modifiability Checker warns when a program might throw\n\u003ccode\u003eUnsupportedOperationException\u003c/code\u003e at run time because it calls a mutating method on\na collection that does not support the method.\u003c/p\u003e\n\u003cp\u003eThe new \u003ccode\u003ewpi2.sh\u003c/code\u003e script does whole-program inference, but requires buildfile edits.\u003c/p\u003e\n\u003cp\u003ePurity Checker:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003eRenamed message keys \u003ccode\u003epurity.not.deterministic.X\u003c/code\u003e,\n\u003ccode\u003epurity.not.sideeffectfree.X\u003c/code\u003e, and\n\u003ccode\u003epurity.not.deterministic.not.sideeffectfree.X\u003c/code\u003e to \u003ccode\u003epurity.X\u003c/code\u003e.\u003c/li\u003e\n\u003cli\u003e\u003ccode\u003e-AcheckPurityAnnotations\u003c/code\u003e issues warnings that it missed previously.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003eThe Checker Framework runs under JDK 27 -- that is, it runs on a version 27 JVM.\u003c/p\u003e\n\u003cp\u003eThe Checker Framework runs noticeably faster, due to performance tuning.\u003c/p\u003e\n\u003cp\u003eThe HTML version of the manual has a new look.  In addition to the\nsingle-page version, there is a\n\u003ca href\u003d\"https://checkerframework.org/manual/manual-multipage.html\"\u003emulti-page version\u003c/a\u003e.\u003c/p\u003e\n\u003ch3\u003eChanges for type system implementers\u003c/h3\u003e\n\u003cp\u003e\u003ccode\u003eJavaParserUtil\u003c/code\u003e: moved \u003ccode\u003eDEFAULT_LANGUAGE_LEVEL\u003c/code\u003e, \u003ccode\u003eparseCompilationUnit()\u003c/code\u003e,\n\u003ccode\u003eparseStubUnit()\u003c/code\u003e, and \u003ccode\u003eparseExpression()\u003c/code\u003e into new class \u003ccode\u003eStaticJavaParserUtil\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eRenamed \u003ccode\u003eAnnotatedTypes.innerMostType()\u003c/code\u003e to \u003ccode\u003einnermostComponentType()\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eRemoved the unused method\n\u003ccode\u003eWholeProgramInferenceScenesStorage.updateAnnotationSetInScene()\u003c/code\u003e.\u003c/p\u003e\n\u003cp\u003eMethods that used to return (or accept) an \u003ccode\u003eIPair\u003c/code\u003e now use a record with\nmeaningful component names.\u003c/p\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/294\"\u003e#294\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/1170\"\u003e#1170\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/1184\"\u003e#1184\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/1256\"\u003e#1256\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/1440\"\u003e#1440\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/1444\"\u003e#1444\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/1669\"\u003e#1669\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/2090\"\u003e#2090\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/2172\"\u003e#2172\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/2429\"\u003e#2429\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/2448\"\u003e#2448\u003c/a\u003e,\n\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/2561\"\u003e#2561\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/2637\"\u003e#2637\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/2704\"\u003e#2704\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/2722\"\u003e#2722\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/2770\"\u003e#2770\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/2896\"\u003e#2896\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/2995\"\u003e#2995\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/3015\"\u003e#3015\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/3025\"\u003e#3025\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/3027\"\u003e#3027\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/3146\"\u003e#3146\u003c/a\u003e,\n\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/3281\"\u003e#3281\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/3624\"\u003e#3624\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/4690\"\u003e#4690\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/4708\"\u003e#4708\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/4754\"\u003e#4754\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/5064\"\u003e#5064\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/5201\"\u003e#5201\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/6038\"\u003e#6038\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/6716\"\u003e#6716\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/6741\"\u003e#6741\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/6748\"\u003e#6748\u003c/a\u003e,\n\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/6756\"\u003e#6756\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/6768\"\u003e#6768\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/6832\"\u003e#6832\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/6881\"\u003e#6881\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7023\"\u003e#7023\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7049\"\u003e#7049\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7064\"\u003e#7064\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7311\"\u003e#7311\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7683\"\u003e#7683\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8053\"\u003e#8053\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8054\"\u003e#8054\u003c/a\u003e,\n\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8055\"\u003e#8055\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8167\"\u003e#8167\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8168\"\u003e#8168\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8169\"\u003e#8169\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8238\"\u003e#8238\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8261\"\u003e#8261\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8284\"\u003e#8284\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/a850bea0dea81f29f8b11c1d566e36b67a28c6f3\"\u003e\u003ccode\u003ea850bea\u003c/code\u003e\u003c/a\u003e new release 4.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/2df7db6146bb2caff79a376dc893b0ac6b86c31e\"\u003e\u003ccode\u003e2df7db6\u003c/code\u003e\u003c/a\u003e Fix the module in links to Collections Javadoc\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/c714cde38316db5780f27b68ef8daa0e00bfdcf0\"\u003e\u003ccode\u003ec714cde\u003c/code\u003e\u003c/a\u003e Fix broken links in the lwarp-generated manuals (\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8312\"\u003e#8312\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/1014d08ed22948b442b6f5e5f1dcad4be169a46a\"\u003e\u003ccode\u003e1014d08\u003c/code\u003e\u003c/a\u003e Add the Modifiability Checker (\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8234\"\u003e#8234\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/3c6e9307c793cc4a3a954e128b89e72373c34946\"\u003e\u003ccode\u003e3c6e930\u003c/code\u003e\u003c/a\u003e Don\u0027t bound a fresh capture type variable by unresolved inference variables (...\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/cd86e5d99dbe09479c69c73817ecf12c9b21f4ac\"\u003e\u003ccode\u003ecd86e5d\u003c/code\u003e\u003c/a\u003e Prep for the release.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/0195f646c4b18b9f00f16a2f9d966fc147f9aacc\"\u003e\u003ccode\u003e0195f64\u003c/code\u003e\u003c/a\u003e Check a constructor\u0027s purity against its class\u0027s instance initializers  (\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8113\"\u003e#8113\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/93d602301e3132c44a35f955de1df576ff8c4fa1\"\u003e\u003ccode\u003e93d6023\u003c/code\u003e\u003c/a\u003e Add test cases for issues that are already fixed (\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8303\"\u003e#8303\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/9e0f60645f34ead037a13056685a411a1feb8fb3\"\u003e\u003ccode\u003e9e0f606\u003c/code\u003e\u003c/a\u003e Add test cases for issues that are already fixed (\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8302\"\u003e#8302\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/8a1a3aa1dd2aebc2c3db89275e438c98cce7b2af\"\u003e\u003ccode\u003e8a1a3aa\u003c/code\u003e\u003c/a\u003e Don\u0027t let an inference bound that ignores annotations override one that (\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/8285\"\u003e#8285\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.3...checker-framework-4.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMost Recent Ignore Conditions Applied to This Pull Request\u003c/summary\u003e\n\n| Dependency Name | Ignore Conditions |\n| --- | --- |\n| com.google.testparameterinjector:test-parameter-injector | [\u003e\u003d 1.8.a, \u003c 1.9] |\n\u003c/details\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/6193\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/google/error-prone/pull/6193 from google:dependabot/maven/dependencies-6cba56e4d0 44cac4bf3ed66f748d14d1d4082d879e56c79e21\nPiperOrigin-RevId: 997472080\n"
    },
    {
      "commit": "216a1d80954c970638a9c2dc1bbe73f70835135a",
      "tree": "dab997a0ca265ed41d0e830f79e04bd44ac98dc9",
      "parents": [
        "dc411bbefaa1bd7095d7cc91fa90a7c4b2ae443e"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Fri Oct 09 16:17:42 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Oct 09 16:19:04 2026"
      },
      "message": "[Reachability] support specification of subtrees whose return values are patched, yet are still inspected\n\nPiperOrigin-RevId: 996573467\n"
    },
    {
      "commit": "dc411bbefaa1bd7095d7cc91fa90a7c4b2ae443e",
      "tree": "8a20ed07a1c91d467209446abb675756316391d1",
      "parents": [
        "0e805f9b38fdfbd5c32f1a5e0abfeff590ceb331"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Thu Oct 08 20:40:28 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Oct 08 20:43:11 2026"
      },
      "message": "Deduplicate `KINDS_CONVERTIBLE_WITHOUT_BRACES` and `getHandledEnumValues` into `SwitchUtils`.\n\nPiperOrigin-RevId: 996042966\n"
    },
    {
      "commit": "0e805f9b38fdfbd5c32f1a5e0abfeff590ceb331",
      "tree": "39763d2458557c858236d81e89a6014e40f0e728",
      "parents": [
        "637f000f7f6a670703aa8920ea06fc9d9207be72"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Wed Oct 07 16:24:48 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Oct 07 16:26:41 2026"
      },
      "message": "Rip out `TypeCompatibility:AdditionalTypes`.\n\nPiperOrigin-RevId: 995158051\n"
    },
    {
      "commit": "637f000f7f6a670703aa8920ea06fc9d9207be72",
      "tree": "784dd8617f31efcb54572f33051bf5f48d5612b8",
      "parents": [
        "cb5f95567450362b85055b16ed0177fc64b19202"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Oct 07 09:10:31 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Oct 07 09:12:25 2026"
      },
      "message": "Validate `allowedPaths` and `allowedOnPath` in `Restriction` and tighten `SourcePathMatcher` validation\n\nValidate `allowedPaths` (`SourcePathMatcher.create`) and `allowedOnPath` (`Pattern.compile`) at annotation declaration sites in `Restriction.validateAnnotation`.\n\nPiperOrigin-RevId: 994953147\n"
    },
    {
      "commit": "cb5f95567450362b85055b16ed0177fc64b19202",
      "tree": "b47f09c6b753cc79e22ee260b496a3249c52fa4b",
      "parents": [
        "5e905a34e3926151af6673ec8d3949c22f807147"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Wed Oct 07 08:32:55 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Oct 07 08:34:34 2026"
      },
      "message": "Extend NonRuntimeAnnotation to cover more APIs.\n\nPiperOrigin-RevId: 994933706\n"
    },
    {
      "commit": "5e905a34e3926151af6673ec8d3949c22f807147",
      "tree": "d7565306286c075511f9f0791cc51e6d2eed73fe",
      "parents": [
        "dcf3dbea9b89f9d07a3df5419776d0dac796601a"
      ],
      "author": {
        "name": "Error Prone Team",
        "email": "java-team-github-bot@google.com",
        "time": "Wed Oct 07 05:15:46 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Oct 07 05:17:30 2026"
      },
      "message": "Replace redundant casts with existing instanceof pattern bindings.\n\nPreviously, `PatternMatchingInstanceof` ignored `instanceof` expressions that already introduced a pattern variable. However, code within the scope of a pattern-matching `instanceof` may still contain redundant casts of the tested expression to the same type, such as when only some usages in a block were migrated to use the pattern variable. Extending the check to replace these remaining casts with the existing binding eliminates the redundant casts when the pattern variable is not reassigned.\n\nPiperOrigin-RevId: 994845970\n"
    },
    {
      "commit": "dcf3dbea9b89f9d07a3df5419776d0dac796601a",
      "tree": "491ed1991b12a3f835e7af05c3b26d881d2208c9",
      "parents": [
        "74bbd03061f05ab7754dd4c3b44875b48b5f1e0e"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Wed Oct 07 01:28:00 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Oct 07 01:29:32 2026"
      },
      "message": "Add a[] for redundant casts with existing instanceof pattern bindings.\n\nCurrently, `PatternMatchingInstanceof` ignores `instanceof` expressions that already introduce a pattern variable, leaving redundant casts of the tested expression to the same type within the scope of the pattern binding unflagged.\n\nPiperOrigin-RevId: 994756247\n"
    },
    {
      "commit": "74bbd03061f05ab7754dd4c3b44875b48b5f1e0e",
      "tree": "4a6127ebc68491387ee28692d143203e911f38ad",
      "parents": [
        "f9edd2e3906ff3b5ed35d1a6feb4de9d3e0f7037"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Oct 06 13:51:01 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Oct 06 13:52:33 2026"
      },
      "message": "Use ErroneousTree in UnrecognisedJavadocTag to avoid false positives in Markdown Javadoc\n\nWhen a {@code} or {@link} inline tag is malformed in either traditional (/**) or Markdown (///) Javadoc, DocCommentParser produces an ErroneousTree starting at the tag, whereas {@code}/{@link} inside Markdown code spans or code blocks are kept inside RawTextTree nodes without producing ErroneousTree.\n\nAlso avoid treating Markdown Javadoc (///) lines as multi-line // BUG: comment continuations in DiagnosticTestHelper.\n\nPiperOrigin-RevId: 994364559\n"
    },
    {
      "commit": "f9edd2e3906ff3b5ed35d1a6feb4de9d3e0f7037",
      "tree": "299b37a2ebe010b796d14361f3b0053706617d29",
      "parents": [
        "2534033e8b410f9451c326f3969b066fcbba5e3e"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Mon Oct 05 18:29:09 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Oct 05 18:34:12 2026"
      },
      "message": "Add runtime null checks of the return value in `getReturnType`, `getReceiverType`, and `getAnnotationMirror`.\n\nPiperOrigin-RevId: 993806458\n"
    },
    {
      "commit": "2534033e8b410f9451c326f3969b066fcbba5e3e",
      "tree": "1deab64dde72c3fb5ebe43b31290aacbeacbd724",
      "parents": [
        "bfb9d882d534676200f1c6d36b76d6e026b8f11b"
      ],
      "author": {
        "name": "Éamonn McManus",
        "email": "emcmanus@google.com",
        "time": "Mon Oct 05 17:57:27 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Oct 05 17:58:51 2026"
      },
      "message": "Extract test setup code from `assertThrows` calls.\n\nWe are specifically testing that `.doTest()` throws an exception. Having `.addSourceLines` etc also inside the `assertThrows` obscures that.\n\nPiperOrigin-RevId: 993788055\n"
    },
    {
      "commit": "bfb9d882d534676200f1c6d36b76d6e026b8f11b",
      "tree": "d0bc3dd133c135d45ba4e7058f294458f114ec8b",
      "parents": [
        "28a7f2ddebdf37917edab030f891b0b757eefa25"
      ],
      "author": {
        "name": "Vladimir Sitnikov",
        "email": "sitnikov.vladimir@gmail.com",
        "time": "Mon Oct 05 17:19:49 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Oct 05 17:21:02 2026"
      },
      "message": "Report every line that fails its expectation in `CompilationTestHelper`.\n\nWhen several lines of a source given to `CompilationTestHelper` failed their expectations, the test failure named only the first of them. `DiagnosticTestHelper.assertHasDiagnosticOnAllMatchingLines` threw at the first mismatched line, so each further mismatch showed up only after the previous one was fixed and the test was run again. For a source with markers on lines 4 and 8 and no diagnostics, the failure was:\n\n```text\nDid not see an error on line 4 matching DeadException. There were no errors.\n```\n\nFixes #6116.\n\nThe helper now checks every line of every source and fails once, with one message for each line that fails, followed by the list of all diagnostics:\n\n```text\nSaw unexpected error on line 3.\nSaw unexpected error on line 6.\nAll errors:\n/Test.java:3: error: [ReturnTreeChecker] Method may return normally.\n    return true;\n    ^\n    (see https://errorprone.info/bugpattern/ReturnTreeChecker)\n\n/Test.java:6: error: [ReturnTreeChecker] Method may return normally.\n    return false;\n    ^\n    (see https://errorprone.info/bugpattern/ReturnTreeChecker)\n```\n\nA line\u0027s message is the one the helper printed for it before, naming the first expectation the line fails: a marker that names a key missing from `expectErrorMessage`, a missing diagnostic, a diagnostic without the check name, or an unexpected diagnostic. Where the test compiles more than one source, each message starts with the source\u0027s name, because a line number no longer says which file it belongs to. `assertHasDiagnosticOnAllMatchingLines` keeps its signature and reports all mismatches in its source the same way.\n\n`CompilationTestHelperTest` has five new tests, which fail on the current master: two marked lines without diagnostics, two unexpected diagnostics, an unexpected diagnostic before a missing one, an unknown key together with another mismatch, and mismatches in two sources. `fileWithSyntaxErrorFails` now also asserts the message for a diagnostic without the check name.\n\nAssisted-by: Claude Code (claude-opus-5)\n\nFixes https://github.com/google/error-prone/pull/6117\n\nRELNOTES\u003dn/a\nPiperOrigin-RevId: 993765737\n"
    },
    {
      "commit": "28a7f2ddebdf37917edab030f891b0b757eefa25",
      "tree": "4bd653fca8b14e41d692d80c8513b0cd6a002337",
      "parents": [
        "7e915d1a7d92f667210709a4185cca77d3139c55"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Mon Oct 05 15:53:37 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Oct 05 15:55:31 2026"
      },
      "message": "[Reachability] apply the no-`default` rule only to switch statements that are not enhanced\n\nPiperOrigin-RevId: 993715333\n"
    },
    {
      "commit": "7e915d1a7d92f667210709a4185cca77d3139c55",
      "tree": "7d53f2df0b132a87ab9fa4d1faeb50bfa1df28ce",
      "parents": [
        "930e544949e9ba5a0f3f877dfcfe126343f484c2"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Mon Oct 05 15:23:09 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Oct 05 15:24:40 2026"
      },
      "message": "[Reachability] document that the no-`default` rule is applied to enhanced switch statements\n\nPiperOrigin-RevId: 993699958\n"
    },
    {
      "commit": "930e544949e9ba5a0f3f877dfcfe126343f484c2",
      "tree": "62330e540812443918459918c247101191b790bc",
      "parents": [
        "8719fb71d03de3f5736d2204a304e8bc0cb01efc"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Mon Oct 05 14:55:57 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Oct 05 14:57:29 2026"
      },
      "message": "Remove `@Nullable` from return type of `ASTHelpers.getFileNameFromUri` and `getFileName`.\n\nAnd throw an exception in the impossible(?) cases in which we would previously have returned `null`.\n\nPiperOrigin-RevId: 993685927\n"
    },
    {
      "commit": "8719fb71d03de3f5736d2204a304e8bc0cb01efc",
      "tree": "252e9f60c5b351a6d74f02a575d1711a18febf97",
      "parents": [
        "1a82c75bfe61cf057cc7afc0f7f2bc6f2fb4a073"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Oct 05 14:36:25 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Oct 05 14:38:08 2026"
      },
      "message": "Bump the dependencies group with 2 updates\n\nBumps the dependencies group with 2 updates: [org.mockito:mockito-core](https://github.com/mockito/mockito) and [com.github.ben-manes.caffeine:caffeine](https://github.com/ben-manes/caffeine).\n\nUpdates `org.mockito:mockito-core` from 5.23.0 to 5.24.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/mockito/mockito/releases\"\u003eorg.mockito:mockito-core\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev5.24.0\u003c/h2\u003e\n\u003cp\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003cem\u003eChangelog generated by \u003ca href\u003d\"https://github.com/shipkit/shipkit-changelog\"\u003eShipkit Changelog Gradle Plugin\u003c/a\u003e\u003c/em\u003e\u003c!-- raw HTML omitted --\u003e\u003c!-- raw HTML omitted --\u003e\u003c/p\u003e\n\u003ch4\u003e5.24.0\u003c/h4\u003e\n\u003cul\u003e\n\u003cli\u003e2026-09-23 - \u003ca href\u003d\"https://github.com/mockito/mockito/compare/v5.23.0...v5.24.0\"\u003e27 commit(s)\u003c/a\u003e by Andrei Solntsev, DragonFSKY, Hünkar Can Tunç, Joshua Selbo, M. Minot, Markus Gaisbauer, Mirko Alicastro, Vinod Kumar M ( codingkiddo ), dependabot[bot]\u003c/li\u003e\n\u003cli\u003eFix Mockito docs for -javaagent flag with Gradle [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3866\"\u003e#3866\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3866\"\u003emockito/mockito#3866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eKotlin example for adding Mockito as an agent is incorrect [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3864\"\u003e#3864\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3864\"\u003emockito/mockito#3864\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump graalvm/setup-graalvm from 1.6.3 to 1.6.6 [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3862\"\u003e#3862\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3862\"\u003emockito/mockito#3862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump gradle/actions from 6.2.0 to 6.3.0 [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3852\"\u003e#3852\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3852\"\u003emockito/mockito#3852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump gradle/actions from 5 to 6.2.0 [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3851\"\u003e#3851\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3851\"\u003emockito/mockito#3851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePreserve method parameters when clearing inline mocks [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3847\"\u003e#3847\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3847\"\u003emockito/mockito#3847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump graalvm/setup-graalvm from 1.6.0 to 1.6.3 [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3845\"\u003e#3845\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3845\"\u003emockito/mockito#3845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrint object fields via reflection when \u003ccode\u003etoString()\u003c/code\u003e is not implemented [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3844\"\u003e#3844\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3844\"\u003emockito/mockito#3844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMigrate extensions-tests to JUnit Jupiter [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3840\"\u003e#3840\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3840\"\u003emockito/mockito#3840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump graalvm/setup-graalvm from 1.5.6 to 1.6.0 [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3839\"\u003e#3839\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3839\"\u003emockito/mockito#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003edocs(when-verify): fixes to explanations about redundancy [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3838\"\u003e#3838\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3838\"\u003emockito/mockito#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eConfusing inconsistency in example method calls in “stubbing and verifying is redundant” note of “when” and “verify” Javadoc [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3837\"\u003e#3837\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3837\"\u003emockito/mockito#3837\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump actions/checkout from 6 to 7 [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3836\"\u003e#3836\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3836\"\u003emockito/mockito#3836\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/2740\"\u003e#2740\u003c/a\u003e : Add mockMaker option to \u003ccode\u003e@Spy\u003c/code\u003e annotation [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3835\"\u003e#3835\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3835\"\u003emockito/mockito#3835\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump graalvm/setup-graalvm from 1.5.5 to 1.5.6 [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3834\"\u003e#3834\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3834\"\u003emockito/mockito#3834\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump graalvm/setup-graalvm from 1.5.4 to 1.5.5 [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3833\"\u003e#3833\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3833\"\u003emockito/mockito#3833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump codecov/codecov-action from 6 to 7 [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3831\"\u003e#3831\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3831\"\u003emockito/mockito#3831\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump graalvm/setup-graalvm from 1.4.5 to 1.5.4 [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3830\"\u003e#3830\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3830\"\u003emockito/mockito#3830\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix clearInlineMocks not de-registering singleton mocks [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3829\"\u003e#3829\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3829\"\u003emockito/mockito#3829\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix NotAMockException when using mockSingleton with MockitoJUnit [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3827\"\u003e#3827\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3827\"\u003emockito/mockito#3827\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eNotAMockException when using mockSingleton with MockitoSession or MockitoJUnit [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3826\"\u003e#3826\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3826\"\u003emockito/mockito#3826\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImprove Gradle agent docs for configuration cache [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3823\"\u003e#3823\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3823\"\u003emockito/mockito#3823\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eGradle documentation for setting up instrumentation with Gradle configuration cache [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3822\"\u003e#3822\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3822\"\u003emockito/mockito#3822\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3818\"\u003e#3818\u003c/a\u003e : Fix data race in InvocationContainerImpl.invocationForStubbing [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3819\"\u003e#3819\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3819\"\u003emockito/mockito#3819\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eData race on invocationForPotentialStubbing [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3818\"\u003e#3818\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3818\"\u003emockito/mockito#3818\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3814\"\u003e#3814\u003c/a\u003e : implement package-level clinit suppression [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3815\"\u003e#3815\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3815\"\u003emockito/mockito#3815\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePackage-level clinit suppression [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3814\"\u003e#3814\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3814\"\u003emockito/mockito#3814\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eUpgrade Android Gradle Plugin to 8.13.2 [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3812\"\u003e#3812\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3812\"\u003emockito/mockito#3812\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReplaces raw generic types with type parameters [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3806\"\u003e#3806\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3806\"\u003emockito/mockito#3806\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/2398\"\u003e#2398\u003c/a\u003e : Implement global suppress static initialization leveraging java agent [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3801\"\u003e#3801\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3801\"\u003emockito/mockito#3801\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eBump codecov/codecov-action from 5 to 6 [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3800\"\u003e#3800\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3800\"\u003emockito/mockito#3800\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFix non-deterministic AssertionError when using MockMakers.SUBCLASS (\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3406\"\u003e#3406\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/2823\"\u003e#2823\u003c/a\u003e) [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3795\"\u003e#3795\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3795\"\u003emockito/mockito#3795\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3536\"\u003e#3536\u003c/a\u003e : Implement SpyStatic API [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3794\"\u003e#3794\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/pull/3794\"\u003emockito/mockito#3794\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eThe class\u0027s MethodParameters are removed after clearAllCaches is invoked [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3763\"\u003e#3763\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3763\"\u003emockito/mockito#3763\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e[FeatureRequest / Idea] Create Mockito.spyStatic [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3536\"\u003e#3536\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3536\"\u003emockito/mockito#3536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdd option to specify mockmaker for \u003ccode\u003e@Spy\u003c/code\u003e [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/2740\"\u003e#2740\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/2740\"\u003emockito/mockito#2740\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eHow can I suppress static initializer? [(\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/2398\"\u003e#2398\u003c/a\u003e)](\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/2398\"\u003emockito/mockito#2398\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/mockito/mockito/commit/5a2f0f81cdafc9b34ddb4520db7f8866c787dac0\"\u003e\u003ccode\u003e5a2f0f8\u003c/code\u003e\u003c/a\u003e Fix Mockito docs for -javaagent flag with Gradle (\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3866\"\u003e#3866\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/mockito/mockito/commit/9c5f36fb9f2ad89fbaab828d33d144cd398a4079\"\u003e\u003ccode\u003e9c5f36f\u003c/code\u003e\u003c/a\u003e Bump graalvm/setup-graalvm from 1.6.3 to 1.6.6 (\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3862\"\u003e#3862\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/mockito/mockito/commit/e7fd06dda31daf0c71ad1dedc76ffc9f8ecf6973\"\u003e\u003ccode\u003ee7fd06d\u003c/code\u003e\u003c/a\u003e Preserve method parameters when clearing inline mocks (\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3847\"\u003e#3847\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/mockito/mockito/commit/5a676bcd9ef9a10db46e1dc34e190eb46faa2687\"\u003e\u003ccode\u003e5a676bc\u003c/code\u003e\u003c/a\u003e Bump gradle/actions from 6.2.0 to 6.3.0 (\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3852\"\u003e#3852\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/mockito/mockito/commit/508f8e78f5ac5ed9f23f7b92b01de76752120a67\"\u003e\u003ccode\u003e508f8e7\u003c/code\u003e\u003c/a\u003e Bump gradle/actions from 5 to 6.2.0 (\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3851\"\u003e#3851\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/mockito/mockito/commit/ee8a330da0218f32d5964acdeaa3ac39e2c6ce14\"\u003e\u003ccode\u003eee8a330\u003c/code\u003e\u003c/a\u003e Print object fields via reflection when \u003ccode\u003etoString()\u003c/code\u003e is not implemented (\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3844\"\u003e#3844\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/mockito/mockito/commit/39b1aba6e6cc92d8ad3c812dcc16ed357c9fbc85\"\u003e\u003ccode\u003e39b1aba\u003c/code\u003e\u003c/a\u003e Bump graalvm/setup-graalvm from 1.6.0 to 1.6.3 (\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3845\"\u003e#3845\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/mockito/mockito/commit/d8638e1a8b67b4acea63c80dc85d62eda4ef57f5\"\u003e\u003ccode\u003ed8638e1\u003c/code\u003e\u003c/a\u003e Migrate extensions-tests to JUnit Jupiter (\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3840\"\u003e#3840\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/mockito/mockito/commit/0aab922fa4c8967e50613671f58c707a69606c62\"\u003e\u003ccode\u003e0aab922\u003c/code\u003e\u003c/a\u003e Bump graalvm/setup-graalvm from 1.5.6 to 1.6.0 (\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3839\"\u003e#3839\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/mockito/mockito/commit/f3cf74c7e1106f7d32299001ca0ecf2c492c468c\"\u003e\u003ccode\u003ef3cf74c\u003c/code\u003e\u003c/a\u003e docs(when-verify): fixes to explanations about redundancy (\u003ca href\u003d\"https://redirect.github.com/mockito/mockito/issues/3838\"\u003e#3838\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/mockito/mockito/compare/v5.23.0...v5.24.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `com.github.ben-manes.caffeine:caffeine` from 3.2.4 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/ben-manes/caffeine/releases\"\u003ecom.github.ben-manes.caffeine:caffeine\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eImproved read performance by avoiding false sharing in the fast-path check\u003c/li\u003e\n\u003cli\u003eImproved \u003ca href\u003d\"https://ben-manes.github.io/caffeine/wiki/adaptive-window.html\"\u003eadaptive climber\u003c/a\u003e for small caches and shifting workloads\u003c/li\u003e\n\u003cli\u003eFixed various minor issues found using AI audits\u003c/li\u003e\n\u003cli\u003eFixed over-aggressive refresh discard (\u003ca href\u003d\"https://redirect.github.com/ben-manes/caffeine/issues/1970\"\u003e#1970\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/ben-manes/caffeine/commit/af860110a4b1e158d30ef0ccdd78a1600bdbde0d\"\u003e\u003ccode\u003eaf86011\u003c/code\u003e\u003c/a\u003e fix jcache audit triage\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/ben-manes/caffeine/commit/f063e56a0edb0369b29fc37a9c283cd317f303f2\"\u003e\u003ccode\u003ef063e56\u003c/code\u003e\u003c/a\u003e Prevent overflow in snapshot durations\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/ben-manes/caffeine/commit/5b6fbd94f0e0d5727b0ffba52ba0365f5e793eb5\"\u003e\u003ccode\u003e5b6fbd9\u003c/code\u003e\u003c/a\u003e Saturate the audit stillness counter\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/ben-manes/caffeine/commit/48cb4083684d6decb4841e9502f419d08128f6dc\"\u003e\u003ccode\u003e48cb408\u003c/code\u003e\u003c/a\u003e Read lazy cache views and policies once\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/ben-manes/caffeine/commit/4978d1835234114a0a8568b1000be5a4de6360b7\"\u003e\u003ccode\u003e4978d18\u003c/code\u003e\u003c/a\u003e Normalize JCache processor loader failures\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/ben-manes/caffeine/commit/c9038d8fa3084bfc45ac9f5d222dfe2de7ba548a\"\u003e\u003ccode\u003ec9038d8\u003c/code\u003e\u003c/a\u003e Consume JCache iterator removals before listener failures\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/ben-manes/caffeine/commit/0b0afd2470294cae0b2a66b914e65c7733941ed6\"\u003e\u003ccode\u003e0b0afd2\u003c/code\u003e\u003c/a\u003e polish\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/ben-manes/caffeine/commit/c0edd00bb6063e59ee1e7a7db5588fac7a6524f5\"\u003e\u003ccode\u003ec0edd00\u003c/code\u003e\u003c/a\u003e restore coverage lost to recent fixes\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/ben-manes/caffeine/commit/5283c96dce60552f898af471b00a3cf54b69fa3e\"\u003e\u003ccode\u003e5283c96\u003c/code\u003e\u003c/a\u003e make CLOCK-Pro\u0027s cold hand a setting\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/ben-manes/caffeine/commit/d15c2052ecbf51c15981a3e4f61f8885d093ad0a\"\u003e\u003ccode\u003ed15c205\u003c/code\u003e\u003c/a\u003e make the bulk cache loaders serializable\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/ben-manes/caffeine/compare/v3.2.4...v3.3.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/6172\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/google/error-prone/pull/6172 from google:dependabot/maven/dependencies-aa4aa07ce8 ba5bacb60acf1eefa82264e7b8e647022525ef46\nPiperOrigin-RevId: 993676319\n"
    },
    {
      "commit": "1a82c75bfe61cf057cc7afc0f7f2bc6f2fb4a073",
      "tree": "ad73cc7288b346c5fb7894955a53fa737433d8b7",
      "parents": [
        "72b2ac855817e22ca391bd17838c8062671c6ccd"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Oct 05 09:51:16 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Oct 05 09:53:12 2026"
      },
      "message": "Stop stripping references to open-source annotations and libraries\n\nSeveral open-source libraries and annotations are available in external Error Prone builds or already depended upon in Maven builds, so stripping references to them is no longer necessary:\n- `WellKnownKeep`: Gson (`@Expose`, `@SerializedName`), []Mockito (`@[]Mock`), Guice `@Bind`, and Objectify (`@AlsoLoad`, `@Id`, `@Index`, `@OnLoad`, `@OnSave`, `@Parent`).\n- `UnusedMethod`: AutoFactory (`AutoFactory.AnnotationsToApply`).\n- `UnnecessaryQualifier`: Guice `AssistedInject`.\n- `StronglyType` and `PreferredInterfaceTypeTest`: Guice `@Bind`.\n- `JUnit4TestNotRun` and `ParametersButNotParameterized`: `TestParameterInjector`.\n\nPiperOrigin-RevId: 993562984\n"
    },
    {
      "commit": "72b2ac855817e22ca391bd17838c8062671c6ccd",
      "tree": "bf16948219a33f9bd7f4974eaafc0db37ada2f29",
      "parents": [
        "466cacdd0c69f9ba7e864eeea4ba059d91e16a53"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Fri Oct 02 20:27:42 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Oct 02 20:29:20 2026"
      },
      "message": "Use `SwitchUtils` from `StatementSwitchToExpressionSwitch`.\n\nPiperOrigin-RevId: 992505908\n"
    },
    {
      "commit": "466cacdd0c69f9ba7e864eeea4ba059d91e16a53",
      "tree": "9bcc27052392f1b8e02f288c7b819c8b5bd0a9f7",
      "parents": [
        "76ee1ad6aeea1ec5af1435a4041c16d587abf73a"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Fri Oct 02 19:33:40 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Oct 02 19:35:43 2026"
      },
      "message": "Move TestParameterInjector ErrorProne checks into a subpackage.\n\nMove `LoopToTestParameter`, `PreferTestParameter`, `SimplifyTestParameter`, and `TestParametersNotInitialized` (and their corresponding tests) from `com.google.errorprone.bugpatterns` into `com.google.errorprone.bugpatterns.testparameterinjector`.\n\nPiperOrigin-RevId: 992476193\n"
    },
    {
      "commit": "76ee1ad6aeea1ec5af1435a4041c16d587abf73a",
      "tree": "3722a428dcba32a2982e6993b95b6b2033b22c0c",
      "parents": [
        "aa13240f3839d217ca0a9ec21d6201a757b758cb"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Fri Oct 02 18:21:04 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Oct 02 18:22:52 2026"
      },
      "message": "[Reachability] ignore a jump that a `finally` block discards\n\nPiperOrigin-RevId: 992434510\n"
    },
    {
      "commit": "aa13240f3839d217ca0a9ec21d6201a757b758cb",
      "tree": "bbcbf2b5c74426936c87c867d04e67c8470f51a7",
      "parents": [
        "58d6ec3702ab9280d01b7bb23a80f876143611fb"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Fri Oct 02 17:35:45 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Oct 02 17:37:51 2026"
      },
      "message": "[Reachability] document that a jump discarded by a `finally` block is counted\n\nPiperOrigin-RevId: 992408331\n"
    },
    {
      "commit": "58d6ec3702ab9280d01b7bb23a80f876143611fb",
      "tree": "3439021b8aff36d8a4742b227cde97ad2cf5f5fa",
      "parents": [
        "51526ba38d213fccbad4dd75804bacfa0a58b217"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Thu Oct 01 13:27:23 2026"
      },
      "committer": {
        "name": "GitHub",
        "email": "noreply@github.com",
        "time": "Thu Oct 01 13:27:23 2026"
      },
      "message": "Bump the github-actions group with 2 updates (#6161)\n\nBumps the github-actions group with 2 updates: [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 6.0.0 to 6.0.1\n- [Release notes](https://github.com/actions/setup-java/releases)\n- [Commits](https://github.com/actions/setup-java/compare/dd06d9cba3e5552c54d9f8ea23572deb30010f7c...de7274f081f381c8f8158605e0321c36c376e2e6)\n\nUpdates `softprops/action-gh-release` from 3.0.2 to 3.0.3\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/3d0d9888cb7fd7b750713d6e236d1fcb99157228...efb35369e0ad2afab669f228072c1b0d510eae64)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-java\n  dependency-version: 6.0.1\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: github-actions\n- dependency-name: softprops/action-gh-release\n  dependency-version: 3.0.3\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\nCo-authored-by: dependabot[bot] \u003c49699333+dependabot[bot]@users.noreply.github.com\u003e"
    },
    {
      "commit": "51526ba38d213fccbad4dd75804bacfa0a58b217",
      "tree": "071bfa57e6ffdc3939e3925616d9538814466f15",
      "parents": [
        "cffc7da8f032f63eb88549a0d1a0621c0d2b984c"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Thu Oct 01 08:56:55 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Oct 01 08:58:12 2026"
      },
      "message": "Allow `Boolean` for the value type of `IdentityHashMap`.\n\nWhile it\u0027s true (unknown commit...) that `IdentityHashMap` uses `\u003d\u003d` even for comparing *values* (as in `containsValue(...)` or `entrySet().remove(...)`), that is at least far less likely to be the reason that users choose `IdentityHashMap`, which is normally used for `\u003d\u003d` comparisons on its _keys_.\n\nIt\u0027s perhaps still nice to check `IdentityHashMap` values in general—in part to raise awareness of this `\u003d\u003d` surprise. However, a common pattern is that of using `IdentityHashMap\u003cSomething, Boolean\u003e` to get an \"identity set,\" perhaps [using](https://github.com/google/guava/blob/4d41665af1b05bad09039b82cb2a1a474a7bceaf/guava/src/com/google/common/collect/Sets.java#L465) [`Collections.newSetFromMap`](https://docs.oracle.com/en/java/javase/27/docs/api/java.base/java/util/Collections.html#newSetFromMap(java.util.Map)) or perhaps [not](https://github.com/google/guava/blob/4d41665af1b05bad09039b82cb2a1a474a7bceaf/guava/src/com/google/common/collect/RegularImmutableMap.java#L147). In that case, the actual value is irrelevant; all that matters is whether a key is present or not.\n\nPiperOrigin-RevId: 991518553\n"
    },
    {
      "commit": "cffc7da8f032f63eb88549a0d1a0621c0d2b984c",
      "tree": "f5762d51e60c0f3c624bfeefbfd0b7011c36be82",
      "parents": [
        "61a1869c9b9f1b3a10784f8348e6d7b531913ad7"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Wed Sep 30 19:48:24 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Sep 30 19:49:41 2026"
      },
      "message": "[Reachability] account for a `break` that exits a labeled statement\n\nPiperOrigin-RevId: 991161609\n"
    },
    {
      "commit": "61a1869c9b9f1b3a10784f8348e6d7b531913ad7",
      "tree": "67ebe35b8f63d896c948ca43548b1b9e3764d27f",
      "parents": [
        "a46bdd2342b7f61f1d30c60cab1d53d7b8832d96"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Wed Sep 30 19:18:00 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Sep 30 19:19:38 2026"
      },
      "message": "[Reachability] document that a `break` out of a labeled statement is ignored\n\nPiperOrigin-RevId: 991143868\n"
    },
    {
      "commit": "a46bdd2342b7f61f1d30c60cab1d53d7b8832d96",
      "tree": "1d3e9fd4096e63a57b45229dc1a44cc65baa3d6d",
      "parents": [
        "72298a13738bc07a2cfea7ae57811198400a53e9"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Sep 30 17:26:50 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Sep 30 17:28:20 2026"
      },
      "message": "Allow pipe delimiter in SourcePathMatcher.\n\nSupport pipe-delimited paths in SourcePathMatcher (e.g. `path/a/|path/b/`). Each delimited component is trimmed, validated, and normalized according to prefix and exact path matching rules. Regex grouping with parentheses is explicitly rejected.\n\nPiperOrigin-RevId: 991072950\n"
    },
    {
      "commit": "72298a13738bc07a2cfea7ae57811198400a53e9",
      "tree": "98e512ab424294b0370932e1fb886b1eddab6368",
      "parents": [
        "7bf2ffcfd7ddd6de37b57b2f9072f467a500be34"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Wed Sep 30 16:00:32 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Sep 30 16:02:19 2026"
      },
      "message": "Make EqualsIncompatibleType and TruthIncompatibleType ignore yet more superclass `equals` declarations.\n\nAnd add a flag that allows users to specify a common list of classes whose `equals` declarations to ignore.\n\n(inspired by https://github.com/google/error-prone/pull/6108)\n\n(This list of types is from Gemini. It is probably excessive, with only `java.util.Collection` and the `java.time.chrono.*` types showing hits in our depot (and the latter only false positives from intentional negative `equals` tests). Feel free to tell me to remove specific types or to cut back more dramatically.)\n\nPiperOrigin-RevId: 991021464\n"
    },
    {
      "commit": "7bf2ffcfd7ddd6de37b57b2f9072f467a500be34",
      "tree": "bbf0e5e2b337600d9939be2870d5ac8994426250",
      "parents": [
        "0c98a603c179c1c7f980c93b44d283f773004668"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Wed Sep 30 15:06:37 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Sep 30 15:07:59 2026"
      },
      "message": "Tidy up unused files and deps for tests.\n\n- `ArrayHashCodePositiveCases2` was accidentally orphaned by unknown commit, which removed an entire test instead of just its `assumeTrue` guard.\n- `OrderingFromPositiveCases` is a leftover from when `OrderingFrom` was deleted back in unknown commit (to resolve https://github.com/google/error-prone/issues/239).\n\nPiperOrigin-RevId: 990994456\n"
    },
    {
      "commit": "0c98a603c179c1c7f980c93b44d283f773004668",
      "tree": "22de3650df4a9d7831b1ef4448a09976b4d4185e",
      "parents": [
        "0897de03cf2e95374ba629857258b10521af16ac"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Tue Sep 29 20:29:44 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Sep 29 20:31:33 2026"
      },
      "message": "Add SimplifyTestParameter check for exhaustive test parameters.\n\nWhen using TestParameterInjector, annotating a `boolean`, `Boolean`, or `Enum` parameter or field with `@TestParameter` automatically injects all possible values without needing to list them explicitly. `SimplifyTestParameter` flags `@TestParameter` annotations on booleans and enums that redundantly specify all values (e.g., `@TestParameter({\"true\", \"false\"}) boolean foo` or `@TestParameter({\"A\", \"B\"}) MyEnum bar`) and suggests replacing them with `@TestParameter`.\n\nPiperOrigin-RevId: 990495986\n"
    },
    {
      "commit": "0897de03cf2e95374ba629857258b10521af16ac",
      "tree": "dc18f893a494e197c89739d09c45f74843b84b58",
      "parents": [
        "57b47f1b9b3ea88287a6b5066123ee7850291e8c"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Tue Sep 29 20:02:47 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Sep 29 20:04:26 2026"
      },
      "message": "Fix a bug in the logic for finding `equals` methods for `*Builder` classes.\n\nThe code was looking for `toString` instead of `equals`.\n\nAlso, remove the enum special case from https://github.com/google/error-prone/commit/ef9146e1fd2112d3b6928d330e324cb861fd20d5, which appears to have unknowingly been a workaround for this bug.\n\nPiperOrigin-RevId: 990481306\n"
    },
    {
      "commit": "57b47f1b9b3ea88287a6b5066123ee7850291e8c",
      "tree": "12d2f33d9eedad754e2dd030dc03222a994585d8",
      "parents": [
        "c9ada4e013f43e8f94fef175f71cbae99666bcf7"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Tue Sep 29 13:37:52 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Sep 29 13:38:50 2026"
      },
      "message": "Refactor array and collection factory loops in LoopToTestParameter.\n\nPreviously, `LoopToTestParameter` only refactored enhanced `for` loops iterating over all values of an enum (such as `Enum.values()` or `EnumSet.allOf(...)`). Many parameterized-style test loops instead iterate over an explicit array initializer or collection factory call.\n\nExtend `LoopToTestParameter` to also refactor enhanced `for` loops over array initializers (`new Foo[] {...}`) and collection factory methods (`Arrays.asList`, `List.of`, `Set.of`, `ImmutableList.of`, `ImmutableSet.of`, and `EnumSet.of`) into `@TestParameter({\"...\"})` parameters when the loop variable is a supported `TestParameterInjector` type (`String`, `Enum`, or primitive/boxed `boolean`, `int`, `long`, `float`, `double`) and all elements are supported literals, enum constants, or `null`.\n\nPiperOrigin-RevId: 990270738\n"
    },
    {
      "commit": "c9ada4e013f43e8f94fef175f71cbae99666bcf7",
      "tree": "492aa60fb4a20eb8d4581aeea92d8cd8b6e2a89a",
      "parents": [
        "b99196ad0672b982d6f6914a08d48bf5ba9f1f0b"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Sep 28 19:05:17 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Sep 28 19:06:48 2026"
      },
      "message": "Stop stripping Javadoc `@snippet` handling\n\nError Prone targets JDK 21+ in open source, so `SnippetTree` / `@snippet` support in `UnescapedEntity` and `InvalidSnippet` no longer needs to be stripped.\n\nAddresses https://github.com/google/error-prone/issues/4914\n\nPiperOrigin-RevId: 989760586\n"
    },
    {
      "commit": "b99196ad0672b982d6f6914a08d48bf5ba9f1f0b",
      "tree": "3db74db56b4a88547f81584dd344ad55f8f659fe",
      "parents": [
        "19e4f0190d461fee1ec60e4955657e6af6a093b3"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sun Sep 27 17:02:16 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sun Sep 27 17:03:44 2026"
      },
      "message": "Bump the dependencies group with 4 updates\n\nBumps the dependencies group with 4 updates: com.google.testparameterinjector:test-parameter-injector, [com.google.protobuf:protobuf-java](https://github.com/protocolbuffers/protobuf), com.google.protobuf:protobuf-java-util and [joda-time:joda-time](https://github.com/JodaOrg/joda-time).\n\nUpdates `com.google.testparameterinjector:test-parameter-injector` from 1.22 to 1.23\n\nUpdates `com.google.protobuf:protobuf-java` from 4.36.1 to 4.36.2\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.1 to 4.36.2\n\nUpdates `com.google.protobuf:protobuf-java-util` from 4.36.1 to 4.36.2\n\nUpdates `joda-time:joda-time` from 2.14.3 to 2.14.4\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/JodaOrg/joda-time/releases\"\u003ejoda-time:joda-time\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eRelease v2.14.4\u003c/h2\u003e\n\u003cp\u003eSee the \u003ca href\u003d\"https://www.joda.org/joda-time/changes-report.html#a2.14.4\"\u003echange notes\u003c/a\u003e for more information.\u003c/p\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate time zone data to 2026dgtz by \u003ca href\u003d\"https://github.com/jodastephen\"\u003e\u003ccode\u003e@​jodastephen\u003c/code\u003e\u003c/a\u003e in \u003ca href\u003d\"https://redirect.github.com/JodaOrg/joda-time/pull/836\"\u003eJodaOrg/joda-time#836\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href\u003d\"https://github.com/JodaOrg/joda-time/compare/v2.14.3...v2.14.4\"\u003ehttps://github.com/JodaOrg/joda-time/compare/v2.14.3...v2.14.4\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/JodaOrg/joda-time/commit/13691681d373b246cbecb4030a703e3fa60cf1aa\"\u003e\u003ccode\u003e1369168\u003c/code\u003e\u003c/a\u003e Release v2.14.4\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/JodaOrg/joda-time/commit/b80254120c5b40626a31aefafefba51f6998b8c7\"\u003e\u003ccode\u003eb802541\u003c/code\u003e\u003c/a\u003e Update time zone data to 2026dgtz (\u003ca href\u003d\"https://redirect.github.com/JodaOrg/joda-time/issues/836\"\u003e#836\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/JodaOrg/joda-time/commit/d1ee10e1b855b403ae957e2a2765e41c450f7cdc\"\u003e\u003ccode\u003ed1ee10e\u003c/code\u003e\u003c/a\u003e Adjust to auto-release\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href\u003d\"https://github.com/JodaOrg/joda-time/compare/v2.14.3...v2.14.4\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003eMost Recent Ignore Conditions Applied to This Pull Request\u003c/summary\u003e\n\n| Dependency Name | Ignore Conditions |\n| --- | --- |\n| com.google.testparameterinjector:test-parameter-injector | [\u003e\u003d 1.8.a, \u003c 1.9] |\n\u003c/details\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/6148\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/google/error-prone/pull/6148 from google:dependabot/maven/dependencies-00b5fd4aa4 10a3692dc5ec32db839a08f2df57e3da181bb2e1\nPiperOrigin-RevId: 989223104\n"
    },
    {
      "commit": "19e4f0190d461fee1ec60e4955657e6af6a093b3",
      "tree": "ed93229f3cd2472831e925ef2a5118baca227d96",
      "parents": [
        "3d2511c299680f386e526057b01fcd0a9737f927"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Sat Sep 26 22:05:21 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sat Sep 26 22:06:37 2026"
      },
      "message": "Rip out `ImpossibleNullComparison:CheckClassForName` flag.\n\nPiperOrigin-RevId: 988944455\n"
    },
    {
      "commit": "3d2511c299680f386e526057b01fcd0a9737f927",
      "tree": "60714f985000919526e043e6ef4a1bc4bef99da8",
      "parents": [
        "21069e684be8a972b5be6ca392d594808ea0596a"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Sat Sep 26 02:13:58 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sat Sep 26 02:15:29 2026"
      },
      "message": "Rip out the flag controlling the new `Record.equals` handling in EqualsIncompatibleType.\n\n(from https://github.com/google/error-prone/pull/6108)\n\nPiperOrigin-RevId: 988626285\n"
    },
    {
      "commit": "21069e684be8a972b5be6ca392d594808ea0596a",
      "tree": "bd29fde1ede650edf04ec4bcfa3355d92610a7ef",
      "parents": [
        "e2f3b1d790dcb0f1d5338dbe1582ffcddfea9fda"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Fri Sep 25 16:30:33 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Sep 25 16:32:14 2026"
      },
      "message": "Tolerate changes in the `serialVersionUID` of `ImmutableClassToInstanceMap`.\n\nThe \"actual serialized form\" of `ImmutableClassToInstanceMap` did not change, but the automatically computed value did (probably from unknown commit or maybe even unknown commit).\n\nThis should fix https://github.com/google/guava/issues/8693 for \"plain Error Prone,\" but it\u0027s possible that PicnicSupermarket/error-prone-support would need a similar workaround. (Now, maybe we\u0027ll publish a new Guava release and pick it up in Error Prone before this CL makes it into an Error Prone release. Even if so, this CL should help anyone who publishes serialized Refaster templates built against Guava 33.7.0 or 33.7.1 and then runs them against a newer version of Guava in which the old `serialVersionUID` has been restored. And incidentally, at this point, I\u0027m not sure whether 33.7.2 will contain the old `serialVersionUID` or not.)\n\nThe decision to use Java serialization in Refaster [might not be the decision we\u0027d make today](https://github.com/google/error-prone/issues/1318#issuecomment-5819898415), but I\u0027m hoping that this change can get things working well enough in practice again.\n\nPiperOrigin-RevId: 988326174\n"
    },
    {
      "commit": "e2f3b1d790dcb0f1d5338dbe1582ffcddfea9fda",
      "tree": "f1d4eca17431168a4e401eb5c034b6741af3eb5e",
      "parents": [
        "49bcc80a6ec888ea9727d2c67ef14b8dce3fbcde"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Thu Sep 24 20:07:41 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Sep 24 20:09:00 2026"
      },
      "message": "[IfChainToSwitch] manage conflicting fixes when multiple `if`-chains are present\n\nPiperOrigin-RevId: 987703901\n"
    },
    {
      "commit": "49bcc80a6ec888ea9727d2c67ef14b8dce3fbcde",
      "tree": "8235e8557a09cbaf375ab59bf90710e6511b8475",
      "parents": [
        "e602d9f98ed2d6929c086286096115bd5c71588f"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Thu Sep 24 17:52:21 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Sep 24 17:53:43 2026"
      },
      "message": "[IfChainToSwitch] add tests demonstrating conflicting-fix bug, ahead of the fix\n\nPiperOrigin-RevId: 987614422\n"
    },
    {
      "commit": "e602d9f98ed2d6929c086286096115bd5c71588f",
      "tree": "bf904c1bd277e6d76091795abd7a44217117607b",
      "parents": [
        "7c992a1a9f492d0f9e57222fde750ad656f8073e"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Thu Sep 24 15:05:22 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Sep 24 15:06:36 2026"
      },
      "message": "Make `onlyTypeParameter` match only when there is only one type parameter, rather than matching any first type parameter.\n\nThe former behavior was loosened to the current behavior in https://github.com/google/error-prone/commit/ee5a9cb2f7fad12376801de44418dd7ada8b9722, but as best I can tell, we should still be checking for a size of one, rather than just for non-emptiness.\n\nThis change isn\u0027t prompted by anything further than that I happened to see this code.\n\nPiperOrigin-RevId: 987512426\n"
    },
    {
      "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"
    }
  ],
  "next": "674e2c86451e9b453d2213fd885228206ebc663f"
}
