live wire
AI · Red Hat documents usage-based admission fair sharing for Kueue 1.4 on OpenShiftRed Hat DeveloperAI: Red Hat maps governed firewall changes from ServiceNow through Ansible and two human approval gatesRed Hat DeveloperCLUSTER MGMT · ACM 2.17 makes Submariner 0.24 GA with Important-rated fixesRed Hat ErrataPLATFORM · Red Hat makes on-premises Lightspeed recommendations GA for Satellite 6.18Red Hat ErrataSECURITY · Red Hat Hardened Images updates Tomcat 10 for nine authentication, access-control and DoS flawsRed Hat ErrataAI · Open Data Hub 3.6.0 EA1 bundles Trainer, MLflow and llm-d componentsOpen Data HubAI · Speculators 0.6.0 adds P-EAGLE parallel drafting for vLLM speculative decodingRed Hat DeveloperSECURITY · OpenShift 4.17.57 fixes seven Go and TLS CVEs in an Important-rated updateRed Hat ErrataAI · Red Hat benchmarks local LLM guardrails with EvalHub, exposing regex accuracy and latency trade-offsRed Hat DeveloperAI · Red Hat maps silent tool-call failures across agentic pipelinesRed HatAPI · Kuadrant 1.5.3 adds GRPCRoute policies and developer-portal API-key workflowsKuadrantAI · (Aug 25) IBM releases Apache-2.0 Granite 4.2 reasoning models in 3B, 8B and 30B sizesIBM ResearchJAVA · Red Hat build of Quarkus 3.33.3.SP1 fixes 13 CVEs in an Important-rated updateRed Hat errataAI · vLLM moves Kimi K2 RL weight sync across 384 H100s in 7.53 seconds (Aug 22)vLLMAI · Red Hat documents usage-based admission fair sharing for Kueue 1.4 on OpenShiftRed Hat DeveloperAI: Red Hat maps governed firewall changes from ServiceNow through Ansible and two human approval gatesRed Hat DeveloperCLUSTER MGMT · ACM 2.17 makes Submariner 0.24 GA with Important-rated fixesRed Hat ErrataPLATFORM · Red Hat makes on-premises Lightspeed recommendations GA for Satellite 6.18Red Hat ErrataSECURITY · Red Hat Hardened Images updates Tomcat 10 for nine authentication, access-control and DoS flawsRed Hat ErrataAI · Open Data Hub 3.6.0 EA1 bundles Trainer, MLflow and llm-d componentsOpen Data HubAI · Speculators 0.6.0 adds P-EAGLE parallel drafting for vLLM speculative decodingRed Hat DeveloperSECURITY · OpenShift 4.17.57 fixes seven Go and TLS CVEs in an Important-rated updateRed Hat ErrataAI · Red Hat benchmarks local LLM guardrails with EvalHub, exposing regex accuracy and latency trade-offsRed Hat DeveloperAI · Red Hat maps silent tool-call failures across agentic pipelinesRed HatAPI · Kuadrant 1.5.3 adds GRPCRoute policies and developer-portal API-key workflowsKuadrantAI · (Aug 25) IBM releases Apache-2.0 Granite 4.2 reasoning models in 3B, 8B and 30B sizesIBM ResearchJAVA · Red Hat build of Quarkus 3.33.3.SP1 fixes 13 CVEs in an Important-rated updateRed Hat errataAI · vLLM moves Kimi K2 RL weight sync across 384 H100s in 7.53 seconds (Aug 22)vLLM
upstreambeat.ai
analysisJAVA

What A2A Java SDK 1.2 changes for authorization, streams and existing integrations

The release moves referenced-task reads behind a fail-closed boundary, adds application-controlled stream cleanup and requires import and task-state migration work.

A before-and-after comparison of A2A SDK 1.1 versus 1.2 breaking changes.
Side by side: what changed
By The News Desk· Aug 26, 2026

A2A Java SDK 1.2.0.Final changes three assumptions that existing Java agent integrations may have encoded: referenced task IDs now cross an authorization boundary, long-running task streams gain an application-controlled lifecycle hook, and several source-compatible-looking APIs are not binary or behavior compatible with 1.1.

The Quarkus project labels the release as breaking. Teams should treat it as a migration rather than a dependency refresh.

Referenced tasks now fail closed

Earlier versions could populate tasks named in referenceTaskIds without first checking whether the caller had read access. The project says an unauthorized caller could use sendStreamingMessage or subscribeToTask to probe whether a task existed.

Version 1.2 enforces read authorization for referenced-task lookups across JSON-RPC, gRPC and REST. When authorization is configured but no call context is available, the in-memory task store now denies access, matching the JPA store. Custom stores can use the new TaskAuthorizationProvider.checkReadAccess() helper instead of recreating the policy.

There is a second migration edge: CDI-created DefaultRequestHandler instances now populate referenced tasks by default. Applications that previously received only IDs may begin loading related task objects at the same point that the stricter read check is introduced. The compatibility flag a2a.request-context.populate-referred-tasks=false restores the old population behavior, but it should be a temporary migration aid rather than a substitute for an authorization policy.

Teams should test authorized, unauthorized and missing-context requests for every operation accepting referenced task IDs. Programmatically wired services also need to move from DefaultRequestHandler.create() to its builder and pass the authorization provider where required. A public authorization-decorator constructor makes that wiring available outside CDI, including Spring deployments.

Stream cleanup becomes application policy

The new TaskStreamLifecycleHook reports subscriptions, unsubscriptions and processed events. Its close handle exposes the active subscriber count and can close every stream for a task.

That gives services a supported control point for timeouts, subscriber limits and cleanup after disconnects. The hook is connected to the in-memory queue manager, main event-bus processor and replicated queue manager, so the same policy can span local and distributed deployment modes.

Before rollout, teams should test disconnects, timeout expiry, subscriber pressure and forced closure across every enabled transport. The project ships a stream-lifecycle example with integration tests for JSON-RPC, gRPC and REST.

Existing integrations have two less obvious breaks

The release resolves split Java packages by moving utility and HTTP-client classes. Code importing org.a2aproject.sdk.util or shared HTTP-client packages must update imports; service-loader files are already adjusted for discovery.

It also renames TaskState.UNRECOGNIZED to TASK_STATE_UNSPECIFIED and changes that state from final to non-final. Existing agents that used the old value to close event queues or stop client polling must revise that logic, or streams may remain open after an upgrade.

A practical sequence is to update imports and handler construction first, verify fail-closed task reads second, then add explicit stream limits and retest terminal-state behavior. That order separates compile-time failures from authorization and lifecycle regressions.

Filed by The News Desk. Corrections: desk@upstreambeat.ai · Our standards →

comments · 0

    Comments are moderated before they appear. Your email is used once to confirm it is you — never shown, never sold. Corrections and questions get an answer from the desk when we have one.