)]}'
{
  "log": [
    {
      "commit": "3cf3c69711690b15acf8f720c85e3f50e45c0bdf",
      "tree": "5e35574c966a19e53405c9e7fb04acf0211bfd90",
      "parents": [
        "a0a382cdb96169e95aed289b21b9af3010bbb51a"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Aug 24 22:55:50 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Aug 24 22:57:59 2026"
      },
      "message": "Flag non-relational operations and unary negation on compareTo results in `CompareToZero`.\n\nThe `CompareToZero` bug pattern previously only flagged addition, subtraction, and specific comparisons on `compareTo` results. This change updates the check to flag all non-relational binary operations (including arithmetic, string concatenation, and bitwise operations) as well as unary negation (`-x.compareTo(y)`).\n\nSpecific diagnostic messages are added for arithmetic operations (clarifying `{-1, 0, +1}` range assumptions and overflow risks), unary negation, and general non-relational operations, recommending `Integer.signum`.\n\nThe check is temporarily disabled via Error Prone flags until depot violations are cleaned up.\n\nPiperOrigin-RevId: 970134346\n"
    },
    {
      "commit": "a0a382cdb96169e95aed289b21b9af3010bbb51a",
      "tree": "b67a7f819aafc6f2ab9e26176a73ef6e86c1617e",
      "parents": [
        "f7dabfa2f2914e0c720b1929119690df736c6514"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Aug 24 00:14:09 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Aug 24 00:16:06 2026"
      },
      "message": "Upgrade `CompareToZero` from a `WARNING` to an `ERROR`.\n\nPiperOrigin-RevId: 969535474\n"
    },
    {
      "commit": "f7dabfa2f2914e0c720b1929119690df736c6514",
      "tree": "fe6758ed722d8712b09d30eade25e0180b18d687",
      "parents": [
        "984f6adb6ab11291d6fc200b18726c35937b0ccb"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Sun Aug 23 14:11:17 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sun Aug 23 14:12:22 2026"
      },
      "message": "Include `GeneratedMessageLite.ExtendableMessage` in `ImpossibleNullComparison` flag guard\n\nPiperOrigin-RevId: 969381879\n"
    },
    {
      "commit": "984f6adb6ab11291d6fc200b18726c35937b0ccb",
      "tree": "5018f3212c7a1ad5825e3fb89d78f84e7c49e5e8",
      "parents": [
        "674e2c86451e9b453d2213fd885228206ebc663f"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Sat Aug 22 17:34:12 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sat Aug 22 17:35:08 2026"
      },
      "message": "Ensure `ProtobufMatchers.IS_ONEOF_ENUM` only matches enum types\n\nPiperOrigin-RevId: 969054816\n"
    },
    {
      "commit": "674e2c86451e9b453d2213fd885228206ebc663f",
      "tree": "0ccbfd00b53de509b3b0940cad34486c45286cab",
      "parents": [
        "253ac4d08517891191be5226a817cac8b1065362"
      ],
      "author": {
        "name": "Rick Ossendrijver",
        "email": "rick.ossendrijver@gmail.com",
        "time": "Fri Aug 21 17:18:28 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Aug 21 17:19:30 2026"
      },
      "message": "Fix a Refaster crash on `module-info.java` files.\n\n`UMemberSelect#visitIdentifier` unconditionally dereferences `sym.owner`, but module symbols have no owner: `Symbol.ModuleSymbol#create` always passes `null`. Any Refaster rule whose `@BeforeTemplate` is rooted at an instance member select then crashes the compiler as soon as it scans a `requires` directive whose module name is a single identifier.\n\nModule names that contain a dot are parsed as member selects instead, and `#visitMemberSelect` is already null-safe; as every JDK module name contains a dot, this has so far gone unnoticed.\n\nReported at https://github.com/PicnicSupermarket/error-prone-support/issues/2316.\nFixes https://github.com/google/error-prone/pull/6055\n\nPiperOrigin-RevId: 968565585\n"
    },
    {
      "commit": "253ac4d08517891191be5226a817cac8b1065362",
      "tree": "70b1760d0c43b2acfa16c38a2c80a29e8e1cbb0d",
      "parents": [
        "574fa904edefb1fc43200d235496617e04928bd7"
      ],
      "author": {
        "name": "Rick Ossendrijver",
        "email": "rick.ossendrijver@gmail.com",
        "time": "Fri Aug 21 16:07:02 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Aug 21 16:08:13 2026"
      },
      "message": "Add a[] for Refaster crash on `module-info.java` files.\n\n`UMemberSelect#visitIdentifier` unconditionally dereferences `sym.owner`, but module symbols have no owner (`Symbol.ModuleSymbol#create` always passes `null`). Any Refaster rule whose `@BeforeTemplate` is rooted at an instance member select crashes the compiler with a `NullPointerException` when scanning a `requires` directive whose module name is a single identifier.\n\nPer[] add a unit test in `UMemberSelectTest` reproducing the `NullPointerException` with a TODO breadcrumb prior to landing the fix in unknown commit.\n\nReported at https://github.com/PicnicSupermarket/error-prone-support/issues/2316.\nProgress toward https://github.com/google/error-prone/pull/6055\n\nPiperOrigin-RevId: 968530188\n"
    },
    {
      "commit": "574fa904edefb1fc43200d235496617e04928bd7",
      "tree": "50cf59e382bc70ab6dbcaef52df77a3d149ded87",
      "parents": [
        "372f5551a27102bc965b856a26cccb2495f353dc"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Fri Aug 21 15:29:41 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Aug 21 15:30:43 2026"
      },
      "message": "Make `RefasterRule.simpleTemplateName()` an eager property and optimize `fromSecondLevel()`\n\nPiperOrigin-RevId: 968513744\n"
    },
    {
      "commit": "372f5551a27102bc965b856a26cccb2495f353dc",
      "tree": "b7e48de5e918f8c4059676561ecd222c41fa468a",
      "parents": [
        "90099f92c7b03fcbee0c8013977e875ab0e354b5"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Thu Aug 20 20:42:47 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Aug 20 20:43:56 2026"
      },
      "message": "Give placeholder-replacement trees a type *before* checking for matches.\n\nThis allows matchers to query that type directly, rather than having to pull it from the `TreePath` instead.\n\nThis came up when I looked to use the matchers proposed in unknown commit in some more locations in unknown commit.\n\nPiperOrigin-RevId: 968029100\n"
    },
    {
      "commit": "90099f92c7b03fcbee0c8013977e875ab0e354b5",
      "tree": "3a203b257013a809b06c8688fc5e480ec99adff3",
      "parents": [
        "de2bc3b2330c53678ea94ac3677fef0d48de69e5"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Thu Aug 20 12:51:54 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Aug 20 12:52:43 2026"
      },
      "message": "Update summary of `UnnamedVariable`.\n\nPiperOrigin-RevId: 967768717\n"
    },
    {
      "commit": "de2bc3b2330c53678ea94ac3677fef0d48de69e5",
      "tree": "b1c45e4447af99c91b0055a1fcd0a6c24102033e",
      "parents": [
        "f2cf33d313252803ef6e9fff36e4f7c8a84820ee"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Thu Aug 20 12:30:07 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Aug 20 12:31:08 2026"
      },
      "message": "Add some[] for `ObjectEqualsForPrimitivesTest` and negations.\n\nPiperOrigin-RevId: 967760574\n"
    },
    {
      "commit": "f2cf33d313252803ef6e9fff36e4f7c8a84820ee",
      "tree": "396c914c5c4f2b7c62462a22c7b2b50c7fc28dc6",
      "parents": [
        "c504f5b71a8519a5a319ced53fc9a5d25738f7c2"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Aug 19 15:01:11 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Aug 19 15:02:12 2026"
      },
      "message": "Implement persistent linked node external chaining for Refaster `Bindings`\n\nPreviously, `Bindings` was backed with a `HashMap`. When `Unifier.fork()`\nbranched during backtracking, it created a new `Bindings` wrapper and copied\nall entries into a new `HashMap`.\n\nIn practice Bindings usually store a relatively small number of entries, and a\nforked often, so walking a short linked list for lookups should be cheaper than\ncopying the maps.\n\nPiperOrigin-RevId: 967212321\n"
    },
    {
      "commit": "c504f5b71a8519a5a319ced53fc9a5d25738f7c2",
      "tree": "872e9279102391322755b86a3ed5c847e86427e0",
      "parents": [
        "a645fc177641fc287f11b39de1590b3ef2a74e00"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Aug 19 12:56:29 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Aug 19 12:57:32 2026"
      },
      "message": "Add ASTHelpers.extractTypeArgAsMemberOfSupertype and deduplicate existing definitions\n\nAdds `ASTHelpers.extractTypeArgAsMemberOfSupertype` to extract a type argument from a supertype of a given type, handling wildcard capture and raw types defensively.\n\nUpdates existing definitions and callers across Error Prone to use the shared helper.\n\nPiperOrigin-RevId: 967163520\n"
    },
    {
      "commit": "a645fc177641fc287f11b39de1590b3ef2a74e00",
      "tree": "c01ebaf20ec884557020d21dc4362c09f7f9d7f7",
      "parents": [
        "5839e6e6f1bab9b5cf46288edc5bec6b1b56bf9e"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Aug 19 08:22:33 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Aug 19 08:23:28 2026"
      },
      "message": "Tune HashMap initial sizing in Refaster Bindings\n\nIn Refaster unification, `Bindings` instances typically store only 1 to 3 entries.\n\nThis change initializes `HashMap` with an expected capacity of 4 (and 2 for single-binding instances) rather than the default 16, eliminating unnecessary bucket array allocations and rehash operations during unifier branching.\n\nPiperOrigin-RevId: 967053777\n"
    },
    {
      "commit": "5839e6e6f1bab9b5cf46288edc5bec6b1b56bf9e",
      "tree": "0632f46649169c05a0ab8a9dbc48a362a20ba407",
      "parents": [
        "f1d2b3008d5a1e01142eee95a07de74db961d8e9"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Tue Aug 18 23:35:00 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Aug 18 23:36:20 2026"
      },
      "message": "Implement ErrorProne check `HashCodeInObjectsHash`.\n\nThis check detects redundant calls to `hashCode()` (instance or primitive wrapper)\nor `Objects.hash()` / `Objects.hashCode()` inside `Objects.hash(...)`, and simplifies single-argument `Objects.hash(foo)` calls to `Objects.hashCode(foo)`.\n\nExemptions:\n- `super.hashCode()` and qualified `Enclosing.super.hashCode()`\n- `Arrays.hashCode(...)` and `Arrays.deepHashCode(...)`\n- `System.identityHashCode(...)`\nPiperOrigin-RevId: 966870958\n"
    },
    {
      "commit": "f1d2b3008d5a1e01142eee95a07de74db961d8e9",
      "tree": "1a9c3ddfa11f137457a76fc1607bdc65733f18cb",
      "parents": [
        "dc89088e92a009c6ec8d1ef0d320eb2cae2c6bd6"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Aug 18 21:06:18 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Aug 18 21:08:08 2026"
      },
      "message": "Memoize Bindings.Key on UFreeIdent and ULocalVarIdent with @Memoized\n\nPreviously, `UFreeIdent.key()` and `ULocalVarIdent.key()` instantiated a new `Key` object on every AST lookup/match across all Refaster rules.\n\nThis change caches the `Key` instance via AutoValue\u0027s `@Memoized` on the immutable template nodes, eliminating per-lookup allocations.\n\nPiperOrigin-RevId: 966795982\n"
    },
    {
      "commit": "dc89088e92a009c6ec8d1ef0d320eb2cae2c6bd6",
      "tree": "87eb5e9ae2ef457521dd88f596c108cb1353e8bc",
      "parents": [
        "1ce625104bbecbfef38f8080a06dff6883574dca"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Tue Aug 18 20:19:11 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Aug 18 20:20:44 2026"
      },
      "message": "Consolidate Protobuf Matchers and Constants into `ProtobufMatchers`\n\nConsolidates references to protobuf classes, type suppliers, predicates,\nand AST method matchers across Error Prone checkers into `ProtobufMatchers`.\n\nAdds flag-guarding options for error-severity checks where check precision was broadened, and disables them pending cleanup:\n- `-XepOpt:SizeGreaterThanOrEqualsZero:CheckLiteProtos\u003dfalse`: Controls checking repeated field count methods on Lite Protos (previously only matched `com.google.protobuf.GeneratedMessage`).\n- `-XepOpt:ProtoStringFieldReferenceEquality:CheckOrBuilder\u003dfalse`: Controls checking string field reference equality on `MessageLiteOrBuilder` / `MessageOrBuilder` interfaces (previously only matched concrete message classes).\n- `-XepOpt:ImpossibleNullComparison:CheckOrBuilder\u003dfalse`: Controls checking impossible null comparisons on `MessageLiteOrBuilder` / `MessageOrBuilder` interfaces (previously only matched concrete message classes).\n\nPiperOrigin-RevId: 966768699\n"
    },
    {
      "commit": "1ce625104bbecbfef38f8080a06dff6883574dca",
      "tree": "74bc1e8b3701239e2b1a91c235d30eb618ef7cbc",
      "parents": [
        "192f2e3628d0fd0c21b9fe2b1f1ee97420fdfab8"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Tue Aug 18 16:44:56 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Aug 18 16:46:07 2026"
      },
      "message": "Convert some `switch` statements into `switch` expressions.\n\nPiperOrigin-RevId: 966646657\n"
    },
    {
      "commit": "192f2e3628d0fd0c21b9fe2b1f1ee97420fdfab8",
      "tree": "8c8567ad92788243f3d54294ead28010fc05c09b",
      "parents": [
        "b41e2ba8565492799bb1aeb3615f0711b2b619df"
      ],
      "author": {
        "name": "Éamonn McManus",
        "email": "emcmanus@google.com",
        "time": "Tue Aug 18 14:46:41 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Aug 18 14:47:45 2026"
      },
      "message": "Remove a confusing phrase from the `UnnecessaryDefaultInEnumSwitch` documentation.\n\nIt is not clear what \"with a break\" is supposed to mean here. In a colon-style `switch`, you\u0027ll add a `break` to the new `UNRECOGNIZED` case in the same circumstances as for any other new case, namely when it is not the last case and does not share logic with another case. In an arrow-style `switch`, you usually won\u0027t add a `break` at all.\n\nIncidentally this documentation should probably be rewritten somewhat to take arrow-style switches and especially expression switches into account.\n\nPiperOrigin-RevId: 966589687\n"
    },
    {
      "commit": "b41e2ba8565492799bb1aeb3615f0711b2b619df",
      "tree": "c20008a2f32c637a9d444450ed91621e320b0884",
      "parents": [
        "609e3e41bab26293d95ecc0786212574aeda4844"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Aug 17 20:44:19 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Aug 17 20:45:36 2026"
      },
      "message": "Support type parameter substitution at call-sites during inlining.\n\nWhen inlining generic methods whose `@InlineMe` replacement contains type variables\n(e.g., `Client.\u003cT\u003eafter()`, `new ArrayList\u003cV\u003e()`, `(T) obj`, `this.\u003cT\u003eafter()`),\nInliner now maps method type parameter names to the explicit type arguments\npassed at the call-site and substitutes them into the replacement expression.\n\nWhen explicit type arguments are omitted at the call-site:\n- In method invocations (e.g. `Client.\u003cV\u003eafter()`), unsubstituted type arguments\n  are stripped to allow standard compiler type inference (`Client.after()`).\n- In constructor invocations (e.g. `new ArrayList\u003cV\u003e()`), unsubstituted type\n  arguments are converted to diamond syntax (`new ArrayList\u003c\u003e()`).\n- In casts (e.g. `(T) obj`), unresolvable type variable casts are stripped\n  (`obj`), allowing compiler type inference when the cast is unnecessary.\n\nPiperOrigin-RevId: 966158769\n"
    },
    {
      "commit": "609e3e41bab26293d95ecc0786212574aeda4844",
      "tree": "a92c829ee6a703dbabcb5021f1cf060e99832620",
      "parents": [
        "3276c0e7faf4acb769cae67bad9cc20b7e38b778"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Sun Aug 16 18:14:37 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sun Aug 16 18:15:21 2026"
      },
      "message": "Update `ReturnsNullCollection` and `ProvidesNull` to use `NullnessUtils.hasDefinitelyNullBranch()` instead of looking only for `null` literals, allowing them to flag conditional null expressions (e.g., `return foo ? bar : null`). Also make `NullnessUtils` and `hasDefinitelyNullBranch` public to support these checks.\n\nUpdate terrible tests to expect diagnostics now that conditional null returns are flagged.\n\nPiperOrigin-RevId: 965584501\n"
    },
    {
      "commit": "3276c0e7faf4acb769cae67bad9cc20b7e38b778",
      "tree": "dbffd817b278a2fb5e3f0dde33bc6332af619521",
      "parents": [
        "8556f5eae3e85a292babf3dfb7121a14173655cf"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sun Aug 16 16:03:52 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sun Aug 16 16:05:11 2026"
      },
      "message": "Bump org.checkerframework:checker-qual from 4.2.1 to 4.2.2 in the dependencies group\n\nBumps the dependencies group with 1 update: [org.checkerframework:checker-qual](https://github.com/typetools/checker-framework).\n\nUpdates `org.checkerframework:checker-qual` from 4.2.1 to 4.2.2\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/typetools/checker-framework/releases\"\u003eorg.checkerframework:checker-qual\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eChecker Framework 4.2.2\u003c/h2\u003e\n\u003ch2\u003eVersion 4.2.2 (2026-08-06)\u003c/h2\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eRenamed \u003ccode\u003eCFAbstractValue.validateSet()\u003c/code\u003e to \u003ccode\u003ehasAnnotationFromEveryHierarchy()\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7723\"\u003e#7723\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7784\"\u003e#7784\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7806\"\u003e#7806\u003c/a\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eChangelog\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/typetools/checker-framework/blob/master/docs/CHANGELOG.md\"\u003eorg.checkerframework:checker-qual\u0027s changelog\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eVersion 4.2.2 (2026-08-06)\u003c/h2\u003e\n\u003ch3\u003eImplementation details\u003c/h3\u003e\n\u003cp\u003eRenamed \u003ccode\u003eCFAbstractValue.validateSet()\u003c/code\u003e to \u003ccode\u003ehasAnnotationFromEveryHierarchy()\u003c/code\u003e.\u003c/p\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7723\"\u003e#7723\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7784\"\u003e#7784\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7806\"\u003e#7806\u003c/a\u003e.\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/2dc79eef5a9d2cd18fdbf79550e454c1d7c044f8\"\u003e\u003ccode\u003e2dc79ee\u003c/code\u003e\u003c/a\u003e new release 4.2.2\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/c038044ee33ad159f769068d43aaaa933983897e\"\u003e\u003ccode\u003ec038044\u003c/code\u003e\u003c/a\u003e Use the Gradle Nexus publish plugin.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/51d31cad10d00c8ae069ac32416165c1a1b4a824\"\u003e\u003ccode\u003e51d31ca\u003c/code\u003e\u003c/a\u003e Update release date.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/765fe18026bac9cfa15a0199a8dfae52ef212b72\"\u003e\u003ccode\u003e765fe18\u003c/code\u003e\u003c/a\u003e Define \u003ccode\u003eequals()\u003c/code\u003e and \u003ccode\u003ehashCode()\u003c/code\u003e (\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7892\"\u003e#7892\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/214e1a72f091d34f6cd42877380ff84ecb5ec520\"\u003e\u003ccode\u003e214e1a7\u003c/code\u003e\u003c/a\u003e Don\u0027t use snapshot versions of libraries\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/83a2be97ae8694c658b0655a5cb1ae3f57e22e0a\"\u003e\u003ccode\u003e83a2be9\u003c/code\u003e\u003c/a\u003e Gradle improvements\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/6342795a2d5c5f4a7030ca064ec21f7f0a6016fb\"\u003e\u003ccode\u003e6342795\u003c/code\u003e\u003c/a\u003e Use object equality, not reference equality (\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7891\"\u003e#7891\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/53ae35709d313c5a8ad5986026057eb9d17ab880\"\u003e\u003ccode\u003e53ae357\u003c/code\u003e\u003c/a\u003e Document side effect (\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7897\"\u003e#7897\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/b7f5e73bff79e340e580201b7d748f7e8ec4a071\"\u003e\u003ccode\u003eb7f5e73\u003c/code\u003e\u003c/a\u003e Address alignment between declared and substituted type (\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7885\"\u003e#7885\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/45a6235aa06c5d70bf02ca480260352994208773\"\u003e\u003ccode\u003e45a6235\u003c/code\u003e\u003c/a\u003e The three alternatives of 18.5.2.1 are not mutually exclusive (\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7883\"\u003e#7883\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/typetools/checker-framework/compare/checker-framework-4.2.1...checker-framework-4.2.2\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dorg.checkerframework:checker-qual\u0026package-manager\u003dmaven\u0026previous-version\u003d4.2.1\u0026new-version\u003d4.2.2)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency\u0027s major version (unless you unignore this specific dependency\u0027s major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency\u0027s minor version (unless you unignore this specific dependency\u0027s minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\u003c/details\u003e\n\nFixes https://github.com/google/error-prone/pull/6036\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/google/error-prone/pull/6036 from google:dependabot/maven/dependencies-eaaac9437e 3798936b0c2427ff812d291ee4204153a9e36164\nPiperOrigin-RevId: 965554511\n"
    },
    {
      "commit": "8556f5eae3e85a292babf3dfb7121a14173655cf",
      "tree": "51c1a203a6daa662fc68b5bf6c76709fdb5c15b4",
      "parents": [
        "83bf637060281b4aaad66f7c1bc155906c3b989f"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Fri Aug 14 13:34:27 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Aug 14 13:35:17 2026"
      },
      "message": "Consolidate boxed and primitive type helpers in `ASTHelpers`\n\nAdd helpers to `ASTHelpers` for inspecting, unboxing, and boxing primitive wrapper types:\n- `isBoxedPrimitiveType(Type, VisitorState)` / `isBoxedPrimitiveType(Tree, VisitorState)`\n- `unboxedType(Type, VisitorState)`\n- `unboxedTypeOrType(Type, VisitorState)`\n- `boxedType(Type, VisitorState)`\n- `boxedTypeOrType(Type, VisitorState)`\n- `boxedClass(Type, VisitorState)`\n\nUpdate `Matchers.isBoxedPrimitiveType()` and `Matchers.isPrimitiveOrBoxedPrimitiveType()` to delegate to `ASTHelpers`.\nMigrate existing bug patterns (`IdentityHashMapBoxing`, `AutoValueBoxedValues`, `BoxedPrimitiveConstructor`, `BoxedPrimitiveEquality`, `IfChainToSwitch`, `ObjectsHashCodePrimitive`, `PrimitiveAtomicReference`, `UnnecessaryBoxedAssignment`, `UnnecessaryBoxedVariable`) to use the consolidated helpers.\n\nFixes https://github.com/google/error-prone/issues/6029\n\nPiperOrigin-RevId: 964669227\n"
    },
    {
      "commit": "83bf637060281b4aaad66f7c1bc155906c3b989f",
      "tree": "601188afcbf92c89f2e847d1dc19efeecd13b939",
      "parents": [
        "49ffa66c0a09fdbcb9fa04b991a8f53dc6d4e479"
      ],
      "author": {
        "name": "jihoon",
        "email": "git4ub0@gmail.com",
        "time": "Fri Aug 14 13:29:37 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Aug 14 13:30:25 2026"
      },
      "message": "Add chrono types to ValueClassIdentity fallback\n\n## Summary\n\n- Add `HijrahDate`, `JapaneseDate`, `MinguoDate`, and `ThaiBuddhistDate` to the explicit `ValueClassIdentity` fallback list.\n- Add regression coverage using `--release 15` so the test exercises the fallback path without relying on `@jdk.internal.ValueBased` metadata.\n\n## Test\n\n- `mvn -pl core test \"-Dtest\u003dValueClassIdentityTest\"`\n\nRelated to #6029\n\nFixes https://github.com/google/error-prone/pull/6031\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/google/error-prone/pull/6031 from jihxonx:fix/value-class-identity-chrono 8026c45de6a7c8951ea94d105e46c30e87011e9a\nPiperOrigin-RevId: 964667686\n"
    },
    {
      "commit": "49ffa66c0a09fdbcb9fa04b991a8f53dc6d4e479",
      "tree": "6e05bed93d3b0fc02e7f01022f576cce024dd409",
      "parents": [
        "b2e71f3ce59a330d310ae95f3528f8fd59fd3981"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Fri Aug 14 06:52:06 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Aug 14 06:52:50 2026"
      },
      "message": "Check to discourage relying on identity semantics of JEP 401 value objects\n\nPiperOrigin-RevId: 964519883\n"
    },
    {
      "commit": "b2e71f3ce59a330d310ae95f3528f8fd59fd3981",
      "tree": "624faeb7b4938b5bf98921ca6b48165a8c1d294b",
      "parents": [
        "bcc3cb02bd88f08356a34adbdb044174b9859c54"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Thu Aug 13 21:38:42 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Aug 13 21:39:52 2026"
      },
      "message": "Add repro tests for type parameter inlining with casts, instance methods, and multiple type parameters.\n\nDemonstrates that type arguments at the call-site are currently not substituted\ninto type variables in the `@InlineMe` replacement string for type casts,\ninstance method calls, and constructor invocations with multiple type parameters.\n\nPiperOrigin-RevId: 964300823\n"
    },
    {
      "commit": "bcc3cb02bd88f08356a34adbdb044174b9859c54",
      "tree": "8346cd4432022967c8c5eb12fdaa21cde6c49b08",
      "parents": [
        "121e024176e53594707c41b8dc751358bfeaac50"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Thu Aug 13 20:57:25 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Aug 13 20:58:10 2026"
      },
      "message": "Qualify static field references when generating `@InlineMe` annotations.\n\nPreviously, `ImportAndQualificationFinder` skipped identifiers whose parent node\nwas a `MemberSelectTree`. When an unqualified static field was the receiver of a\nmember selection (such as `STR.length()` or `MAGIC.get()`), this check caused\n`InlineMe` to leave the field reference unqualified and omit the required class\nimport.\n\nWe now handle `ClassSymbol` explicitly and ensure static fields on the enclosing\nclass are correctly qualified with the class name and the class is added to\nimports.\n\nPiperOrigin-RevId: 964277465\n"
    },
    {
      "commit": "121e024176e53594707c41b8dc751358bfeaac50",
      "tree": "ae6a6df4ff9bda2566e27e7b0acc9646b3f883b4",
      "parents": [
        "438a123c412c25200f92225d389b3c5ad816f640"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Thu Aug 13 20:28:01 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Aug 13 20:29:48 2026"
      },
      "message": "Add some terrible tests for static fields in InlineMe.\n\nPiperOrigin-RevId: 964261274\n"
    },
    {
      "commit": "438a123c412c25200f92225d389b3c5ad816f640",
      "tree": "821d04bf633d74c2db24f2dc5c074f2e6f9ed13d",
      "parents": [
        "ad80c8b9f868085d129a667d9dff0e1f1033d652"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Wed Aug 12 18:47:48 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Aug 12 18:48:39 2026"
      },
      "message": "Document the need to use erased types for type variables, too.\n\nAnd remove the suggestion that Javadoc is likely to support generics in references in the future: [JDK-5096551](https://bugs.openjdk.org/browse/JDK-5096551) has been rejected (in addition to being over twenty years old).\n\n(In practice, `javadoc` is quite lenient about accepting [anything that looks like a syntactically valid Java class name](https://bugs.openjdk.org/browse/JDK-8279474). But InvalidLink and IntelliJ are at least sometimes not, and `javadoc` may change.\n\nPiperOrigin-RevId: 963575165\n"
    },
    {
      "commit": "ad80c8b9f868085d129a667d9dff0e1f1033d652",
      "tree": "3473b1e7c6e209b1ca7ddb72038231f0f8375e0b",
      "parents": [
        "d6419122899bd24fadb5f8fe087b3fcb4a2459c0"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Wed Aug 12 16:44:02 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Aug 12 16:45:36 2026"
      },
      "message": "Avoid flagging primitive var-args in `NonApiType` (e.g., `int...`).\n\nPiperOrigin-RevId: 963499629\n"
    },
    {
      "commit": "d6419122899bd24fadb5f8fe087b3fcb4a2459c0",
      "tree": "f2f69d484f22ef5b5e8b79d82cec1db2fa7bc5f1",
      "parents": [
        "c46493f1e48a2f3bb0070bb0ec5d17db0b7ae57a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Wed Aug 12 16:35:47 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Aug 12 16:36:28 2026"
      },
      "message": "Bump com.google.googlejavaformat:google-java-format from 1.36.0 to 1.36.1 in the dependencies group across 1 directory\n\nBumps the dependencies group with 1 update in the / directory: [com.google.googlejavaformat:google-java-format](https://github.com/google/google-java-format).\n\nUpdates `com.google.googlejavaformat:google-java-format` from 1.36.0 to 1.36.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/google/google-java-format/releases\"\u003ecom.google.googlejavaformat:google-java-format\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003ev1.36.1\u003c/h2\u003e\n\u003ch2\u003eWhat\u0027s Changed\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix an issue with formatting indented list items.\u003c/li\u003e\n\u003cli\u003eHandle blank lines before and within Markdown lists more accurately.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull Changelog\u003c/strong\u003e: \u003ca href\u003d\"https://github.com/google/google-java-format/compare/v1.36.0...v1.36.1\"\u003ehttps://github.com/google/google-java-format/compare/v1.36.0...v1.36.1\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/google-java-format/commit/a95a5290336acd179d42c6baf0557d590f5839d0\"\u003e\u003ccode\u003ea95a529\u003c/code\u003e\u003c/a\u003e Release google-java-format 1.36.1\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/google-java-format/commit/fce6509660391af6cb79a3b492ca74210c137151\"\u003e\u003ccode\u003efce6509\u003c/code\u003e\u003c/a\u003e Bump JSpecify to 1.0.1.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/google-java-format/commit/14e90399a09bfdb3f5bb6be027205adc785328c8\"\u003e\u003ccode\u003e14e9039\u003c/code\u003e\u003c/a\u003e Handle blank lines before and within Markdown lists more accurately.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/google/google-java-format/commit/7d9649fba7f3b2ab8916b2bec5afb339dd3963b0\"\u003e\u003ccode\u003e7d9649f\u003c/code\u003e\u003c/a\u003e Fix an issue with formatting indented list items.\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href\u003d\"https://github.com/google/google-java-format/compare/v1.36.0...v1.36.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nFixes https://github.com/google/error-prone/pull/6004\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/google/error-prone/pull/6004 from google:dependabot/maven/dependencies-ae1c9126db 64257481c1c9256ff3ed00ecacf81a59bf46eaef\nPiperOrigin-RevId: 963495097\n"
    },
    {
      "commit": "c46493f1e48a2f3bb0070bb0ec5d17db0b7ae57a",
      "tree": "675cb3a5ca6331444180d65c1fd0e532f54cfc12",
      "parents": [
        "48f9483d9acf8c3a230f562ee26639572bb8517b"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Tue Aug 11 20:11:22 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Aug 11 20:12:08 2026"
      },
      "message": "Remove exclusion of `META-INF/versions/9/OSGI-INF/MANIFEST.MF`.\n\n[JSpecify 1.0.1](https://github.com/jspecify/jspecify/releases) removed that file from the JSpecify jar.\n\n(You can see the history of why the exclusion was added in https://github.com/google/error-prone/commit/2517f1b44b704f4e7e42f8178b21d461a391df44.)\n\nI do notice some other preexisting shading-related diagnostics, though they are only warnings:\n\n```\n[INFO] --- shade:3.6.2:shade (default) @ error_prone_refaster ---\n[WARNING] error_prone_core-1.0-HEAD-SNAPSHOT-with-dependencies.jar, error_prone_refaster-1.0-HEAD-SNAPSHOT.jar define 2 overlapping resources:\n[WARNING]   - META-INF/MANIFEST.MF\n[WARNING]   - META-INF/services/com.sun.source.util.Plugin\n[WARNING] maven-shade-plugin has detected that some files are\n[WARNING] present in two or more JARs. When this happens, only one\n[WARNING] single version of the file is copied to the uber jar.\n[WARNING] Usually this is not harmful and you can skip these warnings,\n[WARNING] otherwise try to manually exclude artifacts based on\n[WARNING] mvn dependency:tree -Ddetail\u003dtrue and the above output.\n[WARNING] See https://maven.apache.org/plugins/maven-shade-plugin/\n```\n\nI also notice this:\n\n```\n[INFO] --- bnd:7.3.0:bnd-process (generate-OSGi-manifest) @ error_prone_refaster ---\n[WARNING] Cannot consider developer in line \u002757\u0027 of file \u0027/usr/local/google/home/cpovirk/clients/error-prone-white/error-prone/pom.xml\u0027 for bundle header \u0027Bundle-Developers\u0027 as it does not contain the mandatory id.\n```\n\nAgain, that\u0027s unrelated.\n\nPiperOrigin-RevId: 962955941\n"
    },
    {
      "commit": "48f9483d9acf8c3a230f562ee26639572bb8517b",
      "tree": "29cc84cf8dafbd811d5a4abb1ffdf2d091177425",
      "parents": [
        "876a6e369c5ef0bb3370f08fc1800f797393d67e"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Tue Aug 11 16:00:52 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Aug 11 16:01:42 2026"
      },
      "message": "Avoid warning multiple times for \"`sun.misc.Unsafe.class`.\"\n\nPiperOrigin-RevId: 962812357\n"
    },
    {
      "commit": "876a6e369c5ef0bb3370f08fc1800f797393d67e",
      "tree": "d86a356f751dc3aa0aab70d06a0edd2954174e37",
      "parents": [
        "41c162323d84bfa59e1be0798682dfea282f60e8"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Tue Aug 11 00:34:01 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Aug 11 00:35:08 2026"
      },
      "message": "Update `PatternMatchingInstanceof` to recognize `while` and `for` loops.\n\nPiperOrigin-RevId: 962461484\n"
    },
    {
      "commit": "41c162323d84bfa59e1be0798682dfea282f60e8",
      "tree": "7fd38d79274b60d440cce73c8bb65fbce466278b",
      "parents": [
        "09ea3a2f8aae466b45681fb3e2411c298caf514a"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Aug 10 23:38:02 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Aug 10 23:39:12 2026"
      },
      "message": "Refactor `isReassigned` in `PatternMatchingInstanceof` to use the local field trick\n\nUse `TreeScanner\u003cVoid, Void\u003e` with a local `boolean` field to track reassignment instead of `TreeScanner\u003cBoolean, Void\u003e` with `reduce()`. This allows short-circuiting AST traversal once reassignment is found and removes unnecessary boxing/unboxing.\n\nPiperOrigin-RevId: 962436051\n"
    },
    {
      "commit": "09ea3a2f8aae466b45681fb3e2411c298caf514a",
      "tree": "f0b732dd8d948f77dde69b7a8627591aae64eefc",
      "parents": [
        "56412f496f0b614f30056825b8b2ef043718dd23"
      ],
      "author": {
        "name": "Éamonn McManus",
        "email": "emcmanus@google.com",
        "time": "Mon Aug 10 23:24:34 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Aug 10 23:27:04 2026"
      },
      "message": "Add commentary to clarify a complicated method in `PatternMatchingInstanceof`.\n\nAlso rearrange the method slightly so it has only one return statement.\n\nPiperOrigin-RevId: 962429731\n"
    },
    {
      "commit": "56412f496f0b614f30056825b8b2ef043718dd23",
      "tree": "8ad977b2e961d4f3582666032349fd0451664888",
      "parents": [
        "d4b24165b04cccd95ef0c22551fee02bf944829a"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Aug 10 22:11:50 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Aug 10 22:13:08 2026"
      },
      "message": "Demonstrate duplicate/colliding variable name bugs in `PatternMatchingInstanceof` with[]\n\n1. Nested `instanceof` checks of the same type generating the same pattern variable name and shadowing the outer variable.\n2. Compound `\u0026\u0026` condition with two `instanceof` checks of the same type generating duplicate pattern variable names.\n3. `instanceof` in a variable initializer generating a pattern variable name that clashes with the variable being initialized.\n\nPiperOrigin-RevId: 962393089\n"
    },
    {
      "commit": "d4b24165b04cccd95ef0c22551fee02bf944829a",
      "tree": "ad9629ff88dd6e9aae6b026bd4bebfd8fa107643",
      "parents": [
        "63c1129fc5074b1c752fe0bf8e02159e15e36b8f"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Aug 10 20:01:46 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Aug 10 20:05:28 2026"
      },
      "message": "Fix scope-expansion variable clobbering bug in `PatternMatchingInstanceof`.\n\nAvoid refactoring if reusing the variable name would cause a clash/shadowing conflict with another variable declared later in the scope (where the pattern variable\u0027s scope expands).\n\nChanges:\n- Generalize `SuggestedFixes.variableNamer` with an overload that accepts `Iterable\u003c? extends Tree\u003e extraScope` to avoid declarations across extra trees (such as downstream statements).\n- Update `VariableNamer` and `isNameDeclared` to not descend into local classes, since declarations inside a local class do not clash with local variables outside.\n- Update `PatternMatchingInstanceof.generateVariableName` to use `SuggestedFixes.variableNamer(state, impliedStatements)`.\n- Update `PatternMatchingInstanceof.isReassigned` to use `TreeScanner\u003cVoid, Void\u003e` with a boolean field and extracted local variable for mutating unaries.\n- Add test coverage in `SuggestedFixesTest` and `PatternMatchingInstanceofTest`.\nPiperOrigin-RevId: 962319945\n"
    },
    {
      "commit": "63c1129fc5074b1c752fe0bf8e02159e15e36b8f",
      "tree": "4785cc4573dcb500ed907c0660941f47630857a9",
      "parents": [
        "85bc5abdcb024398d1526cd0c5638f311d5e1f1d"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Aug 10 20:01:42 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Aug 10 20:02:59 2026"
      },
      "message": "Handle `enum` constants and other values in `record` component annotations in `RemoveUnusedImports`.\n\nRecursively scan annotation element values on `record` members so that symbols\nlike `enum` constants and class literals used in `record` component annotations\nare recognized as used.\n\nPiperOrigin-RevId: 962319914\n"
    },
    {
      "commit": "85bc5abdcb024398d1526cd0c5638f311d5e1f1d",
      "tree": "c8b7e7d73e85dda60460bda368bb5a5800f045c1",
      "parents": [
        "353707b881cadb2d226a3a638a71e73d5f50326c"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Aug 10 18:45:15 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Aug 10 18:46:20 2026"
      },
      "message": "Add a[] for `SuggestedFixes.variableNamer(state)`.\n\nPiperOrigin-RevId: 962278221\n"
    },
    {
      "commit": "353707b881cadb2d226a3a638a71e73d5f50326c",
      "tree": "86eb36a26d0f5ab2d6cf2d492b45d89a51bfb086",
      "parents": [
        "a2923f9ae02209044a5be15aff81d02df262747d"
      ],
      "author": {
        "name": "Chris Povirk",
        "email": "cpovirk@google.com",
        "time": "Mon Aug 10 17:59:19 2026"
      },
      "committer": {
        "name": "Chris Povirk",
        "email": "cpovirk@google.com",
        "time": "Mon Aug 10 18:11:34 2026"
      },
      "message": "Use `vX.Y.Z` tags instead of `vX` for version comments.\n\nUpdate `oracle-actions/setup-java` along the way.\n\nThis prevents the `zizmor` trouble seen in https://github.com/google/google-java-format/pull/1442.\n"
    },
    {
      "commit": "a2923f9ae02209044a5be15aff81d02df262747d",
      "tree": "fcd92e3c3a04db29adc93bcc7ae94d4b8cf56842",
      "parents": [
        "9031902a8b8f75a4dbb3cac5a28f39f624102a0f"
      ],
      "author": {
        "name": "Chris Povirk",
        "email": "cpovirk@google.com",
        "time": "Mon Aug 10 17:08:19 2026"
      },
      "committer": {
        "name": "Chris Povirk",
        "email": "cpovirk@google.com",
        "time": "Mon Aug 10 18:06:18 2026"
      },
      "message": "Increase Dependabot cooldown from the default of 3 days to 7, as [required by `zizmor`](https://docs.zizmor.sh/audits/#rulesdependabot-cooldownconfigdays).\n"
    },
    {
      "commit": "9031902a8b8f75a4dbb3cac5a28f39f624102a0f",
      "tree": "4f75154c20d600ab0d00193ca29fe53d51770e29",
      "parents": [
        "03473d830d530905140f95d3c4e163315b7cb9c9"
      ],
      "author": {
        "name": "Chris Povirk",
        "email": "cpovirk@google.com",
        "time": "Mon Aug 10 17:18:44 2026"
      },
      "committer": {
        "name": "Chris Povirk",
        "email": "cpovirk@google.com",
        "time": "Mon Aug 10 18:05:57 2026"
      },
      "message": "Use `cancel-in-progress` instead of `styfle/cancel-workflow-action`.\n\nCompare https://github.com/google/google-java-format/pull/1442.\n"
    },
    {
      "commit": "03473d830d530905140f95d3c4e163315b7cb9c9",
      "tree": "9d0a6755d6eab11a6fa17c964bde29eeabdf081a",
      "parents": [
        "76086193541ca88c2fa02b695c15a2fdf8aff989"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Aug 10 17:16:23 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Aug 10 17:17:06 2026"
      },
      "message": "Add a regression test that demonstrates false positive unused imports warning when enum constants are used as annotation values on record components.\n\nPiperOrigin-RevId: 962225371\n"
    },
    {
      "commit": "76086193541ca88c2fa02b695c15a2fdf8aff989",
      "tree": "c3115b6734c8112b4856318a7b5c0d109938ca62",
      "parents": [
        "841aaefb3e76f4948f6e4172fd0183971a359518"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Fri Aug 07 13:58:03 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Aug 07 13:59:09 2026"
      },
      "message": "Improve UnnamedVariable documentation\n\nPiperOrigin-RevId: 960906256\n"
    },
    {
      "commit": "841aaefb3e76f4948f6e4172fd0183971a359518",
      "tree": "3e2428c587e389fcc5f88bb67c6bfd1edd8d4fe1",
      "parents": [
        "59ab20811fb05aefbad052d1280a12ea70626569"
      ],
      "author": {
        "name": "Michael Diamond",
        "email": "diamondm@google.com",
        "time": "Wed Aug 05 17:09:23 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Aug 05 17:10:11 2026"
      },
      "message": "Add links to outage caused by this bug. Referenced in http://b/18854585#comment5.\n\nPiperOrigin-RevId: 959726600\n"
    },
    {
      "commit": "59ab20811fb05aefbad052d1280a12ea70626569",
      "tree": "51fc9989801ba3178bab0f75b5cd62fc7ff37d58",
      "parents": [
        "eb5a7e440484a415630bc0bc7742e383ca803521"
      ],
      "author": {
        "name": "Error Prone Team",
        "email": "java-team-github-bot@google.com",
        "time": "Tue Aug 04 18:10:16 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Aug 04 18:11:34 2026"
      },
      "message": "Add `java.util.Properties` to `WellKnownThreadSafety`.\n\nPiperOrigin-RevId: 959124000\n"
    },
    {
      "commit": "eb5a7e440484a415630bc0bc7742e383ca803521",
      "tree": "ae2b3685efdd004c28042d182a7eedd47a5b54da",
      "parents": [
        "4144d4a366e9ae492c62c6c06b97705cf1b335bf"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Tue Aug 04 17:19:30 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Aug 04 17:20:41 2026"
      },
      "message": "Ignore unused local variables in Refaster templates.\n\nAlso, test the existing handling of _parameters_ in Refaster templates from https://github.com/google/error-prone/pull/4060.\n\nPiperOrigin-RevId: 959093859\n"
    },
    {
      "commit": "4144d4a366e9ae492c62c6c06b97705cf1b335bf",
      "tree": "61dd78773fa61926d5048ef5984c07e91e9ef49b",
      "parents": [
        "57ac6b98525e695ed847d1ce0a0ef49a593e36e1"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Aug 03 18:46:02 2026"
      },
      "committer": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Aug 03 20:52:06 2026"
      },
      "message": "Bump the github-actions group across 1 directory with 2 updates\n\nBumps the github-actions group with 2 updates in the / directory: [actions/setup-java](https://github.com/actions/setup-java) and [softprops/action-gh-release](https://github.com/softprops/action-gh-release).\n\n\nUpdates `actions/setup-java` from 5.6.0 to 5.7.0\n- [Release notes](https://github.com/actions/setup-java/releases)\n- [Commits](https://github.com/actions/setup-java/compare/03ad4de0992f5dab5e18fcb136590ce7c4a0ac95...b6effb05e454b25005698d916606bdc6ffcbf961)\n\nUpdates `softprops/action-gh-release` from 3.0.1 to 3.0.2\n- [Release notes](https://github.com/softprops/action-gh-release/releases)\n- [Changelog](https://github.com/softprops/action-gh-release/blob/master/CHANGELOG.md)\n- [Commits](https://github.com/softprops/action-gh-release/compare/718ea10b132b3b2eba29c1007bb80653f286566b...3d0d9888cb7fd7b750713d6e236d1fcb99157228)\n\n---\nupdated-dependencies:\n- dependency-name: actions/setup-java\n  dependency-version: 5.6.0\n  dependency-type: direct:production\n  update-type: version-update:semver-minor\n  dependency-group: github-actions\n- dependency-name: softprops/action-gh-release\n  dependency-version: 3.0.2\n  dependency-type: direct:production\n  update-type: version-update:semver-patch\n  dependency-group: github-actions\n...\n\nSigned-off-by: dependabot[bot] \u003csupport@github.com\u003e"
    },
    {
      "commit": "57ac6b98525e695ed847d1ce0a0ef49a593e36e1",
      "tree": "2e894a2d7464f84adf06ff5bee1e74f54bd86efb",
      "parents": [
        "60ceb270db9cc2890351335bbe2442f5bbda1356"
      ],
      "author": {
        "name": "Chris Povirk",
        "email": "cpovirk@google.com",
        "time": "Fri Jul 31 21:53:58 2026"
      },
      "committer": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Aug 03 18:43:56 2026"
      },
      "message": "Address [excessive permissions](https://docs.zizmor.sh/audits/#excessive-permissions).\n"
    },
    {
      "commit": "60ceb270db9cc2890351335bbe2442f5bbda1356",
      "tree": "e077a3812b28024319e7c7b2cc0e42b1f8a18bc5",
      "parents": [
        "531c01d139ac6268bdd0030a2612d7bbdd5c06a6"
      ],
      "author": {
        "name": "Chris Povirk",
        "email": "cpovirk@google.com",
        "time": "Fri Jul 31 21:24:21 2026"
      },
      "committer": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Aug 03 18:43:56 2026"
      },
      "message": "Improve version comments.\n"
    },
    {
      "commit": "531c01d139ac6268bdd0030a2612d7bbdd5c06a6",
      "tree": "0611846cc358e3a9f9f6d1383e697e8ff290506b",
      "parents": [
        "c7b004af339be7ca9140b7b70a11312e48878f25"
      ],
      "author": {
        "name": "Chris Povirk",
        "email": "cpovirk@google.com",
        "time": "Fri Jul 31 19:47:54 2026"
      },
      "committer": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Mon Aug 03 18:43:56 2026"
      },
      "message": "Address `zizmor` findings:\n\n- [`persist-credentials: false`](https://docs.zizmor.sh/audits/#artipacked)\n- [pinning `uses`](https://docs.zizmor.sh/audits/#unpinned-uses)\n\nThere may be other findings, but these are the easy one.\n"
    },
    {
      "commit": "c7b004af339be7ca9140b7b70a11312e48878f25",
      "tree": "bbbe47a6defd025fc51125d7127a4789de5d4da0",
      "parents": [
        "a2017138ccfae362a2ddb6ca44d1bd2985a829ce"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Sun Aug 02 17:22:58 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sun Aug 02 17:23:47 2026"
      },
      "message": "Bump the dependencies group with 2 updates\n\nBumps the dependencies group with 2 updates: [org.apache.maven.plugins:maven-toolchains-plugin](https://github.com/apache/maven-toolchains-plugin) and [org.safere:safere](https://github.com/eaftan/safere).\n\nUpdates `org.apache.maven.plugins:maven-toolchains-plugin` from 3.2.0 to 3.3.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/apache/maven-toolchains-plugin/releases\"\u003eorg.apache.maven.plugins:maven-toolchains-plugin\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.3.0\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e🚀 New features and improvements\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eDiscover additional JDKs on Windows (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/issues/140\"\u003e#140\u003c/a\u003e) (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/143\"\u003e#143\u003c/a\u003e) \u003ca href\u003d\"https://github.com/Okeanos\"\u003e\u003ccode\u003e@​Okeanos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eLog matching discovered toolchain as info in select-jdk-toolchain mojo (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/144\"\u003e#144\u003c/a\u003e) \u003ca href\u003d\"https://github.com/HannesWell\"\u003e\u003ccode\u003e@​HannesWell\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd additional locations for auto-discovery to scan (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/130\"\u003e#130\u003c/a\u003e) \u003ca href\u003d\"https://github.com/Okeanos\"\u003e\u003ccode\u003e@​Okeanos\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e🐛 Bug Fixes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eFix matching against one of multiple env-variables pointing to one JDK (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/148\"\u003e#148\u003c/a\u003e) \u003ca href\u003d\"https://github.com/HannesWell\"\u003e\u003ccode\u003e@​HannesWell\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFixes \u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/issues/145\"\u003e#145\u003c/a\u003e: JDKs installed by asdf are not discovered. (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/146\"\u003e#146\u003c/a\u003e) \u003ca href\u003d\"https://github.com/mbutov\"\u003e\u003ccode\u003e@​mbutov\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://issues.apache.org/jira/browse/MTOOLCHAINS-53\"\u003e[MTOOLCHAINS-53]\u003c/a\u003e - Fix possible NPE (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/54\"\u003e#54\u003c/a\u003e) \u003ca href\u003d\"https://github.com/gnodet\"\u003e\u003ccode\u003e@​gnodet\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📝 Documentation updates\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eUpdate toolchains documentation to use JSR-330 terminology and links (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/165\"\u003e#165\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slawekjaranowski\"\u003e\u003ccode\u003e@​slawekjaranowski\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eFix Maven site links in See Also menu (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/155\"\u003e#155\u003c/a\u003e) \u003ca href\u003d\"https://github.com/euiwpoi\"\u003e\u003ccode\u003e@​euiwpoi\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://issues.apache.org/jira/browse/MNGSITE-529\"\u003e[MNGSITE-529]\u003c/a\u003e - Rename \u0026quot;Goals\u0026quot; to \u0026quot;Plugin Documentation\u0026quot; (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/48\"\u003e#48\u003c/a\u003e) \u003ca href\u003d\"https://github.com/Bukama\"\u003e\u003ccode\u003e@​Bukama\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e👻 Maintenance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eReplace Plexus XML configuration with JSR-330 annotated beans (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/160\"\u003e#160\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slawekjaranowski\"\u003e\u003ccode\u003e@​slawekjaranowski\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eAdd .asf.yaml project metadata for ATR (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/158\"\u003e#158\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slawekjaranowski\"\u003e\u003ccode\u003e@​slawekjaranowski\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate site descriptors and download page content (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/159\"\u003e#159\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slawekjaranowski\"\u003e\u003ccode\u003e@​slawekjaranowski\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003efeat: enable prevent branch protection rules (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/131\"\u003e#131\u003c/a\u003e) \u003ca href\u003d\"https://github.com/sebtiem\"\u003e\u003ccode\u003e@​sebtiem\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003ePrefer Inject API over plexus-component-annotations (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/127\"\u003e#127\u003c/a\u003e) \u003ca href\u003d\"https://github.com/olamy\"\u003e\u003ccode\u003e@​olamy\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove Jira URL (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/84\"\u003e#84\u003c/a\u003e) \u003ca href\u003d\"https://github.com/sparsick\"\u003e\u003ccode\u003e@​sparsick\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eEnable Github Issues (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/55\"\u003e#55\u003c/a\u003e) \u003ca href\u003d\"https://github.com/Bukama\"\u003e\u003ccode\u003e@​Bukama\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eRemove Java 5 references and clean up (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/24\"\u003e#24\u003c/a\u003e) \u003ca href\u003d\"https://github.com/elharo\"\u003e\u003ccode\u003e@​elharo\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📦 Dependency updates\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump apache/maven-gh-actions-shared/.github/workflows/release-drafter.yml from 4 to 5 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/162\"\u003e#162\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump apache/maven-gh-actions-shared/.github/workflows/stale.yml from 4 to 5 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/161\"\u003e#161\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump apache/maven-gh-actions-shared/.github/workflows/pr-automation.yml from 4 to 5 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/163\"\u003e#163\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump apache/maven-gh-actions-shared/.github/workflows/maven-verify.yml from 4 to 5 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/164\"\u003e#164\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate plexus-utils to 3.6.1 in IT dependencies (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/157\"\u003e#157\u003c/a\u003e) \u003ca href\u003d\"https://github.com/slawekjaranowski\"\u003e\u003ccode\u003e@​slawekjaranowski\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-plugins from 48 to 49 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/156\"\u003e#156\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mavenVersion from 3.9.15 to 3.9.16 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/154\"\u003e#154\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-plugins from 47 to 48 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/153\"\u003e#153\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mavenVersion from 3.9.14 to 3.9.15 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/151\"\u003e#151\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mavenVersion from 3.9.13 to 3.9.14 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/149\"\u003e#149\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mavenVersion from 3.9.12 to 3.9.13 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/147\"\u003e#147\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eUpdate to 47 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/138\"\u003e#138\u003c/a\u003e) \u003ca href\u003d\"https://github.com/Bukama\"\u003e\u003ccode\u003e@​Bukama\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mavenVersion from 3.9.10 to 3.9.11 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/124\"\u003e#124\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-plugins from 44 to 45 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/61\"\u003e#61\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mavenVersion from 3.9.9 to 3.9.10 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/60\"\u003e#60\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://issues.apache.org/jira/browse/MTOOLCHAINS-64\"\u003e[MTOOLCHAINS-64]\u003c/a\u003e - Bump org.apache.maven.plugins:maven-plugins from 43 to 44 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/52\"\u003e#52\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump org.junit:junit-bom from 5.12.0 to 5.12.1 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/pull/51\"\u003e#51\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003c/blockquote\u003e\n\u003cp\u003e... (truncated)\u003c/p\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-toolchains-plugin/commit/52474c04f074dec34db005886bcba3f9c5db78f7\"\u003e\u003ccode\u003e52474c0\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release maven-toolchains-plugin-3.3.0\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-toolchains-plugin/commit/39e84b2e86751264f4cc89be87ea8d9a93c2fdca\"\u003e\u003ccode\u003e39e84b2\u003c/code\u003e\u003c/a\u003e Update toolchains documentation to use JSR-330 terminology and links (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/issues/165\"\u003e#165\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-toolchains-plugin/commit/a213292b980768a480bd87bb271d772c2b215906\"\u003e\u003ccode\u003ea213292\u003c/code\u003e\u003c/a\u003e Bump apache/maven-gh-actions-shared/.github/workflows/release-drafter.yml\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-toolchains-plugin/commit/2402d77e3d12719fa18b1e08f66635287ec42d0f\"\u003e\u003ccode\u003e2402d77\u003c/code\u003e\u003c/a\u003e Replace Plexus XML configuration with JSR-330 annotated beans (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/issues/160\"\u003e#160\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-toolchains-plugin/commit/ab80fc840732538637f13c8082b2d01b2d2dc2ce\"\u003e\u003ccode\u003eab80fc8\u003c/code\u003e\u003c/a\u003e Bump apache/maven-gh-actions-shared/.github/workflows/stale.yml (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/issues/161\"\u003e#161\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-toolchains-plugin/commit/525f40c3ff59a6acce3598334e5843260d61d98e\"\u003e\u003ccode\u003e525f40c\u003c/code\u003e\u003c/a\u003e Bump apache/maven-gh-actions-shared/.github/workflows/pr-automation.yml (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/issues/163\"\u003e#163\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-toolchains-plugin/commit/d3960b93d3c59dd47ac4e60f74715ae31c1f7b6c\"\u003e\u003ccode\u003ed3960b9\u003c/code\u003e\u003c/a\u003e Bump apache/maven-gh-actions-shared/.github/workflows/maven-verify.yml (\u003ca href\u003d\"https://redirect.github.com/apache/maven-toolchains-plugin/issues/164\"\u003e#164\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-toolchains-plugin/commit/e0b39a6ca45d9b78a5065c3bcc2dad4a0949f816\"\u003e\u003ccode\u003ee0b39a6\u003c/code\u003e\u003c/a\u003e Add .asf.yaml project metadata for ATR\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-toolchains-plugin/commit/e53bcec19fb51c7097050c841171043eab90920f\"\u003e\u003ccode\u003ee53bcec\u003c/code\u003e\u003c/a\u003e Add tag-template to release-drafter config\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-toolchains-plugin/commit/df6df088f12ba10e29f3109a8573e6374b65bb2a\"\u003e\u003ccode\u003edf6df08\u003c/code\u003e\u003c/a\u003e Update site descriptors and download page content\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/apache/maven-toolchains-plugin/compare/maven-toolchains-plugin-3.2.0...maven-toolchains-plugin-3.3.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.safere:safere` from 0.9.0 to 0.10.0\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/eaftan/safere/releases\"\u003eorg.safere:safere\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003eSafeRE 0.10.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eThis release adds structured static and runtime regex diagnostics, improves several successful-match and replacement paths, and expands the benchmark infrastructure used to compare SafeRE with other regex engines.\u003c/p\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003ePattern.analysis()\u003c/code\u003e for immutable static information about pattern features, engine capabilities, limitations, program size, and captures, plus a process-wide \u003ccode\u003eSafeReMatchDiagnostics\u003c/code\u003e listener that reports the strategies used by matching and replacement operations without exposing pattern or input text. Runtime diagnostics remain disabled by default and the disabled path does not allocate diagnostics state. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePerformance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAccelerated long-input multi-byte literal searches over UTF-8 input with a SWAR candidate filter while preserving linear-time fallback behavior; measured absent-literal scans improved by 2.2–6.2×, with explicit Boyer-Moore-Horspool batching preserving short-input throughput. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/580\"\u003e#580\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/583\"\u003e#583\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduced repeated capture-extraction work after callers request inner captures, improving representative log parsing by 1.85× and stack-trace extraction by 1.51×. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/587\"\u003e#587\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded a single backward-scan path for greedy whole-input wrappers around word-bounded ASCII case-insensitive keyword alternatives, producing improvements from 108× at 1,000 characters to 14,726× at 100,000 characters in the measured matching workload. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eRemoved redundant anchored DFA verification passes when forward and reverse bounds are authoritative, improving representative successful searches by 1.21–1.33×. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved replacement fast paths by recording template capture demand earlier and directly handling nullable repeated character classes with literal templates; measured empty-match \u003ccode\u003ereplaceAll\u003c/code\u003e improved by 7.22× and Pig Latin replacement by 1.20×. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eRefreshed the benchmark report with reproducible same-runtime and cross-language comparisons, and integrated the separately licensed OpenJDK-derived regex benchmark suite into the standard collection workflow. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/581\"\u003e#581\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/596\"\u003e#596\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eMade benchmark inputs reproducible across Java, C++, and Go by materializing one shared workload definition, and decoupled cross-engine workload selection from JMH entry points. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/601\"\u003e#601\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/605\"\u003e#605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved release automation, centralized the CI JDK configuration, and made the C++ benchmark harness portable to macOS. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/582\"\u003e#582\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/598\"\u003e#598\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/600\"\u003e#600\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eThanks to \u003ca href\u003d\"https://github.com/wendigo\"\u003e\u003ccode\u003e@​wendigo\u003c/code\u003e\u003c/a\u003e for the SWAR-based UTF-8 literal-search acceleration and its benchmark and correctness coverage.\u003c/p\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href\u003d\"https://github.com/eaftan/safere/compare/v0.9.0...v0.10.0\"\u003ehttps://github.com/eaftan/safere/compare/v0.9.0...v0.10.0\u003c/a\u003e\u003c/p\u003e\n\u003c/blockquote\u003e\n\u003c/details\u003e\n\u003cdetails\u003e\n\u003csummary\u003eCommits\u003c/summary\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/20f4ec5e386a914076e5eb586f38755eb00a6a1d\"\u003e\u003ccode\u003e20f4ec5\u003c/code\u003e\u003c/a\u003e Update README examples for 0.10.0 (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/621\"\u003e#621\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/e03377d2a32208e7eb6523d510b86e8aa0408829\"\u003e\u003ccode\u003ee03377d\u003c/code\u003e\u003c/a\u003e Decouple cross-engine benchmark execution (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/605\"\u003e#605\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/c4e8203bab7d31ca030f024382518c76d8ffed80\"\u003e\u003ccode\u003ec4e8203\u003c/code\u003e\u003c/a\u003e Materialize shared benchmark inputs before execution (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/601\"\u003e#601\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/e84ff6018a4f0878f3a9ca8216afb4ab17ec43df\"\u003e\u003ccode\u003ee84ff60\u003c/code\u003e\u003c/a\u003e Centralize CI JDK configuration (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/600\"\u003e#600\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/7ac65120197821c9b2abd60b0f6863909b6292a5\"\u003e\u003ccode\u003e7ac6512\u003c/code\u003e\u003c/a\u003e Make C++ benchmark harness build on macOS (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/598\"\u003e#598\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/ea3f66d4607ddd5e6e7f5e390b89f90ebcb1b7da\"\u003e\u003ccode\u003eea3f66d\u003c/code\u003e\u003c/a\u003e Integrate external OpenJDK regex benchmarks (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/596\"\u003e#596\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/f4360fd72c2251c9c3693654e3484926d26b54de\"\u003e\u003ccode\u003ef4360fd\u003c/code\u003e\u003c/a\u003e Add static and runtime regex diagnostics (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/567\"\u003e#567\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/1f7c41483b0a6c66729a4878dae539ace7a56e66\"\u003e\u003ccode\u003e1f7c414\u003c/code\u003e\u003c/a\u003e Improve replacement fast paths (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/589\"\u003e#589\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/bc315e75dcd1ad9e1fa5feb6e1c04cbf4c1a5359\"\u003e\u003ccode\u003ebc315e7\u003c/code\u003e\u003c/a\u003e Remove redundant anchored DFA passes (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/591\"\u003e#591\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/50708cf2a975791c88793b0821ca4acd781f9c43\"\u003e\u003ccode\u003e50708cf\u003c/code\u003e\u003c/a\u003e Accelerate greedy keyword searches (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/588\"\u003e#588\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/eaftan/safere/compare/v0.9.0...v0.10.0\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency\u0027s major version (unless you unignore this specific dependency\u0027s major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency\u0027s minor version (unless you unignore this specific dependency\u0027s minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\u003c/details\u003e\n\nFixes https://github.com/google/error-prone/pull/5995\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/google/error-prone/pull/5995 from google:dependabot/maven/dependencies-102eaeaa0f 72b18a09b9504f66a7b9b3c1d600cf5a6c7f7e0d\nPiperOrigin-RevId: 957985602\n"
    },
    {
      "commit": "a2017138ccfae362a2ddb6ca44d1bd2985a829ce",
      "tree": "7a52c6e5ae4dce4b4d651f0a1a020a8f133d127d",
      "parents": [
        "663409a35b5ae8a52b0bd163eb9103322d6ca7fd"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Sun Aug 02 09:30:52 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sun Aug 02 09:31:49 2026"
      },
      "message": "Add descriptions to the `ErrorProneCommentStyle` enum.\n\nPiperOrigin-RevId: 957881951\n"
    },
    {
      "commit": "663409a35b5ae8a52b0bd163eb9103322d6ca7fd",
      "tree": "7ec8cfb96137ce2e4482fdcc077355af09597aec",
      "parents": [
        "859d2b019d3496c342f2bd92aec2687f0739695c"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Sun Aug 02 00:48:44 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sun Aug 02 00:49:44 2026"
      },
      "message": "Remove `containsAtLeast` from `DistinctVarargsChecker` --- it respects cardinality and duplicates are meaningful!\n\nPiperOrigin-RevId: 957758519\n"
    },
    {
      "commit": "859d2b019d3496c342f2bd92aec2687f0739695c",
      "tree": "ed46d279cc3a486de85becf6079c63afc5b26135",
      "parents": [
        "e0cb5a1f02776854c71b677c39f805b5f5b09745"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Sat Aug 01 22:41:46 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sat Aug 01 22:42:29 2026"
      },
      "message": "Add JDK, Guava, Protobuf, Truth, Mockito, and ErrorProne APIs to DistinctVarargsChecker.\n\nFlag method invocations when passed non-distinct arguments for:\n- Objects.hash, Objects.requireNonNullElse, com.google.common.base.Objects.hashCode\n- MoreObjects.firstNonNull\n- CompletableFuture.allOf, CompletableFuture.anyOf\n- Mockito.verifyNoInteractions, Mockito.verifyNoMoreInteractions, Mockito.inOrder, Mockito.ignoreStubs\n- EnumSet.of\n- Predicates.and, Predicates.or\n- java.nio.file.Files (copy, move, isSameFile, mismatch, write, writeString)\n- Collections.disjoint\n- Sets.intersection, Sets.union, Sets.difference, Sets.symmetricDifference\n- Stream.concat, IntStream.concat, LongStream.concat, DoubleStream.concat, Iterables.concat\n- Math.max/min, StrictMath.max/min, Primitive boxed max/min (Integer, Long, Double, Float)\n- Guava Primitive max/min (Ints, Longs, Doubles, Floats, Shorts, Chars, SignedBytes, UnsignedBytes)\n- Comparators.min, Comparators.max\n- Maps.difference\n- FieldMaskUtil (union, intersection, subtract)\n- Truth Subject (isAnyOf, isNoneOf), Truth IterableSubject (containsAnyOf, containsAtLeast), Truth MapSubject (containsExactly key parity)\n- ErrorProne Matchers (anyOf, allOf), MethodClassMatcher (namedAnyOf), StaticMethodMatcher/InstanceMethodMatcher/AnyMethodMatcher (onClassAny, onExactClassAny, onDescendantOfAny)\n\nPiperOrigin-RevId: 957729607\n"
    },
    {
      "commit": "e0cb5a1f02776854c71b677c39f805b5f5b09745",
      "tree": "9ae75868fb83d2bf14fcc7689c3ffe678208ddbb",
      "parents": [
        "0fbd51ee3b5b667d09f696ac49cb43628aadb435"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Sat Aug 01 21:53:39 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sat Aug 01 21:54:40 2026"
      },
      "message": "Improve `TraditionalJavadocToMarkdown` ordered list handling\n\nConverts traditional Javadoc `\u003col\u003e` list items to `1.` numbered bullets.\n\nPiperOrigin-RevId: 957719804\n"
    },
    {
      "commit": "0fbd51ee3b5b667d09f696ac49cb43628aadb435",
      "tree": "76b595c888b298b8167f457dada65245bee2e023",
      "parents": [
        "16e05d52d27c511288d29968c4dfccf40de574b7"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Sat Aug 01 13:32:49 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sat Aug 01 13:34:36 2026"
      },
      "message": "Skip tests under JDK 23 that fail there.\n\n(I confirmed that they fail under 24, as well.)\n\nThese tests have been failing in OSS CI since they were released there in https://github.com/google/error-prone/commit/48281bf1ed10aa82ebae210a1eb6c3890269206a.\n\nExample [failure](https://github.com/google/error-prone/actions/runs/30458321809/job/90597568011):\n\n```\n[ERROR]   TraditionalJavadocToMarkdownTest.tableTag:1948 value of:\n    maybeFormat(...)\nexpected:\n    /// \u003ctable\u003e\n    /// \u003ctr\u003e\u003ctd\u003eFoo\u003c/td\u003e\u003c/tr\u003e\n    /// \u003c/table\u003e\n    public class Test {}\n\nbut was:\n    /// \u003ctable\u003e\n    ///  \u003ctr\u003e\u003ctd\u003eFoo\u003c/td\u003e\u003c/tr\u003e\n    ///  \u003c/table\u003e\n    public class Test {}\n```\n\nI am doubly confused because the _original_ batch of failures did _not_ contain `nestedPreTags` but then the failures for _this_ PR did, forcing me to revise it.\n\nPiperOrigin-RevId: 957613778\n"
    },
    {
      "commit": "16e05d52d27c511288d29968c4dfccf40de574b7",
      "tree": "3ca35bf609fd4a445fda50c16002cd72536a9be0",
      "parents": [
        "8fb3863c0a0ab7427bcdf44c81676ac984912914"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Fri Jul 31 20:01:32 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Jul 31 20:02:40 2026"
      },
      "message": "Refactor `TraditionalJavadocToMarkdown` to use a unified scope stack.\n\nReplaces separate `inPre`, `inSee`, and `aTagStack` tracking fields with a unified `Deque\u003cTagFrame\u003e scopeStack` tracking HTML start and end tags during `DocTreePathScanner` traversal.\n\n- Represent `TagFrame` as a generic Java `record TagFrame(String name, ImmutableMap\u003cString, String\u003e attributes)`.\n- Unify `visitStartElement` pipeline across all HTML elements.\n- Implement zero-allocation `depthOf`, `inPre`, and `listDepth` helper queries on `scopeStack`.\n- Add implementation comments for `TagFrame`, `inSee()`, and `visitEndElement`.\n- Add test coverage for nested italic formatting (`\u003ci\u003e`/`\u003cem\u003e`), nested mixed `ol`/`ul` lists, and unmatched closing HTML tags.\n\nPiperOrigin-RevId: 957293242\n"
    },
    {
      "commit": "8fb3863c0a0ab7427bcdf44c81676ac984912914",
      "tree": "8898826992c24fc768e844a889086b4d17d636fd",
      "parents": [
        "b3a72398db0452d47ba22f693cc1a34ac0ad45c9"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Thu Jul 30 18:33:42 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Jul 30 18:34:29 2026"
      },
      "message": "Remove unused imports when comparing test outputs\n\nAnd also remove unused imports in MisformattedTestData\n\nPiperOrigin-RevId: 956642850\n"
    },
    {
      "commit": "b3a72398db0452d47ba22f693cc1a34ac0ad45c9",
      "tree": "e917076723598aa33ca116ff6ab5f0f95a0a1021",
      "parents": [
        "9c2cd0e8b53d6e8b637aa0c37f98725366fd4e04"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Thu Jul 30 16:46:26 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Jul 30 16:47:38 2026"
      },
      "message": "Bump `google-java-format` version to 1.36.0 and release some additional markdown tests.\n\nPiperOrigin-RevId: 956579488\n"
    },
    {
      "commit": "9c2cd0e8b53d6e8b637aa0c37f98725366fd4e04",
      "tree": "267c4bbfcaa7719c0ce54c9128031d2e0f48c6fa",
      "parents": [
        "ab6b20e36f037e08a8fa5411b530b64fa56900fa"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Thu Jul 30 06:08:30 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Jul 30 06:10:40 2026"
      },
      "message": "Bump JSpecify to 1.0.1.\n\nPiperOrigin-RevId: 956293113\n"
    },
    {
      "commit": "ab6b20e36f037e08a8fa5411b530b64fa56900fa",
      "tree": "e8611c66f5cb649e1a0245c9c325f80af9d79ab4",
      "parents": [
        "837aa93432139167041bf3f90dd2e3ac653dc6db"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Wed Jul 29 23:16:22 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Jul 29 23:17:09 2026"
      },
      "message": "Preserves HTML anchor tags (e.g. `\u003ca id\u003d\"...\"\u003e` and `\u003ca name\u003d\"...\"\u003e`) that do\nnot possess an `href` attribute during Javadoc to Markdown conversion, rather\nthan converting them into empty Markdown links.\n\nPiperOrigin-RevId: 956143951\n"
    },
    {
      "commit": "837aa93432139167041bf3f90dd2e3ac653dc6db",
      "tree": "7bd38c0ece1a96409553ab293203cb10bde4c067",
      "parents": [
        "d087e67f894f56edb9676c62feb54d7a57c26335"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Wed Jul 29 18:49:39 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Jul 29 18:50:34 2026"
      },
      "message": "Add some additional tests w/ loop and switch case reassignments to `ReturnMissingNullableTest`.\n\nPiperOrigin-RevId: 956005916\n"
    },
    {
      "commit": "d087e67f894f56edb9676c62feb54d7a57c26335",
      "tree": "ec53dae15cd58fbb3b464a8bbbb1cae96160da03",
      "parents": [
        "48281bf1ed10aa82ebae210a1eb6c3890269206a"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Wed Jul 29 17:57:46 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Jul 29 17:58:33 2026"
      },
      "message": "Add a[] for nested types in `MultipleNullnessAnnotations`.\n\nPiperOrigin-RevId: 955975207\n"
    },
    {
      "commit": "48281bf1ed10aa82ebae210a1eb6c3890269206a",
      "tree": "8ba58fab674329383cfca78f256bf7690d25ea78",
      "parents": [
        "23b126f08ecbe805d158b4203c1b1012f8faec2c"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Wed Jul 29 13:54:33 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Jul 29 13:55:31 2026"
      },
      "message": "Open source the `TraditionalJavadocToMarkdown` conversion tool (and tests).\n\nPiperOrigin-RevId: 955856661\n"
    },
    {
      "commit": "23b126f08ecbe805d158b4203c1b1012f8faec2c",
      "tree": "6470a9be5706eb81b2c96551f749d5a566d045e2",
      "parents": [
        "04af48c45e781f26bfdb53854cdeb7e7a12949dc"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Jul 29 10:38:37 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Jul 29 10:39:43 2026"
      },
      "message": "Remove unused imports in MisformattedTestData\n\nAnd run it over Error Prone.\n\nPiperOrigin-RevId: 955782665\n"
    },
    {
      "commit": "04af48c45e781f26bfdb53854cdeb7e7a12949dc",
      "tree": "21df495100f4c2da5fd564da70bad88079cd0fdc",
      "parents": [
        "a9c52159d07683744d166d58ded1aa6ce65c79a5"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Tue Jul 28 18:03:22 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Jul 28 18:04:13 2026"
      },
      "message": "[StatementSwitchToExpressionSwitch] refactor and consolidate wrapping-in-braces logic\n\nPiperOrigin-RevId: 955357577\n"
    },
    {
      "commit": "a9c52159d07683744d166d58ded1aa6ce65c79a5",
      "tree": "b9eb3e2230025e733fb679bef5c31e3367c157d1",
      "parents": [
        "4cfc7155fd2fcbf2e290d2990df83dfc75d31db1"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Tue Jul 28 18:00:20 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Jul 28 18:01:16 2026"
      },
      "message": "Delete `BugPattern.generateExamplesFromTestCases()`, ~6 years after its deprecation.\n\nPiperOrigin-RevId: 955355534\n"
    },
    {
      "commit": "4cfc7155fd2fcbf2e290d2990df83dfc75d31db1",
      "tree": "c4a5bfed82704b4d61aea3398facd3b4d072f4cc",
      "parents": [
        "1a19f25aa6b3c51b029a1a5402d5e3ebb45f69c9"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Mon Jul 27 21:06:03 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Jul 27 21:07:02 2026"
      },
      "message": "Discourage referring to `PrimitiveIterator.OfInt` as just \"`OfInt`\" (and similarly for the other variants).\n\nIf people dislike the long name, I\u0027d recommend `var`. (Of course, that applies only to implementation code, not to APIs.)\n\nPiperOrigin-RevId: 954819127\n"
    },
    {
      "commit": "1a19f25aa6b3c51b029a1a5402d5e3ebb45f69c9",
      "tree": "5c9a7455a38621adccbc8afa871dfdf8931c6a51",
      "parents": [
        "af371f400d6c50862dcc2449bad97f7a9ab42cec"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Jul 27 20:45:44 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Jul 27 20:46:33 2026"
      },
      "message": "Add test cases demonstrating that `ReturnsNullCollection` and `ProvidesNull` currently do not flag conditional `null` returns (e.g., `return foo ? bar : null`).\nThese tests currently pass without diagnostics and will be updated when the checks are updated to use `hasDefinitelyNullBranch` in a follow-up CL.\n\nPiperOrigin-RevId: 954808074\n"
    },
    {
      "commit": "af371f400d6c50862dcc2449bad97f7a9ab42cec",
      "tree": "54c7b0b120f14569e5080ae1ef4b55b3a6b72d9f",
      "parents": [
        "0f10bb0ac166ebb825a8a75ddbe689075519ceb6"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jul 27 17:19:45 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Jul 27 17:20:54 2026"
      },
      "message": "Bump the dependencies group with 3 updates\n\nBumps the dependencies group with 3 updates: [org.apache.maven.plugins:maven-jar-plugin](https://github.com/apache/maven-jar-plugin), [org.safere:safere](https://github.com/eaftan/safere) and [joda-time:joda-time](https://github.com/JodaOrg/joda-time).\n\nUpdates `org.apache.maven.plugins:maven-jar-plugin` from 3.5.0 to 3.5.1\n\u003cdetails\u003e\n\u003csummary\u003eRelease notes\u003c/summary\u003e\n\u003cp\u003e\u003cem\u003eSourced from \u003ca href\u003d\"https://github.com/apache/maven-jar-plugin/releases\"\u003eorg.apache.maven.plugins:maven-jar-plugin\u0027s releases\u003c/a\u003e.\u003c/em\u003e\u003c/p\u003e\n\u003cblockquote\u003e\n\u003ch2\u003e3.5.1\u003c/h2\u003e\n\u003c!-- raw HTML omitted --\u003e\n\u003ch2\u003e📝 Documentation updates\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdd AGENTS.md + SECURITY.md security-model pointer for scanner discoverability (\u003ca href\u003d\"https://redirect.github.com/apache/maven-jar-plugin/pull/550\"\u003e#550\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\u003eAdd AGENTS.md + SECURITY.md security-model pointer for scanner discoverability (\u003ca href\u003d\"https://redirect.github.com/apache/maven-jar-plugin/pull/550\"\u003e#550\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\u003eUse plugin version properties (3.x) (\u003ca href\u003d\"https://redirect.github.com/apache/maven-jar-plugin/pull/535\"\u003e#535\u003c/a\u003e) \u003ca href\u003d\"https://github.com/Bukama\"\u003e\u003ccode\u003e@​Bukama\u003c/code\u003e\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003e📦 Dependency updates\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eBump org.apache.maven.plugins:maven-plugins from 48 to 49 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-jar-plugin/pull/547\"\u003e#547\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-archiver from 4.11.0 to 4.12.0 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-jar-plugin/pull/538\"\u003e#538\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump mavenVersion from 3.9.15 to 3.9.16 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-jar-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 org.apache.maven.plugins:maven-plugins from 47 to 48 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-jar-plugin/pull/534\"\u003e#534\u003c/a\u003e) @\u003ca href\u003d\"https://github.com/apps/dependabot\"\u003edependabot[bot]\u003c/a\u003e\u003c/li\u003e\n\u003cli\u003eBump commons-io:commons-io from 2.21.0 to 2.22.0 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-jar-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 mavenVersion from 3.9.14 to 3.9.15 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-jar-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 mavenVersion from 3.9.12 to 3.9.14 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-jar-plugin/pull/526\"\u003e#526\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-jar-plugin/pull/523\"\u003e#523\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 46 to 47 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-jar-plugin/pull/519\"\u003e#519\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-archiver from 4.10.4 to 4.11.0 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-jar-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.4.0 to 3.5.0 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-jar-plugin/pull/517\"\u003e#517\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 45 to 46 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-jar-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:maven-archiver from 3.6.5 to 3.6.6 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-jar-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 mavenVersion from 3.9.11 to 3.9.12 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-jar-plugin/pull/509\"\u003e#509\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-jar-plugin/commit/b0cd63d0ad544aa552f06e4492faf984bf2c85c1\"\u003e\u003ccode\u003eb0cd63d\u003c/code\u003e\u003c/a\u003e [maven-release-plugin] prepare release maven-jar-plugin-3.5.1\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-jar-plugin/commit/5318a4feaf529d6fa22c4622fff2d54fefe7f7dd\"\u003e\u003ccode\u003e5318a4f\u003c/code\u003e\u003c/a\u003e Add AGENTS.md + SECURITY.md security-model pointer for scanner discoverability\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-jar-plugin/commit/8e0b9bb307fc29b8d267f18eca9d47be0a7f16e0\"\u003e\u003ccode\u003e8e0b9bb\u003c/code\u003e\u003c/a\u003e Bump org.apache.maven.plugins:maven-plugins from 48 to 49 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-jar-plugin/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-jar-plugin/commit/d5a438b6add9a9115f5a2c9b27db67e0d962bb74\"\u003e\u003ccode\u003ed5a438b\u003c/code\u003e\u003c/a\u003e Fix javadoc\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-jar-plugin/commit/774fac9215d92bfac67ece082872b00475580b21\"\u003e\u003ccode\u003e774fac9\u003c/code\u003e\u003c/a\u003e Bump org.codehaus.plexus:plexus-archiver from 4.11.0 to 4.12.0\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-jar-plugin/commit/b71f40368edc878b3dcaa9840d950bd7d297d4c4\"\u003e\u003ccode\u003eb71f403\u003c/code\u003e\u003c/a\u003e Bump mavenVersion from 3.9.15 to 3.9.16 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-jar-plugin/issues/536\"\u003e#536\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-jar-plugin/commit/9f2a001a00fcbb0408219a11f62b48c4dfde78d3\"\u003e\u003ccode\u003e9f2a001\u003c/code\u003e\u003c/a\u003e Use plugin version properties (3.x) (\u003ca href\u003d\"https://redirect.github.com/apache/maven-jar-plugin/issues/535\"\u003e#535\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-jar-plugin/commit/68a978f952ba510f7378fd287c5172dc560079e3\"\u003e\u003ccode\u003e68a978f\u003c/code\u003e\u003c/a\u003e Bump org.apache.maven.plugins:maven-plugins from 47 to 48 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-jar-plugin/issues/534\"\u003e#534\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-jar-plugin/commit/e1058217f657691a3e50b0c7e0620fd13c8e83c3\"\u003e\u003ccode\u003ee105821\u003c/code\u003e\u003c/a\u003e Bump commons-io:commons-io from 2.21.0 to 2.22.0 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-jar-plugin/issues/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/apache/maven-jar-plugin/commit/953dc1abbb527b8128657f2aeadfdca0557d974d\"\u003e\u003ccode\u003e953dc1a\u003c/code\u003e\u003c/a\u003e Bump mavenVersion from 3.9.14 to 3.9.15 (\u003ca href\u003d\"https://redirect.github.com/apache/maven-jar-plugin/issues/528\"\u003e#528\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/apache/maven-jar-plugin/compare/maven-jar-plugin-3.5.0...maven-jar-plugin-3.5.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\nUpdates `org.safere:safere` from 0.8.0 to 0.9.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.9.0\u003c/h2\u003e\n\u003ch2\u003eHighlights\u003c/h2\u003e\n\u003cp\u003eSafeRE 0.9.0 adds direct matching and replacement over borrowed UTF-8 byte-array views, avoiding an input-sized conversion to \u003ccode\u003eString\u003c/code\u003e for applications that already store text as UTF-8. This release also substantially improves matching, replacement, and splitting performance across the DFA, NFA, BitState, and OnePass engines, while expanding differential and scaling coverage for the optimized paths.\u003c/p\u003e\n\u003ch2\u003eNew features\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eAdded \u003ccode\u003eUtf8Input\u003c/code\u003e and \u003ccode\u003eUtf8Matcher\u003c/code\u003e for matching validated or trusted UTF-8 byte-array views. Match and capture coordinates are reported as relative byte offsets, and \u003ccode\u003eUtf8Sink\u003c/code\u003e supports byte-native replacement output. Existing compiled \u003ccode\u003ePattern\u003c/code\u003e instances can be shared between the \u003ccode\u003eString\u003c/code\u003e and UTF-8 APIs. See the \u003ca href\u003d\"https://github.com/eaftan/safere/blob/v0.9.0/UTF8.md\"\u003edirect UTF-8 matching guide\u003c/a\u003e for API details and semantic boundaries. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/569\"\u003e#569\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/576\"\u003e#576\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eCompatibility and correctness\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eCorrected DFA priority and match-boundary handling for overlapping alternatives, empty-width assertions, ambiguous reverse starts, and boundary-sensitive matches. These fixes allow more patterns to use the DFA path without changing leftmost-first match results. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/505\"\u003e#505\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/506\"\u003e#506\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/532\"\u003e#532\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/539\"\u003e#539\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003ePrevented an \u003ccode\u003eArrayIndexOutOfBoundsException\u003c/code\u003e when complex empty-width loops temporarily expand to duplicate DFA states. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/537\"\u003e#537\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eFixed OnePass eligibility, literal-prefix extraction through nested capture groups, literal prefix fallback behavior, grapheme-search fast rejection, and CRLF-sensitive DFA transition caching. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/487\"\u003e#487\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/541\"\u003e#541\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/555\"\u003e#555\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/558\"\u003e#558\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded call-by-call UTF-8 crosschecks against SafeRE \u003ccode\u003eString\u003c/code\u003e matching and \u003ccode\u003ejava.util.regex\u003c/code\u003e, covering captures, matcher state, input windows, byte-coordinate mapping, and replacement output. This also fixed bounded literal search so budget exhaustion falls back safely instead of missing a final candidate. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/575\"\u003e#575\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003ePerformance\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded DFA eligibility for safe alternations and greedy nested nullable loops, and removed obsolete start-reliability fallbacks after correcting reverse-DFA semantics. Representative benchmark improvements include 14.7x for a 100 KB safe-alternation replacement workload and approximately 100x for an overlapping-URL search that previously fell back from the DFA. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/495\"\u003e#495\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/506\"\u003e#506\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/529\"\u003e#529\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded ASCII-specialized DFA loops and streamlined DFA state storage, transition lookup, cache hits, character-class lookup, and inner-loop dispatch. The ASCII fast paths improved the reported representative 1 KB search workloads by 22% to 37%. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/501\"\u003e#501\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/517\"\u003e#517\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/535\"\u003e#535\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/546\"\u003e#546\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/561\"\u003e#561\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduced Pike NFA allocation and execution overhead through reusable state storage, pooled NFA instances, generational visited-state tracking, combined code-point decoding, and cached empty-width context. Reported scan-heavy forced-NFA workloads improved by 2.3x to 2.5x, with representative replacement and split workloads improving by 2.2x and 1.6x respectively. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/496\"\u003e#496\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/510\"\u003e#510\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eAdded optimized replacement paths for DFA-eligible and character-class patterns, including replacements that reference capture groups, while reducing temporary allocations in \u003ccode\u003eappendReplacement\u003c/code\u003e. \u003ccode\u003ePattern.split\u003c/code\u003e and \u003ccode\u003esplitWithDelimiters\u003c/code\u003e now share an optimized match position scan. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/547\"\u003e#547\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/549\"\u003e#549\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/554\"\u003e#554\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/556\"\u003e#556\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved unanchored search acceleration by extracting starting character classes through alternations and case-insensitive literals, scanning for required pattern content, and retaining the DFA path after rejected literal-prefix candidates. The reported alternation-prefix workload improved by 46%. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/492\"\u003e#492\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/541\"\u003e#541\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/577\"\u003e#577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eReduced allocations and copying in matcher group storage, OnePass captures, replacement builders, BitState capture resolution, and split operations. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/543\"\u003e#543\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/544\"\u003e#544\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/548\"\u003e#548\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/553\"\u003e#553\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003ePerformance figures above are workload-specific benchmark results reported by the corresponding changes; they are not general throughput guarantees.\u003c/p\u003e\n\u003ch2\u003eOther changes\u003c/h2\u003e\n\u003cul\u003e\n\u003cli\u003eExpanded comparative real-world benchmarks, added stable work-counter scaling tests, and now run saved fuzz regression inputs in CI. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/500\"\u003e#500\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/514\"\u003e#514\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/515\"\u003e#515\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/527\"\u003e#527\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eImproved the native RE2 FFM comparison wrapper and its portability across Linux and macOS. (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/499\"\u003e#499\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/536\"\u003e#536\u003c/a\u003e, \u003ca href\u003d\"https://redirect.github.com/eaftan/safere/pull/557\"\u003e#557\u003c/a\u003e)\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch2\u003eContributors\u003c/h2\u003e\n\u003cp\u003eThank you to the community contributors who helped make this release possible:\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/cushon\"\u003e\u003ccode\u003e@​cushon\u003c/code\u003e\u003c/a\u003e contributed extensive correctness and performance work across the DFA, NFA, BitState, and OnePass engines, as well as replacement, splitting, benchmarking, and native RE2 comparison improvements.\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eamonnmcmanus\"\u003e\u003ccode\u003e@​eamonnmcmanus\u003c/code\u003e\u003c/a\u003e improved benchmark-script compatibility across Bash versions.\u003c/li\u003e\n\u003c/ul\u003e\n\u003cp\u003e\u003cstrong\u003eFull changelog:\u003c/strong\u003e \u003ca href\u003d\"https://github.com/eaftan/safere/compare/v0.8.0...v0.9.0\"\u003ehttps://github.com/eaftan/safere/compare/v0.8.0...v0.9.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/6fe67606d7c7724b9b1f1736c3bee04c674eaec5\"\u003e\u003ccode\u003e6fe6760\u003c/code\u003e\u003c/a\u003e Prepare documentation for the 0.9.0 release (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/578\"\u003e#578\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/1907a4ef81bd3302c4aba40613c8aaa554bb7dde\"\u003e\u003ccode\u003e1907a4e\u003c/code\u003e\u003c/a\u003e Accelerate searches using required pattern content (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/577\"\u003e#577\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/399b7a7d96f5582ace990dd41629a244dbdc3f6f\"\u003e\u003ccode\u003e399b7a7\u003c/code\u003e\u003c/a\u003e Document direct UTF-8 matching API (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/576\"\u003e#576\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/4fdf92a8a6dc0124c4af29fe247f9fb8c0249e9e\"\u003e\u003ccode\u003e4fdf92a\u003c/code\u003e\u003c/a\u003e Crosscheck UTF-8 matching against String oracles (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/575\"\u003e#575\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/abbe57f461d1e58b0ad622b6a8f7ef00698f8a9b\"\u003e\u003ccode\u003eabbe57f\u003c/code\u003e\u003c/a\u003e Restore String matching performance after UTF-8 input changes (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/572\"\u003e#572\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/7a392a13729e34e2631c1be470b802e983970974\"\u003e\u003ccode\u003e7a392a1\u003c/code\u003e\u003c/a\u003e Add direct UTF-8 input support (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/569\"\u003e#569\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/c8f51f3fa99976566ac9a3260df371caedec929e\"\u003e\u003ccode\u003ec8f51f3\u003c/code\u003e\u003c/a\u003e Add daily repo assist skill (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/566\"\u003e#566\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/0431e1ec683cf7af27cd410ba9420d304ee1ee3f\"\u003e\u003ccode\u003e0431e1e\u003c/code\u003e\u003c/a\u003e Optimize replacement operations with DFA fast path (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/547\"\u003e#547\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/737f66ad8c8686afbcd03dd5532ff883f9094cf8\"\u003e\u003ccode\u003e737f66a\u003c/code\u003e\u003c/a\u003e Avoid unnecessary third DFA pass for start-anchored patterns (\u003ca href\u003d\"https://redirect.github.com/eaftan/safere/issues/563\"\u003e#563\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/eaftan/safere/commit/37f5e828a157c203bfd47125e1c69f91cd5316d0\"\u003e\u003ccode\u003e37f5e82\u003c/code\u003e\u003c/a\u003e Revert \u0026quot;Generalize \u003ccode\u003echarClassPrefixAscii\u003c/code\u003e to support non-ASCII character clas...\u003c/li\u003e\n\u003cli\u003eAdditional commits viewable in \u003ca href\u003d\"https://github.com/eaftan/safere/compare/v0.8.0...v0.9.0\"\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.2 to 2.14.3\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.3\u003c/h2\u003e\n\u003cp\u003eSee the \u003ca href\u003d\"https://www.joda.org/joda-time/changes-report.html#a2.14.3\"\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 2026cgtz 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/833\"\u003eJodaOrg/joda-time#833\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.2...v2.14.3\"\u003ehttps://github.com/JodaOrg/joda-time/compare/v2.14.2...v2.14.3\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/bbfaf93fbc7b33fa266b1e246efb099a41869917\"\u003e\u003ccode\u003ebbfaf93\u003c/code\u003e\u003c/a\u003e Release v2.14.3\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/JodaOrg/joda-time/commit/2a7a1aed39fc5641dcc9cb7bb10618769328497c\"\u003e\u003ccode\u003e2a7a1ae\u003c/code\u003e\u003c/a\u003e Update time zone data to 2026cgtz (\u003ca href\u003d\"https://redirect.github.com/JodaOrg/joda-time/issues/833\"\u003e#833\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003eSee full diff in \u003ca href\u003d\"https://github.com/JodaOrg/joda-time/compare/v2.14.2...v2.14.3\"\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/5966\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/google/error-prone/pull/5966 from google:dependabot/maven/dependencies-7f7858161f f4a2939d365ac3312d31fee18305db563724e3d2\nPiperOrigin-RevId: 954697824\n"
    },
    {
      "commit": "0f10bb0ac166ebb825a8a75ddbe689075519ceb6",
      "tree": "26e297bae49c972b3cc3133b4a8cbbce5339b346",
      "parents": [
        "3f5fe61863d1838606756d4f9d3dd8172bb02e57"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Jul 27 16:49:36 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Jul 27 16:50:17 2026"
      },
      "message": "PUBLIC: Replace `.setArgs(\"-XepCompilingTestOnlyCode\")` and `.setArgs(ImmutableList.of(\"-XepCompilingTestOnlyCode\"))` with the new `.setTestOnly()` helper method across static analysis and Error Prone test suites.\n\nPiperOrigin-RevId: 954681629\n"
    },
    {
      "commit": "3f5fe61863d1838606756d4f9d3dd8172bb02e57",
      "tree": "b65d2dc8cfe372b4c52eba2696e1e8999c25ae3a",
      "parents": [
        "2e5f4f710595723f02e1226aa3409ad504289cd7"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Jul 27 16:22:46 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Jul 27 16:23:27 2026"
      },
      "message": "PUBLIC: Add no-arg `setTestOnly()` to Error Prone\u0027s `CompilationTestHelper` and `BugCheckerRefactoringTestHelper` to automatically pass `-XepCompilingTestOnlyCode` during test compilation.\n\nPiperOrigin-RevId: 954668388\n"
    },
    {
      "commit": "2e5f4f710595723f02e1226aa3409ad504289cd7",
      "tree": "1d0a9f23c09d6ca331a00cfdb2e7d04934617232",
      "parents": [
        "c91de5be89ec899148f33d539c5161ad48b0e143"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Mon Jul 27 14:27:17 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Jul 27 15:22:00 2026"
      },
      "message": "PUBLIC: Suggest `TestParameterInjector` instead of a loop over an `enum` in a unit test.\n\nTest parameterization executes each input case in strict isolation, ensuring that a single failure doesn\u0027t halt the rest of your test case while providing clear, per-case reporting without the need for manual loops. See []\n\njavacflume results: unknown commit\n\nPiperOrigin-RevId: 954617044\n"
    },
    {
      "commit": "c91de5be89ec899148f33d539c5161ad48b0e143",
      "tree": "ab30505f62b8ad86162d2e8cb52bdabdb53a8760",
      "parents": [
        "49ae9b27f62647547255a5dbd6868f0f05a997ac"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Thu Jul 23 23:49:34 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Jul 23 23:50:22 2026"
      },
      "message": "[StatementSwitchToExpressionSwith] fix bug in generated code when hoisted variables are later redefined\n\nPiperOrigin-RevId: 953027031\n"
    },
    {
      "commit": "49ae9b27f62647547255a5dbd6868f0f05a997ac",
      "tree": "31d52279fc7cc39c3c5f0caaf68474fe6f8086b1",
      "parents": [
        "9b2df08cc8c2fed48660803562ad0f7842786a5f"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Wed Jul 22 20:59:03 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Jul 22 20:59:52 2026"
      },
      "message": "[IfChainToSwitch] fix a bug whereby invalid code can be emitted for certain subject types\n\nPiperOrigin-RevId: 952316264\n"
    },
    {
      "commit": "9b2df08cc8c2fed48660803562ad0f7842786a5f",
      "tree": "a3089156e4277a94f3a86ea8ef438508d038b893",
      "parents": [
        "b9e6eb12fd61c50ecd00ce96b1c8a20f0a6ba79e"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Wed Jul 22 18:48:21 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Jul 22 18:49:10 2026"
      },
      "message": "[IfChainToSwitch] add unit test to document invalid finding\n\nPiperOrigin-RevId: 952246532\n"
    },
    {
      "commit": "b9e6eb12fd61c50ecd00ce96b1c8a20f0a6ba79e",
      "tree": "9adff7ec31a1bfe1f5bcbc5a80575ad5ea2c2238",
      "parents": [
        "4b7ea2fc022db33593fb58966b01d798ad685838"
      ],
      "author": {
        "name": "Chaoren Lin",
        "email": "aoe@google.com",
        "time": "Tue Jul 21 22:18:03 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Jul 21 22:19:13 2026"
      },
      "message": "Internal change.\n\nPiperOrigin-RevId: 951726048\n"
    },
    {
      "commit": "4b7ea2fc022db33593fb58966b01d798ad685838",
      "tree": "c95ae8fbbdd9441e78afc45187e99f85c861661f",
      "parents": [
        "89abe474c2d2eb02597f552f7cf6057217c24bbb"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Tue Jul 21 16:15:22 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Jul 21 16:16:51 2026"
      },
      "message": "Update comment for [javac and Dagger\u0027s support for type-use annotations](https://github.com/google/dagger/releases/tag/dagger-2.60).\n\n(relevant to https://github.com/google/dagger/issues/5165)\n\nPiperOrigin-RevId: 951527811\n"
    },
    {
      "commit": "89abe474c2d2eb02597f552f7cf6057217c24bbb",
      "tree": "6fc984149aa7a46727f0aca6c80efd60a4da4482",
      "parents": [
        "0187d08f98ae23232fa863e76ddf2251acd9e374"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Mon Jul 20 22:01:16 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Jul 20 22:02:53 2026"
      },
      "message": "Use `findEnclosingMethod` in `ProvidesNull`.\n\nThis further consolidates on that method, building upon the work of https://github.com/google/error-prone/commit/c62014a98a3bb8be42378066b65389b7ba47d1ba. In this case, there wasn\u0027t anything buggy about the reimplementation; it was just unnecessary.\n\nPiperOrigin-RevId: 951071484\n"
    },
    {
      "commit": "0187d08f98ae23232fa863e76ddf2251acd9e374",
      "tree": "ed727b9f576ae959f9194c4dc1a7423095ee01cb",
      "parents": [
        "775a1ace35fe99e7a11c423b76a788af1fe1985a"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jul 13 17:41:49 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Jul 13 17:43:09 2026"
      },
      "message": "Bump the dependencies group with 2 updates\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 #5954\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/google/error-prone/pull/5954 from google:dependabot/maven/dependencies-77a97074f9 43b104554d5b2c926e3aab8768b67cf151c64798\nPiperOrigin-RevId: 947123678\n"
    },
    {
      "commit": "775a1ace35fe99e7a11c423b76a788af1fe1985a",
      "tree": "db57ef6220c44120aa662f3758d9977bf88f3bc1",
      "parents": [
        "54bc491d41b0e568ff44292b6354596c307b07b6"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Fri Jul 10 20:16:11 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Jul 10 20:17:15 2026"
      },
      "message": "Stop migrating `@Suppress` to `@Ignore`. `@Suppress` is nearly dead!\n\nPiperOrigin-RevId: 945860219\n"
    },
    {
      "commit": "54bc491d41b0e568ff44292b6354596c307b07b6",
      "tree": "221d5c36202c90f4f8b0b43a31101ffdf63a8226",
      "parents": [
        "c8511cea39e2a26835b6f7c250113f75b5a115ea"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Fri Jul 10 16:32:19 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Jul 10 16:34:14 2026"
      },
      "message": "PUBLIC: Stop flagging `@Ignore` on JUnit3 tests. Internally, we\u0027ve made our legacy JUnit3 runner skip tests with `@Ignore` (unknown commit). Externally, basically nobody uses JUnit3 anymore (and if someone does make this mistake, they\u0027ll quickly notice anyways).\n\nPiperOrigin-RevId: 945750863\n"
    },
    {
      "commit": "c8511cea39e2a26835b6f7c250113f75b5a115ea",
      "tree": "6283ddee815bbea608ccedbcb6984ca28c3ae5b6",
      "parents": [
        "63937ff3560990a1e258f1ea388a483360ae710d"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Tue Jul 07 16:29:58 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Tue Jul 07 16:30:43 2026"
      },
      "message": "Test that `SuggestedFixes.replaceIncludingComments` removes Markdown Javadoc.\n\nkak@ points out that this may have been addressed way back in https://github.com/google/error-prone/commit/2dde25434696cc2f87e76b64bf60d8875da36a09.\n\nPiperOrigin-RevId: 943937282\n"
    },
    {
      "commit": "63937ff3560990a1e258f1ea388a483360ae710d",
      "tree": "a8cd77222d935fc923eb7e603e8d289e02db0c2b",
      "parents": [
        "c75dd09ed6926882ff51c13e570742b4630b010d"
      ],
      "author": {
        "name": "dependabot[bot]",
        "email": "49699333+dependabot[bot]@users.noreply.github.com",
        "time": "Mon Jul 06 17:32:41 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Mon Jul 06 17:33:49 2026"
      },
      "message": "Bump org.checkerframework:checker-qual from 4.2.0 to 4.2.1 in the dependencies group\n\nBumps the dependencies group with 1 update: [org.checkerframework:checker-qual](https://github.com/typetools/checker-framework).\n\nUpdates `org.checkerframework:checker-qual` from 4.2.0 to 4.2.1\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.1\u003c/h2\u003e\n\u003ch2\u003eVersion 4.2.1 (2026-07-01)\u003c/h2\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7726\"\u003e#7726\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.1 (2026-07-01)\u003c/h2\u003e\n\u003ch3\u003eClosed issues\u003c/h3\u003e\n\u003cp\u003e\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7726\"\u003e#7726\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/ef8cecd00663136e5bb4d6d3d32f936d500f519c\"\u003e\u003ccode\u003eef8cecd\u003c/code\u003e\u003c/a\u003e new release 4.2.1\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/5d046116bece9b5ebb359fab260c2d17988a5e41\"\u003e\u003ccode\u003e5d04611\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/0907ddc90cd25f32e5bf8922d8277d0b41de7fc2\"\u003e\u003ccode\u003e0907ddc\u003c/code\u003e\u003c/a\u003e Use \u003ccode\u003e@MonotonicNonNull\u003c/code\u003e\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/6a7d71c8cbba0c3c14547d4c06ddb500d15c71d2\"\u003e\u003ccode\u003e6a7d71c\u003c/code\u003e\u003c/a\u003e Gradle formatting\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/c10d86a0c787c2e5ca95a2c5bb9f4c598b23504e\"\u003e\u003ccode\u003ec10d86a\u003c/code\u003e\u003c/a\u003e Update plugin com-gradleup-shadow to v9.4.3 (\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7778\"\u003e#7778\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/ec79d1f81a434153c13e0fb83692119304cf2908\"\u003e\u003ccode\u003eec79d1f\u003c/code\u003e\u003c/a\u003e Update Gradle to v9.6.1 (\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7779\"\u003e#7779\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/f95a2e030e54bae2e26a5e7fa47177acceb4ef6b\"\u003e\u003ccode\u003ef95a2e0\u003c/code\u003e\u003c/a\u003e More examples for \u003ccode\u003e-AresourceLeakIgnoredExceptions\u003c/code\u003e (\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7774\"\u003e#7774\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/79948a2df22a82425a3a17b70b6d784c812d7d5d\"\u003e\u003ccode\u003e79948a2\u003c/code\u003e\u003c/a\u003e Update Gradle to v9.6.0 (\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7775\"\u003e#7775\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/e013552e6274b87c9f5dd1c768b4dd12a828707f\"\u003e\u003ccode\u003ee013552\u003c/code\u003e\u003c/a\u003e Update actions/checkout action to v7 (\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7776\"\u003e#7776\u003c/a\u003e)\u003c/li\u003e\n\u003cli\u003e\u003ca href\u003d\"https://github.com/typetools/checker-framework/commit/4ba90c265ca8ee0ad4da7ce67af275ee6c7c40e1\"\u003e\u003ccode\u003e4ba90c2\u003c/code\u003e\u003c/a\u003e Update plugin com-diffplug-spotless to v8.7.0 (\u003ca href\u003d\"https://redirect.github.com/typetools/checker-framework/issues/7773\"\u003e#7773\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.0...checker-framework-4.2.1\"\u003ecompare view\u003c/a\u003e\u003c/li\u003e\n\u003c/ul\u003e\n\u003c/details\u003e\n\u003cbr /\u003e\n\n[![Dependabot compatibility score](https://dependabot-badges.githubapp.com/badges/compatibility_score?dependency-name\u003dorg.checkerframework:checker-qual\u0026package-manager\u003dmaven\u0026previous-version\u003d4.2.0\u0026new-version\u003d4.2.1)](https://docs.github.com/en/github/managing-security-vulnerabilities/about-dependabot-security-updates#about-compatibility-scores)\n\nDependabot will resolve any conflicts with this PR as long as you don\u0027t alter it yourself. You can also trigger a rebase manually by commenting `@dependabot rebase`.\n\n[//]: # (dependabot-automerge-start)\n[//]: # (dependabot-automerge-end)\n\n---\n\n\u003cdetails\u003e\n\u003csummary\u003eDependabot commands and options\u003c/summary\u003e\n\u003cbr /\u003e\n\nYou can trigger Dependabot actions by commenting on this PR:\n- `@dependabot rebase` will rebase this PR\n- `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it\n- `@dependabot show \u003cdependency name\u003e ignore conditions` will show all of the ignore conditions of the specified dependency\n- `@dependabot ignore \u003cdependency name\u003e major version` will close this group update PR and stop Dependabot creating any more for the specific dependency\u0027s major version (unless you unignore this specific dependency\u0027s major version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e minor version` will close this group update PR and stop Dependabot creating any more for the specific dependency\u0027s minor version (unless you unignore this specific dependency\u0027s minor version or upgrade to it yourself)\n- `@dependabot ignore \u003cdependency name\u003e` will close this group update PR and stop Dependabot creating any more for the specific dependency (unless you unignore this specific dependency or upgrade to it yourself)\n- `@dependabot unignore \u003cdependency name\u003e` will remove all of the ignore conditions of the specified dependency\n- `@dependabot unignore \u003cdependency name\u003e \u003cignore condition\u003e` will remove the ignore condition of the specified dependency and ignore conditions\n\n\u003c/details\u003e\n\nFixes #5948\n\nCOPYBARA_INTEGRATE_REVIEW\u003dhttps://github.com/google/error-prone/pull/5948 from google:dependabot/maven/dependencies-fef32f420f de9bb578d1f2fc7809143d2cb7c1c94812032a1c\nPiperOrigin-RevId: 943369386\n"
    },
    {
      "commit": "c75dd09ed6926882ff51c13e570742b4630b010d",
      "tree": "dcd97d4a51363b611ac94224c4d07b6337b35af0",
      "parents": [
        "2be3abde2ec4d434b1e408c515142fc678f3d788"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Sat Jul 04 14:44:51 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Sat Jul 04 14:45:54 2026"
      },
      "message": "Move PreferPreconditions to JavaCodeClarity to run on changed lines\n\nand only emit findings if `Preconditions` is already on the classpath.\n\nThis check is producing a lot of findings on unchanged lines and for third_party/ code that doesn\u0027t depend on Guava (like SafeRE).\n\nPiperOrigin-RevId: 942497251\n"
    },
    {
      "commit": "2be3abde2ec4d434b1e408c515142fc678f3d788",
      "tree": "022fd86a7d6f81495ce39691513847500a3777ce",
      "parents": [
        "1bb55ab3a7c10c5926ea08b40f901eec4ab57fc5"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Fri Jul 03 15:44:23 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Fri Jul 03 15:45:29 2026"
      },
      "message": "Fix ProtectedMembersInFinalClass to avoid suggesting removing `protected` from canonical constructors of `protected` record classes.\n\nAlong the way, introduce `ASTHelpers.isCanonicalRecordConstructor` to share some logic.\n\nCompare https://github.com/google/error-prone/commit/1bb55ab3a7c10c5926ea08b40f901eec4ab57fc5.\n\nPiperOrigin-RevId: 942157685\n"
    },
    {
      "commit": "1bb55ab3a7c10c5926ea08b40f901eec4ab57fc5",
      "tree": "a141e09a19c692c0b49d4b78e4f8d28e901b8739",
      "parents": [
        "316aa2b79a5ed0d70e54f932e2a229895e932599"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Thu Jul 02 20:16:40 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Jul 02 20:17:25 2026"
      },
      "message": "Don\u0027t suggest making canonical record constructors more private than the record itself.\n\nThis addresses the problem from https://github.com/google/error-prone/issues/5182#issuecomment-3977179907.\n\nPiperOrigin-RevId: 941803040\n"
    },
    {
      "commit": "316aa2b79a5ed0d70e54f932e2a229895e932599",
      "tree": "f769c25a11c7c234057c9fbabb657d4f3afae7f1",
      "parents": [
        "2e3be3d46545bd499d862b361cb21e2f99071790"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Thu Jul 02 16:10:48 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Jul 02 16:12:47 2026"
      },
      "message": "Add some[]\n\nPiperOrigin-RevId: 941728182\n"
    },
    {
      "commit": "2e3be3d46545bd499d862b361cb21e2f99071790",
      "tree": "eaf0aacf5fc653175e5a232996f338e31a2f894d",
      "parents": [
        "57b85a658132c4325e30af7959ee4714ac0d39d4"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Thu Jul 02 16:09:05 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Jul 02 16:09:52 2026"
      },
      "message": "Rip out `ASTHelpers:EnclosingMethodFix`.\n\nPiperOrigin-RevId: 941727660\n"
    },
    {
      "commit": "57b85a658132c4325e30af7959ee4714ac0d39d4",
      "tree": "aba0bc5f0ec89858dffcf4af17e8b72c70ba7727",
      "parents": [
        "7e254695f8c495e47cb68d848d9090ddb6a490f2"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Thu Jul 02 15:59:02 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Jul 02 15:59:51 2026"
      },
      "message": "`EffectivelyPrivate`: Exclude anything declared within an effectively private class that has a visible subclass in the same file.\n\nSee discussion in https://github.com/google/error-prone/issues/5182.\n\nPiperOrigin-RevId: 941723947\n"
    },
    {
      "commit": "7e254695f8c495e47cb68d848d9090ddb6a490f2",
      "tree": "ac4a2cfeeb070fcff6964ebcbe5509cf4e3c3014",
      "parents": [
        "b32b287498c4584543eebd75b14e3b739ddac985"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Thu Jul 02 14:39:19 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Thu Jul 02 14:40:01 2026"
      },
      "message": "Ignore Markdown Javadoc in `UnescapedEntity` check.\n\nInstead of trying to parse complex Markdown structures to avoid false positives for unescaped entities, this change proposes to simply ignore Markdown Javadoc (`///`) comments entirely for this check.\n\nThis is a simpler workaround for b/530215233.\n\nPiperOrigin-RevId: 941694985\n"
    },
    {
      "commit": "b32b287498c4584543eebd75b14e3b739ddac985",
      "tree": "279dd38ae6e27a8ce60f79cfc59a38fb6206c7e2",
      "parents": [
        "be8896aee16f3de5f95d188f3ba1045e36e872ac"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Wed Jul 01 21:53:00 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Jul 01 21:56:38 2026"
      },
      "message": "Add a[]\n\nPiperOrigin-RevId: 941308935\n"
    },
    {
      "commit": "be8896aee16f3de5f95d188f3ba1045e36e872ac",
      "tree": "97d3e204d8b8842fee48cac903b20e06d2f899d3",
      "parents": [
        "2c718dadc6bed8061c9e67d5d82f229e78ae4647"
      ],
      "author": {
        "name": "Error Prone Team",
        "email": "java-team-github-bot@google.com",
        "time": "Wed Jul 01 20:48:58 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Jul 01 20:50:03 2026"
      },
      "message": "Keep lambda parameter declared type when necessary\n\nJava does not allow lambdas to have a mix of parameters with declared\nand inferred types. This CL removes type declarations only when all\nlambda parameters with a declared type can be replaced with _.\n\nPiperOrigin-RevId: 941275408\n"
    },
    {
      "commit": "2c718dadc6bed8061c9e67d5d82f229e78ae4647",
      "tree": "928af7ca784ddff2bf23a6563b7d1499caebce65",
      "parents": [
        "4b6bc0f1cebd2a6cb1d67418150c6a08c472228c"
      ],
      "author": {
        "name": "cpovirk",
        "email": "cpovirk@google.com",
        "time": "Wed Jul 01 20:07:30 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Jul 01 20:10:01 2026"
      },
      "message": "Introduce minimal Refaster support for [unnamed variables](https://openjdk.org/jeps/456).\n\nThere is probably more to be worked out here, even to decide upon the full set of desired behaviors. But it\u0027s nice to at least not crash.\n\nPiperOrigin-RevId: 941255538\n"
    },
    {
      "commit": "4b6bc0f1cebd2a6cb1d67418150c6a08c472228c",
      "tree": "21cffa92de1c558cb3ba08859e11d24eb040d7cd",
      "parents": [
        "754efd84a67f78dfd04223e8e37450591e7d2908"
      ],
      "author": {
        "name": "markbrady",
        "email": "markbrady@google.com",
        "time": "Wed Jul 01 19:34:51 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Jul 01 19:35:53 2026"
      },
      "message": "[IfChainToSwitch] test-only change: explicitly set value of flag `EnableSafe` in tests\n\n* Instead of relying on implicit `false` in some tests, specifies the value\n* No change to test behavior\n\nPiperOrigin-RevId: 941238746\n"
    },
    {
      "commit": "754efd84a67f78dfd04223e8e37450591e7d2908",
      "tree": "636ceadc9c159dd335bcf8f7a5f5b4b7b1783127",
      "parents": [
        "7691b5e0ed02c3fc34d5ec8e7580ba4d42a6fb75"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Wed Jul 01 15:37:06 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Jul 01 15:37:55 2026"
      },
      "message": "In the `Contains` matcher, return `null` when the input `tree` is `null`.\n\nh/t to cpovirk@ who spelunked this :-)\n\nPiperOrigin-RevId: 941115105\n"
    },
    {
      "commit": "7691b5e0ed02c3fc34d5ec8e7580ba4d42a6fb75",
      "tree": "62bbced32ef795c7256d2319446521bc55506cd9",
      "parents": [
        "0f841a5219832902dee3722531838875f3ce5d5b"
      ],
      "author": {
        "name": "Liam Miller-Cushon",
        "email": "cushon@google.com",
        "time": "Wed Jul 01 14:14:08 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Jul 01 14:14:59 2026"
      },
      "message": "Restrict MissingJavadoc to classes only\n\nPiperOrigin-RevId: 941077267\n"
    },
    {
      "commit": "0f841a5219832902dee3722531838875f3ce5d5b",
      "tree": "c8333082dccc6636cadaf0bca752f4778416d162",
      "parents": [
        "b4d13a0c2973b07a2045c354453f79abf0427581"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Wed Jul 01 14:10:37 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Jul 01 14:12:53 2026"
      },
      "message": "PUBLIC: Add a note about getting the end position of a tree to `ASTHelpers.getStartPosition(Tree)`.\n\nPiperOrigin-RevId: 941075730\n"
    },
    {
      "commit": "b4d13a0c2973b07a2045c354453f79abf0427581",
      "tree": "c0463da6f5ade582e1287095ca693acd5496d165",
      "parents": [
        "44808f1eaf56ea329c3f17303bbddc4456b37a66"
      ],
      "author": {
        "name": "Kurt Alfred Kluever",
        "email": "kak@google.com",
        "time": "Wed Jul 01 13:31:56 2026"
      },
      "committer": {
        "name": "Error Prone Team",
        "email": "error-prone-team+copybara@google.com",
        "time": "Wed Jul 01 13:33:41 2026"
      },
      "message": "Add[]\n\nPiperOrigin-RevId: 941059839\n"
    }
  ],
  "next": "44808f1eaf56ea329c3f17303bbddc4456b37a66"
}
