Skip to content

Commit 9c823a5

Browse files
authored
Add @transient annotation to BuilderImpl fluent setters. (#2641)
This fixes an issue where a bean-based marshaller for request and response models would fail for fluent setters that happened to start with "set", like "settings". The following services are fixed by this: medialive, ecs, networkfirewall, opsworks, codecommit.
1 parent 5b76704 commit 9c823a5

29 files changed

+1337
-1155
lines changed
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"category": "AWS SDK for Java v2",
3+
"contributor": "",
4+
"type": "bugfix",
5+
"description": "Fixed an issue where a bean-based marshallers for request and response models would fail for fluent setters that happened to start with \"set\", like \"settings\"."
6+
}

codegen/src/main/java/software/amazon/awssdk/codegen/poet/model/AbstractMemberSetters.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import com.squareup.javapoet.MethodSpec;
2323
import com.squareup.javapoet.ParameterSpec;
2424
import com.squareup.javapoet.TypeName;
25+
import java.beans.Transient;
2526
import java.util.Optional;
2627
import java.util.stream.Collectors;
2728
import javax.lang.model.element.Modifier;
@@ -84,6 +85,7 @@ protected MethodSpec.Builder fluentSetterBuilder(String methodName, ParameterSpe
8485
return MethodSpec.methodBuilder(methodName)
8586
.addParameter(setterParam)
8687
.addAnnotation(Override.class)
88+
.addAnnotation(Transient.class)
8789
.returns(returnType)
8890
.addModifiers(Modifier.PUBLIC, Modifier.FINAL);
8991
}

codegen/src/main/java/software/amazon/awssdk/codegen/poet/model/ModelBuilderSpecs.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -216,8 +216,8 @@ private List<MethodSpec> accessors() {
216216
shapeModel.getNonStreamingMembers()
217217
.forEach(m -> {
218218
accessors.add(checkDeprecated(m, accessorsFactory.beanStyleGetter(m)));
219-
accessors.addAll(checkDeprecated(m, accessorsFactory.fluentSetters(m, builderInterfaceName())));
220219
accessors.addAll(checkDeprecated(m, accessorsFactory.beanStyleSetters(m)));
220+
accessors.addAll(checkDeprecated(m, accessorsFactory.fluentSetters(m, builderInterfaceName())));
221221
accessors.addAll(checkDeprecated(m, accessorsFactory.convenienceSetters(m, builderInterfaceName())));
222222
});
223223

0 commit comments

Comments
 (0)