5050import java .util .Collections ;
5151import java .util .List ;
5252import java .util .Map ;
53+ import java .util .Optional ;
5354import java .util .concurrent .ExecutorService ;
5455import java .util .concurrent .LinkedBlockingQueue ;
5556import java .util .concurrent .RejectedExecutionException ;
@@ -347,18 +348,18 @@ private Map<String, String> getRequestHeadersFromEnv()
347348 /**
348349 * Creates an AwsRequestOverrideConfiguration with custom headers from the environment
349350 */
350- private AwsRequestOverrideConfiguration createRequestOverrideConfig ()
351+ private Optional < AwsRequestOverrideConfiguration > createRequestOverrideConfig ()
351352 {
352353 Map <String , String > headers = getRequestHeadersFromEnv ();
353354 if (headers .isEmpty ()) {
354- return null ;
355+ return Optional . empty () ;
355356 }
356357
357358 AwsRequestOverrideConfiguration .Builder overrideConfigBuilder = AwsRequestOverrideConfiguration .builder ();
358359 for (Map .Entry <String , String > header : headers .entrySet ()) {
359360 overrideConfigBuilder .putHeader (header .getKey (), header .getValue ());
360361 }
361- return overrideConfigBuilder .build ();
362+ return Optional . of ( overrideConfigBuilder .build () );
362363 }
363364
364365 /**
@@ -385,10 +386,7 @@ protected SpillLocation write(Block block)
385386 .contentLength ((long ) bytes .length );
386387
387388 // Set request headers via overrideConfiguration instead of metadata
388- AwsRequestOverrideConfiguration overrideConfig = createRequestOverrideConfig ();
389- if (overrideConfig != null ) {
390- requestBuilder .overrideConfiguration (overrideConfig );
391- }
389+ createRequestOverrideConfig ().ifPresent (requestBuilder ::overrideConfiguration );
392390
393391 PutObjectRequest request = requestBuilder .build ();
394392 amazonS3 .putObject (request , RequestBody .fromBytes (bytes ));
0 commit comments