3636import java .nio .charset .StandardCharsets ;
3737import java .util .HashMap ;
3838import java .util .Map ;
39+ import java .util .Objects ;
3940import java .util .concurrent .Callable ;
4041import java .util .stream .Collectors ;
4142import org .apache .iceberg .CatalogProperties ;
@@ -189,7 +190,7 @@ private static Map<String, AwsCredentialsProvider> createAwsCredentialsProviders
189190 : CredentialsProvider .assumeRule (
190191 awsCredentialsProvider ,
191192 token .accessConfig ().awsAssumeRoleARN (),
192- "ice-rest-catalog." + token . name ( )));
193+ getUserAgentForToken ( token )));
193194 }
194195 if (config .anonymousAccess ().enabled ()) {
195196 var token = new Config .Token ("anonymous" , "" , config .anonymousAccess ().accessConfig ());
@@ -200,11 +201,17 @@ private static Map<String, AwsCredentialsProvider> createAwsCredentialsProviders
200201 : CredentialsProvider .assumeRule (
201202 awsCredentialsProvider ,
202203 token .accessConfig ().awsAssumeRoleARN (),
203- "ice-rest-catalog." + token . name ( )));
204+ getUserAgentForToken ( token )));
204205 }
205206 return awsCredentialsProviders ;
206207 }
207208
209+ private static String getUserAgentForToken (Config .Token token ) {
210+ return !Strings .isNullOrEmpty (token .name ())
211+ ? "ice-rest-catalog." + token .name ()
212+ : "ice-rest-catalog" ;
213+ }
214+
208215 private static RESTCatalogAuthorizationHandler createAuthorizationHandler (
209216 Config .Token [] tokens , Config config ) {
210217 Session anonymousSession = null ;
@@ -278,7 +285,7 @@ public Integer call() throws Exception {
278285 if (Strings .isNullOrEmpty (t .name ())) {
279286 logger .info (
280287 "Catalog accessible via bearer token named \" {}\" (config: {})" ,
281- t .name (),
288+ Objects . requireNonNullElse ( t .name (), "" ),
282289 om .writeValueAsString (t .accessConfig ()));
283290 } else {
284291 logger .info (
0 commit comments