Fix UnsupportedOperationException in auto gen timestamps for custom TableSchema#6886
Merged
aws-sdk-java-automation merged 1 commit intomasterfrom Apr 22, 2026
Merged
Conversation
zoewangg
approved these changes
Apr 22, 2026
|
|
This pull request has been closed and the conversation has been locked. Comments on closed PRs are hard for our team to see. If you need more assistance, please open a new issue that references this one. |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to subscribe to this conversation on GitHub.
Already have an account?
Sign in.
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.



Fix AutoGeneratedTimestampRecordExtension throwing UnsupportedOperationException when used with TableSchema implementations that do not override converterForAttribute, such as DocumentTableSchema or custom or third-party schemas.
Motivation and Context
Fixes a regression introduced by PR #6546 (nested record timestamp support). When
AutoGeneratedTimestampRecordExtensionis used with aTableSchemaimplementation that does not overrideconverterForAttribute— such asDocumentTableSchemaor third-party schemas like DynamoKt'sDataClassTableSchema— the extension throwsUnsupportedOperationExceptionduringbeforeWritefor any item containing Map-valued or List-of-Maps attributes.The root cause is that
processDirectNestedAttributesunconditionally callsconverterForAttributeon the table schema for every Map-valued attribute in the item. TheconverterForAttributemethod has a default implementation in the TableSchema interface that throwsUnsupportedOperationException, and not all implementations override it.Modifications
In
EnhancedClientUtils.getNestedSchema()andNestedRecordUtils.getTableSchemaForListElement(), wrapped theconverterForAttributecall in a try-catch forUnsupportedOperationException. When caught, the methods returnOptional.empty()ornullrespectively, which callers already handle by skipping nested schema introspection for that attribute.Testing
Added new unit and functional tests that cover this. Additionally manually reproduced issue on a complex model with DynamoKt.
Screenshots (if appropriate)
Types of changes
Checklist
mvn installsucceedsscripts/new-changescript and following the instructions. Commit the new file created by the script in.changes/next-releasewith your changes.License