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]
