diff --git a/core/auth-crt/src/main/java/software/amazon/awssdk/authcrt/signer/internal/AwsCrt4aSigningAdapter.java b/core/auth-crt/src/main/java/software/amazon/awssdk/authcrt/signer/internal/AwsCrt4aSigningAdapter.java index 4db8d0a762ec..86305df04715 100644 --- a/core/auth-crt/src/main/java/software/amazon/awssdk/authcrt/signer/internal/AwsCrt4aSigningAdapter.java +++ b/core/auth-crt/src/main/java/software/amazon/awssdk/authcrt/signer/internal/AwsCrt4aSigningAdapter.java @@ -43,11 +43,11 @@ public SdkHttpFullRequest signRequest(SdkHttpFullRequest request, AwsSigningConf try { HttpRequest signedRequest = future.get(); return requestConverter.crtRequestToHttp(request, signedRequest); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw SdkClientException.create("The thread got interrupted while attempting to sign request: " + e.getMessage(), e); } catch (Exception e) { - throw SdkClientException.builder() - .message("Unable to sign request: " + e.getMessage()) - .cause(e) - .build(); + throw SdkClientException.create("Unable to sign request: " + e.getMessage(), e); } } @@ -57,11 +57,11 @@ public SdkSigningResult sign(SdkHttpFullRequest request, AwsSigningConfig signin try { AwsSigningResult signingResult = future.get(); return requestConverter.crtResultToAws(request, signingResult); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw SdkClientException.create("The thread got interrupted while attempting to sign request: " + e.getMessage(), e); } catch (Exception e) { - throw SdkClientException.builder() - .message("Unable to sign request: " + e.getMessage()) - .cause(e) - .build(); + throw SdkClientException.create("Unable to sign request: " + e.getMessage(), e); } } @@ -70,11 +70,11 @@ public byte[] signChunk(byte[] chunkBody, byte[] previousSignature, AwsSigningCo CompletableFuture future = AwsSigner.signChunk(crtBody, previousSignature, signingConfig); try { return future.get(); + } catch (InterruptedException e) { + Thread.currentThread().interrupt(); + throw SdkClientException.create("The thread got interrupted while attempting to sign request: " + e.getMessage(), e); } catch (Exception e) { - throw SdkClientException.builder() - .message("Unable to sign chunk: " + e.getMessage()) - .cause(e) - .build(); + throw SdkClientException.create("Unable to sign request: " + e.getMessage(), e); } } diff --git a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/handlers/EndpointAddressInterceptor.java b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/handlers/EndpointAddressInterceptor.java index 9fd41e90a308..65bad3a1a081 100644 --- a/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/handlers/EndpointAddressInterceptor.java +++ b/services/s3/src/main/java/software/amazon/awssdk/services/s3/internal/handlers/EndpointAddressInterceptor.java @@ -66,10 +66,12 @@ public SdkHttpRequest modifyHttpRequest(Context.ModifyHttpRequest context, ConfiguredS3SdkHttpRequest configuredRequest = S3EndpointResolverFactory.getEndpointResolver(resolverFactoryContext) .applyEndpointConfiguration(resolverContext); - configuredRequest.signingRegionModification() - .map(region -> executionAttributes.putAttribute(AwsSignerExecutionAttribute.SIGNING_REGION, region)) - .orElseGet(() -> executionAttributes.putAttribute(AwsSignerExecutionAttribute.SIGNING_REGION_SCOPE, - RegionScope.GLOBAL)); + if (configuredRequest.signingRegionModification().isPresent()) { + executionAttributes.putAttribute(AwsSignerExecutionAttribute.SIGNING_REGION, + configuredRequest.signingRegionModification().get()); + } else { + executionAttributes.putAttribute(AwsSignerExecutionAttribute.SIGNING_REGION_SCOPE, RegionScope.GLOBAL); + } configuredRequest.signingServiceModification().ifPresent( name -> executionAttributes.putAttribute(AwsSignerExecutionAttribute.SERVICE_SIGNING_NAME, name));