Skip to content

Commit 022970e

Browse files
adamthom-amznmillems
authored andcommitted
Fix event marshaller binding for input event streams.
This is another case of SDK code generation failing when the event's structure name and the structure member name are not identical.
1 parent 49bd2be commit 022970e

File tree

3 files changed

+7
-5
lines changed

3 files changed

+7
-5
lines changed
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
{
2+
"category": "AWS SDK for Java v2",
3+
"type": "bugfix",
4+
"description": "Fix marshaller binding for input event streams when member name and shape name are not equal."
5+
}

codegen/src/main/java/software/amazon/awssdk/codegen/poet/client/AsyncClientClass.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,6 @@
4646
import software.amazon.awssdk.codegen.emitters.GeneratorTaskParams;
4747
import software.amazon.awssdk.codegen.model.config.customization.UtilitiesMethod;
4848
import software.amazon.awssdk.codegen.model.intermediate.IntermediateModel;
49-
import software.amazon.awssdk.codegen.model.intermediate.MemberModel;
5049
import software.amazon.awssdk.codegen.model.intermediate.OperationModel;
5150
import software.amazon.awssdk.codegen.model.intermediate.ShapeModel;
5251
import software.amazon.awssdk.codegen.poet.PoetExtensions;
@@ -273,7 +272,7 @@ private CodeBlock createEventStreamTaggedUnionJsonMarshaller(ShapeModel eventStr
273272
EventStreamTaggedUnionJsonMarshaller.class);
274273

275274
List<String> eventNames = EventStreamUtils.getEventMembers(eventStreamShape)
276-
.map(MemberModel::getC2jName)
275+
.map(m -> m.getShape().getShapeName())
277276
.collect(Collectors.toList());
278277

279278
eventNames.forEach(event -> builder.add(".putMarshaller($T.class, new $T(protocolFactory))",

codegen/src/test/resources/software/amazon/awssdk/codegen/poet/client/test-async-client-class.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -60,7 +60,6 @@
6060
import software.amazon.awssdk.services.json.model.GetWithoutRequiredMembersRequest;
6161
import software.amazon.awssdk.services.json.model.GetWithoutRequiredMembersResponse;
6262
import software.amazon.awssdk.services.json.model.InputEvent;
63-
import software.amazon.awssdk.services.json.model.InputEventOne;
6463
import software.amazon.awssdk.services.json.model.InputEventStream;
6564
import software.amazon.awssdk.services.json.model.InputEventStreamTwo;
6665
import software.amazon.awssdk.services.json.model.InputEventTwo;
@@ -86,7 +85,6 @@
8685
import software.amazon.awssdk.services.json.transform.EventStreamOperationWithOnlyOutputRequestMarshaller;
8786
import software.amazon.awssdk.services.json.transform.GetWithoutRequiredMembersRequestMarshaller;
8887
import software.amazon.awssdk.services.json.transform.InputEventMarshaller;
89-
import software.amazon.awssdk.services.json.transform.InputEventOneMarshaller;
9088
import software.amazon.awssdk.services.json.transform.InputEventTwoMarshaller;
9189
import software.amazon.awssdk.services.json.transform.PaginatedOperationWithResultKeyRequestMarshaller;
9290
import software.amazon.awssdk.services.json.transform.PaginatedOperationWithoutResultKeyRequestMarshaller;
@@ -343,7 +341,7 @@ public CompletableFuture<EventStreamOperationWithOnlyInputResponse> eventStreamO
343341
HttpResponseHandler<AwsServiceException> errorResponseHandler = createErrorResponseHandler(protocolFactory,
344342
operationMetadata);
345343
EventStreamTaggedUnionJsonMarshaller eventMarshaller = EventStreamTaggedUnionJsonMarshaller.builder()
346-
.putMarshaller(InputEventOne.class, new InputEventOneMarshaller(protocolFactory))
344+
.putMarshaller(InputEvent.class, new InputEventMarshaller(protocolFactory))
347345
.putMarshaller(InputEventTwo.class, new InputEventTwoMarshaller(protocolFactory)).build();
348346
SdkPublisher<InputEventStreamTwo> eventPublisher = SdkPublisher.adapt(requestStream);
349347
Publisher<ByteBuffer> adapted = eventPublisher.map(event -> eventMarshaller.marshall(event)).map(

0 commit comments

Comments
 (0)