Prabal864 commented on issue #17536:
URL: https://github.com/apache/iceberg/issues/17536#issuecomment-5367856474

   Hi, I'd like to pick this up. Traced it down — in 
AwsClientProperties#credentialsProvider(String, String, String), the branch for 
a custom clientCredentialsProvider unconditionally does 
clientCredentialsProviderProperties.put(VendedCredentialsProvider.URI, 
refreshCredentialsEndpoint), even when refreshCredentialsEndpoint is null. That 
null value then blows up later when the properties map gets copied through 
PropertyUtil.filterProperties, which uses Collectors.toMap(Map.Entry::getKey, 
Map.Entry::getValue) — that collector calls Objects.requireNonNull on the value 
internally, hence the NPE in your stack trace.
   
   The fix is straightforward: guard that put with the same 
!Strings.isNullOrEmpty(refreshCredentialsEndpoint) check the branch below it 
already uses (the VendedCredentialsProvider fallback), which is why that one 
doesn't hit this.
   
   I'll add a regression test with a custom credentials provider class and no 
refresh endpoint set, covering the case in your trace. Mind if I take this?


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