anton-vinogradov opened a new pull request, #13419: URL: https://github.com/apache/ignite/pull/13419
### Problem `GridDhtAtomicUpdateRequest#forceTransformBackups` is passed `false` from both places that create the message — `GridDhtAtomicUpdateFuture` and `GridDhtAtomicSingleUpdateFuture`. Every branch guarded by that flag is therefore unreachable: * entry processors are never collected, so the hand-written `marshal`/`unmarshal` has nothing to write; * three collection fields (`entryProcessorsBytes`, `nearEntryProcessorsBytes`, `invokeArgsBytes`) always travel `null`; * `GridDhtAtomicCache` builds a `HashMap` of entry processors for every TRANSFORM batch and drops it — the value is discarded in `addWriteValue`, which keeps the already computed value instead. ### Solution Removed the flag and the wire fields it guarded, the hand-written marshalling and deployment, the `MarshallableMessage` and `DeployableMessage` contracts, `@UseBinaryMarshaller`, the four abstract methods that degenerated into constants (`forceTransformBackups`, `entryProcessor`, `nearEntryProcessor`, `invokeArguments`), the `entryProc` parameter along the future-to-request chain, and the per-batch map of entry processors. One place needed care: `entryProc != null` in `updatePartialBatch` was **not** dead — it carried the "this write came from a transform" flag into `innerUpdate`. Since the operation is one per request (`GridCacheOperation op = req.operation()`), it is replaced by the exact equivalent `req.operation() == TRANSFORM`, and the per-key map becomes unnecessary. A DHT atomic update request now sends one boolean and three always-null collection fields less, and the class no longer needs a marshaller at all. Part of IGNITE-28935. ### Verification * `IgniteCacheAtomicProtocolTest` — 26/26 * `GridCacheAtomicNearEnabledFullApiSelfTest` — 150/150 * `IgniteCacheAtomicInvokeTest`, `IgniteCacheAtomicNearEnabledInvokeTest` — 4/4 each * `GridCacheValueConsistencyAtomicNearEnabledSelfTest` — passed * full build with `-Pcheckstyle` — 0 violations 🤖 Generated with [Claude Code](https://claude.com/claude-code) -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
