Modify ARN toString to print a valid ARN when there's no region or acountId #4944
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Fixes #2416
Motivation and Context
Certain ARNs, like S3 or IAM, don't have to include region or accountId. This constructs a valid ARN
However, when
toString()
is called in this method,region
andaccount
are printed as literalnull
' so the ARN becomesinstead of the valid
This causes the problem that ARNs produced by
toString
cannot be used as identifiers when passed to other services,since this ARN is not valid.Modifications
Don't print
null
onArn.toString()
if region or accountId are not set.Testing
Added unit tests to verify this behavior. Additionally, this has the nice property that the ARNs produced by
toString()
can be parsed byArn.fromString()
.Screenshots (if appropriate)
N/A
Types of changes
Checklist
mvn install
succeedsscripts/new-change
script and following the instructions. Commit the new file created by the script in.changes/next-release
with your changes.License