Commit b69b75f
authored
Implements Retries 2.1 Updates (#6925)
* Introduce AWS_NEW_RETRIES_2026 feature gate
This property will be used to gate the retries update (v 2.1) behind a
feature flag. This option defaults to false.
* Use AWS_NEW_RETRIES_2026 during mode resolution (#6872)
* Use AWS_NEW_RETRIES_2026 during mode resolution
* Review comments
* 2.1 behavior in standard, adaptive strats (#6871)
* 2.1 behavior in standard, adaptive strats
Support the 2.1 behavior changes in adaptive and standard strategies.
This includes the change in constant values based on 2.0 and 2.1, and
the application of a different cost for throttling retries in 2.1.
The 2.1 behavior is implemented as an overload of the builder() method
that accepts a boolean to select between 2.0 and 2.1. The no-arg version
defaults to false, i.e. 2.0.
* Review comments
* Factor new retries option in client builder (#6887)
* Factor new retries option in client builder
This commit updates the retry mode resolution behavior for SDK clients:
- When resolving the RetryStrategy to use, also determine whether retry
2.1 behavior should be enabled for that retry strategy.
- If the `newRetries2026Default` property is set in
customization.config for a service, ensure that this is treated as
the default option for `AWS_NEW_RETRIES_2026` when building the
client if not set anywhere else.
* Fix test
* Fix test
* Support backoff for long-polling (#6899)
* Support backoff for long-polling
For operations that are long-polling, support backoffs in the Standard
retry strategy even there is insufficient retry quota.
* Review comments
* Fix checkstyle
* Add longPolling exec param and use in retries (#6902)
This commit
- Adds an isLongPolling() property to ClientExecutionParams
- Adds SdkInternalExecutionAttribute.IS_LONG_POLLING that reflects the
value from ClientExecutionParams during execution
- Sets the longPolling() property on teh RefreshRetryTokenRequest when
refreshing, based on the value of the IS_LONG_POLLING exec attribute
* Set longPoll ops for SQS,SWF,SFN (#6905)
* Set longPoll ops for SQS,SWF,SFN
Add a customization to set the long polling trait for the following
service operations:
- SQS#ReceiveMessage
- SFN#GetActivityTask
- SWF#PollForActivityTask
- SWF#PollForDecisionTask
* Checkstyle fix
* Review comments
* Fix checkstyle
* Add test cases for Standard (#6911)
This commit adds the test cases defined in the retries spec for
Standard. There are two sets, for v2.0 and v2.1.
All of the v2.0 test cases are present, but v2.1 tests don't currently
have the x-amz-retry-after header tests (yet).
* Support backoff on refresh failure (#6912)
Retry strategies can optionally return a backoff even when token refresh
fails. Add support for this in the sync and async retry stages.
In RetryableStage and AsyncRetryableStage, check the value of
TokenAcquisitionFailedException#delay() backoff if given.
* Use x-amz-retry-after for suggested delay (#6914)
* Use x-amz-retry-after for suggested delay
In retries 2.1, 'x-amz-retry-after' must be parsed from the last
response and if present, should be used as the suggested delay (i.e.
suggested backoff) when attempting another retry.
This changes makes updates to RetryableStage and AsyncRetryableStage to
parse the header and pass it to the RetryStrategy. As part of this
change, we also need to plumb whether retries 2.1 is enabled from the
SDK client.
* Review comments
* Retries fixes (#6920)
This commit fixes two issues with the original retries implementation:
- Honor the 'max_retries' property in the profile file if present
- Treat 'LimitExceededException' as a throttling exception
* Update DDB retry policy with v2.1 constants (#6917)
In 2.1:
- base delay : 25ms (existing)
- max attempts: 4 (down from 9)
* Retries 2.1 std suggested delay computation (#6915)
For standard 2.1, there is additional treatment of the service suggested
backoff so it's at least as long as the strategy computed value, and not
longer than 5s more than the strategy computed value.
* Add changelog entry
* Bump version to 2.44.0
* Change retries 2.1 builder param to nullable (#6927)
This will allow us to better track opt-in behavior in the UA.
* Retry on IDPCommunicationError (#6923)
This commit adds a fix to STS to retry on IDPCommunicationError. This is
implemented as a customization for the retry strategy lookup for the
client. This is gated behind the AWS_NEW_RETRIES_2026 flag.
* Update changelog1 parent 27aef2b commit b69b75f
578 files changed
Lines changed: 4631 additions & 804 deletions
File tree
- .changes
- 2.43.x
- next-release
- archetypes
- archetype-app-quickstart
- archetype-lambda
- archetype-tools
- aws-sdk-java
- bom-internal
- bom
- bundle-logging-bridge
- bundle-sdk
- bundle
- changelogs
- codegen-lite-maven-plugin
- codegen-lite
- codegen-maven-plugin
- codegen
- src
- main/java/software/amazon/awssdk/codegen
- customization/processors
- model
- config/customization
- intermediate
- poet
- builder
- client
- specs
- traits
- test
- java/software/amazon/awssdk/codegen
- customization/processors
- poet/builder
- resources/software/amazon/awssdk/codegen/poet
- builder
- client/c2j/internalconfig
- core
- annotations
- arns
- auth-crt
- auth
- aws-core
- src
- main/java/software/amazon/awssdk/awscore
- client/builder
- internal
- retry
- test/java/software/amazon/awssdk/awscore
- client/builder
- internal
- retry
- checksums-spi
- checksums
- crt-core
- endpoints-spi
- http-auth-aws-crt
- http-auth-aws-eventstream
- http-auth-aws
- http-auth-spi
- http-auth
- identity-spi
- imds
- json-utils
- metrics-spi
- profiles
- src/main/java/software/amazon/awssdk/profiles
- protocols
- aws-cbor-protocol
- aws-json-protocol
- aws-query-protocol
- aws-xml-protocol
- protocol-core
- smithy-rpcv2-protocol
- regions
- retries-spi
- src/main/java/software/amazon/awssdk/retries/api
- internal
- retries
- src
- main/java/software/amazon/awssdk/retries
- internal
- test/java/software/amazon/awssdk/retries
- internal
- sdk-core
- src
- main/java/software/amazon/awssdk/core
- client
- config
- handler
- interceptor
- internal
- http/pipeline/stages
- utils
- retry
- retry
- test/java/software/amazon/awssdk/core
- internal/http/pipeline/stages
- utils
- retry
- http-client-spi
- http-clients
- apache-client
- apache5-client
- aws-crt-client
- netty-nio-client
- url-connection-client
- metric-publishers
- cloudwatch-metric-publisher
- emf-metric-logging-publisher
- release-scripts
- services-custom
- dynamodb-enhanced
- iam-policy-builder
- s3-event-notifications
- s3-transfer-manager
- sns-message-manager
- services
- accessanalyzer
- account
- acmpca
- acm
- aiops
- amplifybackend
- amplifyuibuilder
- amplify
- amp
- apigatewaymanagementapi
- apigatewayv2
- apigateway
- appconfigdata
- appconfig
- appfabric
- appflow
- appintegrations
- applicationautoscaling
- applicationcostprofiler
- applicationdiscovery
- applicationinsights
- applicationsignals
- appmesh
- apprunner
- appstream
- appsync
- arcregionswitch
- arczonalshift
- artifact
- athena
- auditmanager
- autoscalingplans
- autoscaling
- b2bi
- backupgateway
- backupsearch
- backup
- batch
- bcmdashboards
- bcmdataexports
- bcmpricingcalculator
- bcmrecommendedactions
- bedrockagentcorecontrol
- bedrockagentcore
- bedrockagentruntime
- bedrockagent
- bedrockdataautomationruntime
- bedrockdataautomation
- bedrockruntime
- bedrock
- billingconductor
- billing
- braket
- budgets
- chatbot
- chimesdkidentity
- chimesdkmediapipelines
- chimesdkmeetings
- chimesdkmessaging
- chimesdkvoice
- chime
- cleanroomsml
- cleanrooms
- cloud9
- cloudcontrol
- clouddirectory
- cloudformation
- cloudfrontkeyvaluestore
- cloudfront
- cloudhsmv2
- cloudhsm
- cloudsearchdomain
- cloudsearch
- cloudtraildata
- cloudtrail
- cloudwatchevents
- cloudwatchlogs
- cloudwatch
- codeartifact
- codebuild
- codecatalyst
- codecommit
- codeconnections
- codedeploy
- codeguruprofiler
- codegurureviewer
- codegurusecurity
- codepipeline
- codestarconnections
- codestarnotifications
- cognitoidentityprovider
- cognitoidentity
- cognitosync
- comprehendmedical
- comprehend
- computeoptimizerautomation
- computeoptimizer
- config
- connectcampaignsv2
- connectcampaigns
- connectcases
- connectcontactlens
- connecthealth
- connectparticipant
- connect
- controlcatalog
- controltower
- costandusagereport
- costexplorer
- costoptimizationhub
- customerprofiles
- databasemigration
- databrew
- dataexchange
- datapipeline
- datasync
- datazone
- dax
- deadline
- detective
- devicefarm
- devopsagent
- devopsguru
- directconnect
- directoryservicedata
- directory
- dlm
- docdbelastic
- docdb
- drs
- dsql
- dynamodb
- src
- main/java/software/amazon/awssdk/services/dynamodb
- test/java/software/amazon/awssdk/services/dynamodb
- ebs
- ec2instanceconnect
- ec2
- ecrpublic
- ecr
- ecs
- efs
- eksauth
- eks
- elasticache
- elasticbeanstalk
- elasticloadbalancingv2
- elasticloadbalancing
- elasticsearch
- elementalinference
- emrcontainers
- emrserverless
- emr
- entityresolution
- eventbridge
- evs
- finspacedata
- finspace
- firehose
- fis
- fms
- forecastquery
- forecast
- frauddetector
- freetier
- fsx
- gameliftstreams
- gamelift
- geomaps
- geoplaces
- georoutes
- glacier
- globalaccelerator
- glue
- grafana
- greengrassv2
- greengrass
- groundstation
- guardduty
- healthlake
- health
- iam
- identitystore
- imagebuilder
- inspector2
- inspectorscan
- inspector
- interconnect
- internetmonitor
- invoicing
- iotdataplane
- iotdeviceadvisor
- ioteventsdata
- iotevents
- iotfleetwise
- iotjobsdataplane
- iotmanagedintegrations
- iotsecuretunneling
- iotsitewise
- iotthingsgraph
- iottwinmaker
- iotwireless
- iot
- ivschat
- ivsrealtime
- ivs
- kafkaconnect
- kafka
- kendraranking
- kendra
- keyspacesstreams
- keyspaces
- kinesisanalyticsv2
- kinesisanalytics
- kinesisvideoarchivedmedia
- kinesisvideomedia
- kinesisvideosignaling
- kinesisvideowebrtcstorage
- kinesisvideo
- kinesis
- kms
- lakeformation
- lambda
- launchwizard
- lexmodelbuilding
- lexmodelsv2
- lexruntimev2
- lexruntime
- licensemanagerlinuxsubscriptions
- licensemanagerusersubscriptions
- licensemanager
- lightsail
- location
- lookoutequipment
- m2
- machinelearning
- macie2
- mailmanager
- managedblockchainquery
- managedblockchain
- marketplaceagreement
- marketplacecatalog
- marketplacecommerceanalytics
- marketplacedeployment
- marketplacediscovery
- marketplaceentitlement
- marketplacemetering
- marketplacereporting
- mediaconnect
- mediaconvert
- medialive
- mediapackagev2
- mediapackagevod
- mediapackage
- mediastoredata
- mediastore
- mediatailor
- medicalimaging
- memorydb
- mgn
- migrationhubconfig
- migrationhuborchestrator
- migrationhubrefactorspaces
- migrationhubstrategy
- migrationhub
- mpa
- mq
- mturk
- mwaaserverless
- mwaa
- neptunedata
- neptunegraph
- neptune
- networkfirewall
- networkflowmonitor
- networkmanager
- networkmonitor
- notificationscontacts
- notifications
- novaact
- oam
- observabilityadmin
- odb
- omics
- opensearchserverless
- opensearch
- organizations
- osis
- outposts
- panorama
- partnercentralaccount
- partnercentralbenefits
- partnercentralchannel
- partnercentralselling
- paymentcryptographydata
- paymentcryptography
- pcaconnectorad
- pcaconnectorscep
- pcs
- personalizeevents
- personalizeruntime
- personalize
- pinpointemail
- pinpointsmsvoicev2
- pinpointsmsvoice
- pinpoint
- pipes
- pi
- polly
- pricing
- proton
- qapps
- qbusiness
- qconnect
- quicksight
- ram
- rbin
- rdsdata
- rds
- redshiftdata
- redshiftserverless
- redshift
- rekognition
- repostspace
- resiliencehub
- resourceexplorer2
- resourcegroupstaggingapi
- resourcegroups
- rolesanywhere
- route53domains
- route53globalresolver
- route53profiles
- route53recoverycluster
- route53recoverycontrolconfig
- route53recoveryreadiness
- route53resolver
- route53
- rtbfabric
- rum
- s3control
- s3files
- s3outposts
- s3tables
- s3vectors
- s3
- sagemakera2iruntime
- sagemakeredge
- sagemakerfeaturestoreruntime
- sagemakergeospatial
- sagemakermetrics
- sagemakerruntimehttp2
- sagemakerruntime
- sagemaker
- savingsplans
- scheduler
- schemas
- secretsmanager
- securityagent
- securityhub
- securityir
- securitylake
- serverlessapplicationrepository
- servicecatalogappregistry
- servicecatalog
- servicediscovery
- servicequotas
- sesv2
- ses
- sfn
- shield
- signerdata
- signer
- signin
- simpledbv2
- simspaceweaver
- snowball
- snowdevicemanagement
- sns
- socialmessaging
- sqs
- ssmcontacts
- ssmguiconnect
- ssmincidents
- ssmquicksetup
- ssmsap
- ssm
- ssoadmin
- ssooidc
- sso
- storagegateway
- sts
- src
- main
- java/software/amazon/awssdk/services/sts/internal
- resources/codegen-resources
- test/java/software/amazon/awssdk/services/sts/internal
- supplychain
- supportapp
- support
- sustainability
- swf
- synthetics
- taxsettings
- textract
- timestreaminfluxdb
- timestreamquery
- timestreamwrite
- tnb
- transcribestreaming
- transcribe
- transfer
- translate
- trustedadvisor
- uxc
- verifiedpermissions
- voiceid
- vpclattice
- wafv2
- waf
- wellarchitected
- wickr
- wisdom
- workdocs
- workmailmessageflow
- workmail
- workspacesinstances
- workspacesthinclient
- workspacesweb
- workspaces
- xray
- test
- architecture-tests
- auth-tests
- bundle-logging-bridge-binding-test
- bundle-shading-tests
- codegen-generated-classes-test
- http-client-benchmarks
- http-client-tests
- module-path-tests
- old-client-version-compatibility-test
- protocol-tests-core
- protocol-tests
- region-testing
- ruleset-testing-core
- s3-benchmarks
- s3-tests
- sdk-benchmarks
- sdk-native-image-test
- sdk-standard-benchmarks
- service-test-utils
- stability-tests
- test-utils
- tests-coverage-reporting
- v2-migration-tests
- third-party
- third-party-jackson-core
- third-party-jackson-dataformat-cbor
- third-party-slf4j-api
- utils-lite
- utils
- v2-migration
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
File renamed without changes.
File renamed without changes.
File renamed without changes.
Lines changed: 6 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
| 1 | + | |
| 2 | + | |
| 3 | + | |
| 4 | + | |
| 5 | + | |
| 6 | + | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | 1 | | |
2 | | - | |
3 | | - | |
4 | | - | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
14 | | - | |
15 | | - | |
16 | | - | |
17 | | - | |
18 | | - | |
19 | | - | |
20 | | - | |
21 | | - | |
22 | | - | |
23 | | - | |
24 | | - | |
25 | | - | |
26 | | - | |
27 | | - | |
28 | | - | |
29 | | - | |
30 | | - | |
31 | | - | |
32 | | - | |
33 | | - | |
34 | | - | |
35 | | - | |
36 | | - | |
37 | | - | |
38 | | - | |
39 | | - | |
40 | | - | |
41 | | - | |
42 | | - | |
43 | | - | |
44 | | - | |
45 | | - | |
46 | | - | |
47 | | - | |
48 | | - | |
49 | | - | |
50 | | - | |
51 | | - | |
52 | | - | |
53 | | - | |
54 | | - | |
55 | | - | |
56 | | - | |
57 | | - | |
58 | | - | |
59 | | - | |
60 | | - | |
61 | | - | |
62 | | - | |
63 | | - | |
64 | | - | |
65 | | - | |
66 | | - | |
67 | | - | |
68 | | - | |
69 | | - | |
70 | | - | |
71 | | - | |
72 | | - | |
73 | | - | |
74 | | - | |
75 | | - | |
76 | | - | |
77 | | - | |
78 | | - | |
79 | | - | |
80 | | - | |
81 | | - | |
82 | | - | |
83 | | - | |
84 | | - | |
85 | | - | |
86 | | - | |
87 | | - | |
88 | | - | |
89 | | - | |
90 | | - | |
91 | | - | |
92 | | - | |
93 | | - | |
94 | | - | |
95 | | - | |
96 | | - | |
97 | | - | |
98 | | - | |
99 | | - | |
100 | | - | |
101 | | - | |
102 | | - | |
103 | | - | |
104 | | - | |
105 | | - | |
106 | | - | |
107 | | - | |
108 | | - | |
109 | | - | |
110 | | - | |
111 | | - | |
112 | | - | |
113 | | - | |
114 | | - | |
115 | | - | |
116 | | - | |
117 | | - | |
118 | | - | |
119 | | - | |
120 | | - | |
121 | | - | |
122 | | - | |
123 | | - | |
124 | | - | |
125 | | - | |
126 | | - | |
127 | | - | |
128 | | - | |
129 | | - | |
130 | | - | |
131 | | - | |
132 | | - | |
133 | | - | |
134 | | - | |
135 | | - | |
136 | | - | |
137 | | - | |
138 | | - | |
139 | | - | |
140 | | - | |
141 | | - | |
142 | | - | |
143 | | - | |
144 | | - | |
145 | | - | |
146 | | - | |
147 | | - | |
148 | | - | |
149 | | - | |
150 | | - | |
151 | | - | |
152 | | - | |
153 | | - | |
154 | | - | |
155 | | - | |
156 | | - | |
157 | | - | |
158 | | - | |
159 | | - | |
160 | | - | |
161 | | - | |
162 | | - | |
163 | | - | |
164 | | - | |
165 | | - | |
166 | | - | |
167 | | - | |
168 | | - | |
169 | | - | |
170 | | - | |
171 | | - | |
172 | | - | |
173 | | - | |
174 | | - | |
175 | | - | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
| 23 | + | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
| 23 | + | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
| 23 | + | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
20 | 20 | | |
21 | 21 | | |
22 | 22 | | |
23 | | - | |
| 23 | + | |
24 | 24 | | |
25 | 25 | | |
26 | 26 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
17 | 17 | | |
18 | 18 | | |
19 | 19 | | |
20 | | - | |
| 20 | + | |
21 | 21 | | |
22 | 22 | | |
23 | 23 | | |
| |||
0 commit comments