20
20
import java .util .HashSet ;
21
21
import java .util .List ;
22
22
import java .util .Map ;
23
+ import java .util .Objects ;
23
24
import java .util .Set ;
24
25
import software .amazon .awssdk .annotations .SdkInternalApi ;
25
26
import software .amazon .awssdk .core .SdkField ;
@@ -151,7 +152,7 @@ private SdkPojoConversionUtils() {
151
152
public static UploadPartRequest toUploadPartRequest (PutObjectRequest putObjectRequest , int partNumber , String uploadId ) {
152
153
153
154
UploadPartRequest .Builder builder = UploadPartRequest .builder ();
154
- validateRequestFields (putObjectRequest , builder , PUT_OBJECT_TO_UPLOAD_PART_ALLOWED_FIELDS );
155
+ validateRequestFields (putObjectRequest , builder . build () , PUT_OBJECT_TO_UPLOAD_PART_ALLOWED_FIELDS );
155
156
setSdkFields (builder , putObjectRequest , PUT_OBJECT_REQUEST_TO_UPLOAD_PART_FIELDS_TO_IGNORE );
156
157
return builder .uploadId (uploadId ).partNumber (partNumber ).build ();
157
158
}
@@ -160,7 +161,7 @@ public static CompleteMultipartUploadRequest toCompleteMultipartUploadRequest(Pu
160
161
String uploadId , CompletedPart [] parts ,
161
162
long contentLength ) {
162
163
CompleteMultipartUploadRequest .Builder builder = CompleteMultipartUploadRequest .builder ();
163
- validateRequestFields (putObjectRequest , builder , PUT_OBJECT_TO_UPLOAD_PART_ALLOWED_FIELDS );
164
+ validateRequestFields (putObjectRequest , builder . build () , PUT_OBJECT_TO_UPLOAD_PART_ALLOWED_FIELDS );
164
165
setSdkFields (builder , putObjectRequest );
165
166
166
167
builder .mpuObjectSize (contentLength );
@@ -175,7 +176,7 @@ public static CompleteMultipartUploadRequest toCompleteMultipartUploadRequest(Pu
175
176
public static CreateMultipartUploadRequest toCreateMultipartUploadRequest (PutObjectRequest putObjectRequest ) {
176
177
177
178
CreateMultipartUploadRequest .Builder builder = CreateMultipartUploadRequest .builder ();
178
- validateRequestFields (putObjectRequest , builder , PUT_OBJECT_TO_UPLOAD_PART_ALLOWED_FIELDS );
179
+ validateRequestFields (putObjectRequest , builder . build () , PUT_OBJECT_TO_UPLOAD_PART_ALLOWED_FIELDS );
179
180
setSdkFields (builder , putObjectRequest );
180
181
181
182
if (S3ChecksumUtils .checksumValueSpecified (putObjectRequest )) {
@@ -225,14 +226,14 @@ public static CompletedPart toCompletedPart(Part part) {
225
226
226
227
public static ListPartsRequest toListPartsRequest (String uploadId , PutObjectRequest putObjectRequest ) {
227
228
ListPartsRequest .Builder builder = ListPartsRequest .builder ();
228
- validateRequestFields (putObjectRequest , builder , PUT_OBJECT_TO_UPLOAD_PART_ALLOWED_FIELDS );
229
+ validateRequestFields (putObjectRequest , builder . build () , PUT_OBJECT_TO_UPLOAD_PART_ALLOWED_FIELDS );
229
230
setSdkFields (builder , putObjectRequest );
230
231
return builder .uploadId (uploadId ).build ();
231
232
}
232
233
233
234
public static CreateMultipartUploadRequest toCreateMultipartUploadRequest (CopyObjectRequest copyObjectRequest ) {
234
235
CreateMultipartUploadRequest .Builder builder = CreateMultipartUploadRequest .builder ();
235
- validateRequestFields (copyObjectRequest , builder , COPY_OBJECT_TO_COPY_OBJECT_ALLOWED_FIELDS );
236
+ validateRequestFields (copyObjectRequest , builder . build () , COPY_OBJECT_TO_COPY_OBJECT_ALLOWED_FIELDS );
236
237
setSdkFields (builder , copyObjectRequest );
237
238
builder .bucket (copyObjectRequest .destinationBucket ());
238
239
builder .key (copyObjectRequest .destinationKey ());
@@ -260,7 +261,7 @@ private static CopyObjectResult toCopyObjectResult(CompleteMultipartUploadRespon
260
261
261
262
public static AbortMultipartUploadRequest .Builder toAbortMultipartUploadRequest (CopyObjectRequest copyObjectRequest ) {
262
263
AbortMultipartUploadRequest .Builder builder = AbortMultipartUploadRequest .builder ();
263
- validateRequestFields (copyObjectRequest , builder , COPY_OBJECT_TO_COPY_OBJECT_ALLOWED_FIELDS );
264
+ validateRequestFields (copyObjectRequest , builder . build () , COPY_OBJECT_TO_COPY_OBJECT_ALLOWED_FIELDS );
264
265
setSdkFields (builder , copyObjectRequest );
265
266
builder .bucket (copyObjectRequest .destinationBucket ());
266
267
builder .key (copyObjectRequest .destinationKey ());
@@ -269,7 +270,7 @@ public static AbortMultipartUploadRequest.Builder toAbortMultipartUploadRequest(
269
270
270
271
public static AbortMultipartUploadRequest .Builder toAbortMultipartUploadRequest (PutObjectRequest putObjectRequest ) {
271
272
AbortMultipartUploadRequest .Builder builder = AbortMultipartUploadRequest .builder ();
272
- validateRequestFields (putObjectRequest , builder , PUT_OBJECT_TO_UPLOAD_PART_ALLOWED_FIELDS );
273
+ validateRequestFields (putObjectRequest , builder . build () , PUT_OBJECT_TO_UPLOAD_PART_ALLOWED_FIELDS );
273
274
setSdkFields (builder , putObjectRequest );
274
275
return builder ;
275
276
}
@@ -324,20 +325,20 @@ private static void setSdkFields(SdkPojo targetBuilder, SdkPojo sourceObject, Se
324
325
}
325
326
}
326
327
327
- private static void validateRequestFields (SdkPojo sourceObject , SdkPojo targetBuilder , Set <String > allowedFields ) {
328
+ private static void validateRequestFields (SdkPojo sourceObject , SdkPojo targetObject , Set <String > allowedFields ) {
328
329
Set <String > invalidFields = new HashSet <>();
329
330
330
331
for (SdkField <?> sourceField : sourceObject .sdkFields ()) {
331
332
String fieldName = sourceField .memberName ();
332
333
Object sourceValue = sourceField .getValueOrDefault (sourceObject );
333
334
334
335
if (!allowedFields .contains (fieldName )) {
335
- SdkField <?> targetField = targetBuilder .sdkFields ()
336
+ SdkField <?> targetField = targetObject .sdkFields ()
336
337
.stream ()
337
338
.filter (field -> field .memberName ().equals (fieldName ))
338
339
.findFirst ()
339
340
.orElse (null );
340
- if (targetField != null && !targetField .getValueOrDefault (targetBuilder ). equals ( sourceValue )) {
341
+ if (targetField != null && !Objects . equals ( sourceValue , targetField .getValueOrDefault (targetObject ) )) {
341
342
invalidFields .add (fieldName );
342
343
}
343
344
}
0 commit comments