Conversation
Netty 4.2.x removed DefaultHeaders.containsAny(Object, Object, BiPredicate), which azure-core-http-netty 1.18.2 (compiled against 4.1.x) calls at runtime via MSAL4J during Azure AD token acquisition. Swaps azure-core-http-netty for azure-core-http-okhttp (already shaded via OTel), and wires an explicit OkHttpAsyncHttpClientBuilder into all ADLS client builders for deterministic transport selection. Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com> Signed-off-by: Chris (He/Him) <cgrote@gmail.com>
cmgrote
enabled auto-merge
April 30, 2026 19:52
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
azure-core-http-netty 1.18.2(compiled against Netty 4.1.x) conflicts withio.netty 4.2.12.Final(bumped Apr 16). Netty 4.2 removedDefaultHeaders.containsAny(Object, Object, BiPredicate), causingNoSuchMethodErrorthe moment MSAL4J attempts Azure AD token acquisition via the Netty HTTP pipeline.azure-core-http-nettywithazure-core-http-okhttp(OkHttp has no Netty dependency). OkHttp is already shaded into the fat-jar via the OTel sender, so this adds no new weight to the artifact.OkHttpAsyncHttpClientBuilderwired into all three ADLS client builders (ClientSecretCredentialBuilder,DataLakeServiceClientBuilder,BlobContainerClientBuilder) so transport selection is deterministic regardless of classpath order (AWS SDK'snetty-nio-clientis still present).Affected tenants (confirmed): Zoetis (
zoetis-dev.atlan.com, ZEN-122712), P&G (pg-dev.atlan.com), Nyrstar (nyrstar.atlan.com). Any CSA package using ADLS auth is impacted — this fixes CSA-390 and CSA-400.Changes
gradle/libs.versions.toml— addazure-core-http-okhttp = "1.13.4"version + library entrypackage-toolkit/runtime/build.gradle.kts— excludeazure-core-http-nettyfromazure.identity+adlstransitives; addazure-core-http-okhttpdep; swap shadowJar includepackage-toolkit/runtime/src/main/kotlin/com/atlan/pkg/objectstore/ADLSSync.kt— wire explicit OkHttpHttpClientinto all Azure client buildersTest plan
./gradlew :package-toolkit:runtime:dependencies—azure-core-http-okhttp:1.13.4present,azure-core-http-nettyabsent./gradlew :package-toolkit:runtime:shadowJar— builds clean; jar containscom/azure/core/http/okhttp/*, zerocom/azure/core/http/netty/*classes./gradlew :package-toolkit:runtime:test— all unit tests pass@csa/asset-importagainstzoetis-dev.atlan.comwith ADLS Service Principal auth — should reach file ingestion withoutNoSuchMethodError🤖 Generated with Claude Code