msabiransari opened a new pull request, #18746:
URL: https://github.com/apache/iceberg/pull/18746

   `AwsClientFactories.DefaultAwsClientFactory` constructs `AwsProperties` in 
its constructor and in `initialize`, and `AwsProperties` links KMS and STS SDK 
types during class initialization and construction. A classpath with only `s3` 
and an HTTP client, which is all `S3FileIO` uses, therefore fails in 
`S3FileIO.initialize` with `NoClassDefFoundError` for 
`kms.model.EncryptionAlgorithmSpec`, and after adding `kms`, for 
`sts.model.Tag`. The factory now keeps the property map and builds 
`AwsProperties` on the first Glue, KMS or DynamoDB client request, so S3-only 
users need neither module and the three catalogs see the same configuration as 
before.
   
   Fixes #18744.
   
   Test plan: a new test checks that the lazily built properties come from 
`initialize`, by asserting the Glue endpoint override on a default factory; the 
existing serialization round trip and the Glue, KMS and DynamoDB retry tests 
cover the lazy path on each client. The S3-only classpath itself cannot be 
asserted in this module, whose test classpath always carries `kms` and `sts`; 
it is verified by the standalone reproduction in the issue.
   
   ---
   **AI Disclosure**
   - Model: Claude Fable 5.1
   - Platform/Tool: Claude Code
   - Human Oversight: [unknown - human to fill in]
   - Prompt Summary: Reproduce the S3-only classpath failure reported in #18744 
and make the default client factory build `AwsProperties` only when a non-S3 
client is requested. The change and its test are generated; the decision to 
file and fix is the author's.
   


-- 
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]


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to