Skip to content

Commit 40e04df

Browse files
authored
[Java][Native] handle empty response body (#13993)
1 parent e25f8c5 commit 40e04df

13 files changed

Lines changed: 109 additions & 55 deletions

File tree

modules/openapi-generator/src/main/resources/Java/libraries/native/api.mustache

Lines changed: 7 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -185,8 +185,9 @@ public class {{classname}} {
185185
}
186186
{{#returnType}}
187187
try {
188+
String responseBody = localVarResponse.body();
188189
return CompletableFuture.completedFuture(
189-
memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference<{{{returnType}}}>() {})
190+
responseBody == null || responseBody.isBlank() ? null : memberVarObjectMapper.readValue(responseBody, new TypeReference<{{{returnType}}}>() {})
190191
);
191192
} catch (IOException e) {
192193
return CompletableFuture.failedFuture(new ApiException(e));
@@ -236,10 +237,11 @@ public class {{classname}} {
236237
if (localVarResponse.statusCode()/ 100 != 2) {
237238
throw getApiException("{{operationId}}", localVarResponse);
238239
}
239-
return new ApiResponse<{{{returnType}}}{{^returnType}}Void{{/returnType}}>(
240+
{{#returnType}}InputStream responseBody = localVarResponse.body();
241+
{{/returnType}}return new ApiResponse<{{{returnType}}}{{^returnType}}Void{{/returnType}}>(
240242
localVarResponse.statusCode(),
241243
localVarResponse.headers().map(),
242-
{{#returnType}}memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference<{{{returnType}}}>() {}) // closes the InputStream{{/returnType}}
244+
{{#returnType}}responseBody == null || responseBody.available() < 1 ? null : memberVarObjectMapper.readValue(responseBody, new TypeReference<{{{returnType}}}>() {}) // closes the InputStream{{/returnType}}
243245
{{^returnType}}null{{/returnType}}
244246
);
245247
} finally {
@@ -273,11 +275,12 @@ public class {{classname}} {
273275
}
274276
{{#returnType}}
275277
try {
278+
String responseBody = localVarResponse.body();
276279
return CompletableFuture.completedFuture(
277280
new ApiResponse<{{{returnType}}}>(
278281
localVarResponse.statusCode(),
279282
localVarResponse.headers().map(),
280-
memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference<{{{returnType}}}>() {}))
283+
responseBody == null || responseBody.isBlank() ? null : memberVarObjectMapper.readValue(responseBody, new TypeReference<{{{returnType}}}>() {}))
281284
);
282285
} catch (IOException e) {
283286
return CompletableFuture.failedFuture(new ApiException(e));

samples/client/petstore/java/native-async/src/main/java/org/openapitools/client/api/AnotherFakeApi.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,9 @@ public CompletableFuture<Client> call123testSpecialTags(Client body) throws ApiE
9292
return CompletableFuture.failedFuture(getApiException("call123testSpecialTags", localVarResponse));
9393
}
9494
try {
95+
String responseBody = localVarResponse.body();
9596
return CompletableFuture.completedFuture(
96-
memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference<Client>() {})
97+
responseBody == null || responseBody.isBlank() ? null : memberVarObjectMapper.readValue(responseBody, new TypeReference<Client>() {})
9798
);
9899
} catch (IOException e) {
99100
return CompletableFuture.failedFuture(new ApiException(e));
@@ -125,11 +126,12 @@ public CompletableFuture<ApiResponse<Client>> call123testSpecialTagsWithHttpInfo
125126
return CompletableFuture.failedFuture(getApiException("call123testSpecialTags", localVarResponse));
126127
}
127128
try {
129+
String responseBody = localVarResponse.body();
128130
return CompletableFuture.completedFuture(
129131
new ApiResponse<Client>(
130132
localVarResponse.statusCode(),
131133
localVarResponse.headers().map(),
132-
memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference<Client>() {}))
134+
responseBody == null || responseBody.isBlank() ? null : memberVarObjectMapper.readValue(responseBody, new TypeReference<Client>() {}))
133135
);
134136
} catch (IOException e) {
135137
return CompletableFuture.failedFuture(new ApiException(e));

samples/client/petstore/java/native-async/src/main/java/org/openapitools/client/api/FakeApi.java

Lines changed: 20 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -183,8 +183,9 @@ public CompletableFuture<Boolean> fakeOuterBooleanSerialize(Boolean body) throws
183183
return CompletableFuture.failedFuture(getApiException("fakeOuterBooleanSerialize", localVarResponse));
184184
}
185185
try {
186+
String responseBody = localVarResponse.body();
186187
return CompletableFuture.completedFuture(
187-
memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference<Boolean>() {})
188+
responseBody == null || responseBody.isBlank() ? null : memberVarObjectMapper.readValue(responseBody, new TypeReference<Boolean>() {})
188189
);
189190
} catch (IOException e) {
190191
return CompletableFuture.failedFuture(new ApiException(e));
@@ -216,11 +217,12 @@ public CompletableFuture<ApiResponse<Boolean>> fakeOuterBooleanSerializeWithHttp
216217
return CompletableFuture.failedFuture(getApiException("fakeOuterBooleanSerialize", localVarResponse));
217218
}
218219
try {
220+
String responseBody = localVarResponse.body();
219221
return CompletableFuture.completedFuture(
220222
new ApiResponse<Boolean>(
221223
localVarResponse.statusCode(),
222224
localVarResponse.headers().map(),
223-
memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference<Boolean>() {}))
225+
responseBody == null || responseBody.isBlank() ? null : memberVarObjectMapper.readValue(responseBody, new TypeReference<Boolean>() {}))
224226
);
225227
} catch (IOException e) {
226228
return CompletableFuture.failedFuture(new ApiException(e));
@@ -275,8 +277,9 @@ public CompletableFuture<OuterComposite> fakeOuterCompositeSerialize(OuterCompos
275277
return CompletableFuture.failedFuture(getApiException("fakeOuterCompositeSerialize", localVarResponse));
276278
}
277279
try {
280+
String responseBody = localVarResponse.body();
278281
return CompletableFuture.completedFuture(
279-
memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference<OuterComposite>() {})
282+
responseBody == null || responseBody.isBlank() ? null : memberVarObjectMapper.readValue(responseBody, new TypeReference<OuterComposite>() {})
280283
);
281284
} catch (IOException e) {
282285
return CompletableFuture.failedFuture(new ApiException(e));
@@ -308,11 +311,12 @@ public CompletableFuture<ApiResponse<OuterComposite>> fakeOuterCompositeSerializ
308311
return CompletableFuture.failedFuture(getApiException("fakeOuterCompositeSerialize", localVarResponse));
309312
}
310313
try {
314+
String responseBody = localVarResponse.body();
311315
return CompletableFuture.completedFuture(
312316
new ApiResponse<OuterComposite>(
313317
localVarResponse.statusCode(),
314318
localVarResponse.headers().map(),
315-
memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference<OuterComposite>() {}))
319+
responseBody == null || responseBody.isBlank() ? null : memberVarObjectMapper.readValue(responseBody, new TypeReference<OuterComposite>() {}))
316320
);
317321
} catch (IOException e) {
318322
return CompletableFuture.failedFuture(new ApiException(e));
@@ -367,8 +371,9 @@ public CompletableFuture<BigDecimal> fakeOuterNumberSerialize(BigDecimal body) t
367371
return CompletableFuture.failedFuture(getApiException("fakeOuterNumberSerialize", localVarResponse));
368372
}
369373
try {
374+
String responseBody = localVarResponse.body();
370375
return CompletableFuture.completedFuture(
371-
memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference<BigDecimal>() {})
376+
responseBody == null || responseBody.isBlank() ? null : memberVarObjectMapper.readValue(responseBody, new TypeReference<BigDecimal>() {})
372377
);
373378
} catch (IOException e) {
374379
return CompletableFuture.failedFuture(new ApiException(e));
@@ -400,11 +405,12 @@ public CompletableFuture<ApiResponse<BigDecimal>> fakeOuterNumberSerializeWithHt
400405
return CompletableFuture.failedFuture(getApiException("fakeOuterNumberSerialize", localVarResponse));
401406
}
402407
try {
408+
String responseBody = localVarResponse.body();
403409
return CompletableFuture.completedFuture(
404410
new ApiResponse<BigDecimal>(
405411
localVarResponse.statusCode(),
406412
localVarResponse.headers().map(),
407-
memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference<BigDecimal>() {}))
413+
responseBody == null || responseBody.isBlank() ? null : memberVarObjectMapper.readValue(responseBody, new TypeReference<BigDecimal>() {}))
408414
);
409415
} catch (IOException e) {
410416
return CompletableFuture.failedFuture(new ApiException(e));
@@ -459,8 +465,9 @@ public CompletableFuture<String> fakeOuterStringSerialize(String body) throws Ap
459465
return CompletableFuture.failedFuture(getApiException("fakeOuterStringSerialize", localVarResponse));
460466
}
461467
try {
468+
String responseBody = localVarResponse.body();
462469
return CompletableFuture.completedFuture(
463-
memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference<String>() {})
470+
responseBody == null || responseBody.isBlank() ? null : memberVarObjectMapper.readValue(responseBody, new TypeReference<String>() {})
464471
);
465472
} catch (IOException e) {
466473
return CompletableFuture.failedFuture(new ApiException(e));
@@ -492,11 +499,12 @@ public CompletableFuture<ApiResponse<String>> fakeOuterStringSerializeWithHttpIn
492499
return CompletableFuture.failedFuture(getApiException("fakeOuterStringSerialize", localVarResponse));
493500
}
494501
try {
502+
String responseBody = localVarResponse.body();
495503
return CompletableFuture.completedFuture(
496504
new ApiResponse<String>(
497505
localVarResponse.statusCode(),
498506
localVarResponse.headers().map(),
499-
memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference<String>() {}))
507+
responseBody == null || responseBody.isBlank() ? null : memberVarObjectMapper.readValue(responseBody, new TypeReference<String>() {}))
500508
);
501509
} catch (IOException e) {
502510
return CompletableFuture.failedFuture(new ApiException(e));
@@ -727,8 +735,9 @@ public CompletableFuture<Client> testClientModel(Client body) throws ApiExceptio
727735
return CompletableFuture.failedFuture(getApiException("testClientModel", localVarResponse));
728736
}
729737
try {
738+
String responseBody = localVarResponse.body();
730739
return CompletableFuture.completedFuture(
731-
memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference<Client>() {})
740+
responseBody == null || responseBody.isBlank() ? null : memberVarObjectMapper.readValue(responseBody, new TypeReference<Client>() {})
732741
);
733742
} catch (IOException e) {
734743
return CompletableFuture.failedFuture(new ApiException(e));
@@ -760,11 +769,12 @@ public CompletableFuture<ApiResponse<Client>> testClientModelWithHttpInfo(Client
760769
return CompletableFuture.failedFuture(getApiException("testClientModel", localVarResponse));
761770
}
762771
try {
772+
String responseBody = localVarResponse.body();
763773
return CompletableFuture.completedFuture(
764774
new ApiResponse<Client>(
765775
localVarResponse.statusCode(),
766776
localVarResponse.headers().map(),
767-
memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference<Client>() {}))
777+
responseBody == null || responseBody.isBlank() ? null : memberVarObjectMapper.readValue(responseBody, new TypeReference<Client>() {}))
768778
);
769779
} catch (IOException e) {
770780
return CompletableFuture.failedFuture(new ApiException(e));

samples/client/petstore/java/native-async/src/main/java/org/openapitools/client/api/FakeClassnameTags123Api.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -92,8 +92,9 @@ public CompletableFuture<Client> testClassname(Client body) throws ApiException
9292
return CompletableFuture.failedFuture(getApiException("testClassname", localVarResponse));
9393
}
9494
try {
95+
String responseBody = localVarResponse.body();
9596
return CompletableFuture.completedFuture(
96-
memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference<Client>() {})
97+
responseBody == null || responseBody.isBlank() ? null : memberVarObjectMapper.readValue(responseBody, new TypeReference<Client>() {})
9798
);
9899
} catch (IOException e) {
99100
return CompletableFuture.failedFuture(new ApiException(e));
@@ -125,11 +126,12 @@ public CompletableFuture<ApiResponse<Client>> testClassnameWithHttpInfo(Client b
125126
return CompletableFuture.failedFuture(getApiException("testClassname", localVarResponse));
126127
}
127128
try {
129+
String responseBody = localVarResponse.body();
128130
return CompletableFuture.completedFuture(
129131
new ApiResponse<Client>(
130132
localVarResponse.statusCode(),
131133
localVarResponse.headers().map(),
132-
memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference<Client>() {}))
134+
responseBody == null || responseBody.isBlank() ? null : memberVarObjectMapper.readValue(responseBody, new TypeReference<Client>() {}))
133135
);
134136
} catch (IOException e) {
135137
return CompletableFuture.failedFuture(new ApiException(e));

0 commit comments

Comments
 (0)