From 5bd045289397c41973a0254a79fa9703ced799cc Mon Sep 17 00:00:00 2001 From: Steve Mason Date: Thu, 25 Nov 2021 06:44:57 +0000 Subject: [PATCH] [Java][Native] Drain InputStream when no response is being read (#10956) The [docs for ofInputStream](https://docs.oracle.com/en/java/javase/11/docs/api/java.net.http/java/net/http/HttpResponse.BodySubscribers.html#ofInputStream()) say: > To ensure that all resources associated with the corresponding exchange are properly released the caller must ensure to either read all lines until the stream is exhausted, or call BaseStream.close() if it is unable or unwilling to do so. Calling close before exhausting the stream may cause the underlying HTTP connection to be closed and prevent it from being reused for subsequent operations. When ObjectMapper.readValue is called with an InputStream it implicitly closes it, but when the library is not expecting a return type it's not passing the InputStream to Jackson, so the stream needs to be manually drained and closed as per the docs Failure to do this leads to a leak of HttpClient socket handles, and ultimately the exception `java.net.BindException: Cannot assign requested address` when trying to make API calls --- .../Java/libraries/native/api.mustache | 21 +- .../client/api/AnotherFakeApi.java | 14 +- .../org/openapitools/client/api/FakeApi.java | 223 +++++++++++++----- .../client/api/FakeClassnameTags123Api.java | 14 +- .../org/openapitools/client/api/PetApi.java | 138 +++++++---- .../org/openapitools/client/api/StoreApi.java | 59 +++-- .../org/openapitools/client/api/UserApi.java | 130 +++++++--- 7 files changed, 429 insertions(+), 170 deletions(-) diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/native/api.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/native/api.mustache index 018f51b32ce..218a432d106 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/native/api.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/native/api.mustache @@ -222,14 +222,25 @@ public class {{classname}} { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("{{operationId}}", localVarResponse); - } - return new ApiResponse<{{{returnType}}}{{^returnType}}Void{{/returnType}}>( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("{{operationId}}", localVarResponse); + } + return new ApiResponse<{{{returnType}}}{{^returnType}}Void{{/returnType}}>( localVarResponse.statusCode(), localVarResponse.headers().map(), - {{#returnType}}memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference<{{{returnType}}}>() {}){{/returnType}}{{^returnType}}null{{/returnType}} + {{#returnType}}memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference<{{{returnType}}}>() {}) // closes the InputStream{{/returnType}} + {{^returnType}}null{{/returnType}} ); + } finally { + {{^returnType}} + // Drain the InputStream + while (localVarResponse.body().read() != -1) { + // Ignore + } + localVarResponse.body().close(); + {{/returnType}} + } } catch (IOException e) { throw new ApiException(e); } diff --git a/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/AnotherFakeApi.java b/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/AnotherFakeApi.java index e553b758ccf..cacc3ac7cf4 100644 --- a/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/AnotherFakeApi.java +++ b/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/AnotherFakeApi.java @@ -102,14 +102,18 @@ public class AnotherFakeApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("call123testSpecialTags", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("call123testSpecialTags", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), - memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) + memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) // closes the InputStream + ); + } finally { + } } catch (IOException e) { throw new ApiException(e); } diff --git a/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/FakeApi.java b/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/FakeApi.java index 36f4539d7cc..6618620891c 100644 --- a/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/FakeApi.java +++ b/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/FakeApi.java @@ -108,14 +108,23 @@ public class FakeApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("createXmlItem", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("createXmlItem", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), + null ); + } finally { + // Drain the InputStream + while (localVarResponse.body().read() != -1) { + // Ignore + } + localVarResponse.body().close(); + } } catch (IOException e) { throw new ApiException(e); } @@ -182,14 +191,18 @@ public class FakeApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("fakeOuterBooleanSerialize", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("fakeOuterBooleanSerialize", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), - memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) + memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) // closes the InputStream + ); + } finally { + } } catch (IOException e) { throw new ApiException(e); } @@ -252,14 +265,18 @@ public class FakeApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("fakeOuterCompositeSerialize", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("fakeOuterCompositeSerialize", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), - memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) + memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) // closes the InputStream + ); + } finally { + } } catch (IOException e) { throw new ApiException(e); } @@ -322,14 +339,18 @@ public class FakeApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("fakeOuterNumberSerialize", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("fakeOuterNumberSerialize", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), - memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) + memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) // closes the InputStream + ); + } finally { + } } catch (IOException e) { throw new ApiException(e); } @@ -392,14 +413,18 @@ public class FakeApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("fakeOuterStringSerialize", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("fakeOuterStringSerialize", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), - memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) + memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) // closes the InputStream + ); + } finally { + } } catch (IOException e) { throw new ApiException(e); } @@ -460,14 +485,23 @@ public class FakeApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("testBodyWithFileSchema", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("testBodyWithFileSchema", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), + null ); + } finally { + // Drain the InputStream + while (localVarResponse.body().read() != -1) { + // Ignore + } + localVarResponse.body().close(); + } } catch (IOException e) { throw new ApiException(e); } @@ -534,14 +568,23 @@ public class FakeApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("testBodyWithQueryParams", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("testBodyWithQueryParams", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), + null ); + } finally { + // Drain the InputStream + while (localVarResponse.body().read() != -1) { + // Ignore + } + localVarResponse.body().close(); + } } catch (IOException e) { throw new ApiException(e); } @@ -621,14 +664,18 @@ public class FakeApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("testClientModel", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("testClientModel", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), - memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) + memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) // closes the InputStream + ); + } finally { + } } catch (IOException e) { throw new ApiException(e); } @@ -719,14 +766,23 @@ public class FakeApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("testEndpointParameters", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("testEndpointParameters", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), + null ); + } finally { + // Drain the InputStream + while (localVarResponse.body().read() != -1) { + // Ignore + } + localVarResponse.body().close(); + } } catch (IOException e) { throw new ApiException(e); } @@ -811,14 +867,23 @@ public class FakeApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("testEnumParameters", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("testEnumParameters", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), + null ); + } finally { + // Drain the InputStream + while (localVarResponse.body().read() != -1) { + // Ignore + } + localVarResponse.body().close(); + } } catch (IOException e) { throw new ApiException(e); } @@ -934,14 +999,23 @@ public class FakeApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("testGroupParameters", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("testGroupParameters", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), + null ); + } finally { + // Drain the InputStream + while (localVarResponse.body().read() != -1) { + // Ignore + } + localVarResponse.body().close(); + } } catch (IOException e) { throw new ApiException(e); } @@ -1103,14 +1177,23 @@ public class FakeApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("testInlineAdditionalProperties", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("testInlineAdditionalProperties", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), + null ); + } finally { + // Drain the InputStream + while (localVarResponse.body().read() != -1) { + // Ignore + } + localVarResponse.body().close(); + } } catch (IOException e) { throw new ApiException(e); } @@ -1177,14 +1260,23 @@ public class FakeApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("testJsonFormData", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("testJsonFormData", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), + null ); + } finally { + // Drain the InputStream + while (localVarResponse.body().read() != -1) { + // Ignore + } + localVarResponse.body().close(); + } } catch (IOException e) { throw new ApiException(e); } @@ -1255,14 +1347,23 @@ public class FakeApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("testQueryParameterCollectionFormat", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("testQueryParameterCollectionFormat", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), + null ); + } finally { + // Drain the InputStream + while (localVarResponse.body().read() != -1) { + // Ignore + } + localVarResponse.body().close(); + } } catch (IOException e) { throw new ApiException(e); } diff --git a/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/FakeClassnameTags123Api.java b/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/FakeClassnameTags123Api.java index 565c5651c18..b85f5608319 100644 --- a/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/FakeClassnameTags123Api.java +++ b/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/FakeClassnameTags123Api.java @@ -102,14 +102,18 @@ public class FakeClassnameTags123Api { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("testClassname", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("testClassname", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), - memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) + memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) // closes the InputStream + ); + } finally { + } } catch (IOException e) { throw new ApiException(e); } diff --git a/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/PetApi.java b/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/PetApi.java index a754fb97777..758142dfa7b 100644 --- a/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/PetApi.java +++ b/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/PetApi.java @@ -103,14 +103,23 @@ public class PetApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("addPet", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("addPet", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), + null ); + } finally { + // Drain the InputStream + while (localVarResponse.body().read() != -1) { + // Ignore + } + localVarResponse.body().close(); + } } catch (IOException e) { throw new ApiException(e); } @@ -177,14 +186,23 @@ public class PetApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("deletePet", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("deletePet", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), + null ); + } finally { + // Drain the InputStream + while (localVarResponse.body().read() != -1) { + // Ignore + } + localVarResponse.body().close(); + } } catch (IOException e) { throw new ApiException(e); } @@ -249,14 +267,18 @@ public class PetApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("findPetsByStatus", localVarResponse); - } - return new ApiResponse>( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("findPetsByStatus", localVarResponse); + } + return new ApiResponse>( localVarResponse.statusCode(), localVarResponse.headers().map(), - memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference>() {}) + memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference>() {}) // closes the InputStream + ); + } finally { + } } catch (IOException e) { throw new ApiException(e); } @@ -330,14 +352,18 @@ public class PetApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("findPetsByTags", localVarResponse); - } - return new ApiResponse>( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("findPetsByTags", localVarResponse); + } + return new ApiResponse>( localVarResponse.statusCode(), localVarResponse.headers().map(), - memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference>() {}) + memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference>() {}) // closes the InputStream + ); + } finally { + } } catch (IOException e) { throw new ApiException(e); } @@ -407,14 +433,18 @@ public class PetApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("getPetById", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("getPetById", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), - memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) + memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) // closes the InputStream + ); + } finally { + } } catch (IOException e) { throw new ApiException(e); } @@ -474,14 +504,23 @@ public class PetApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("updatePet", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("updatePet", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), + null ); + } finally { + // Drain the InputStream + while (localVarResponse.body().read() != -1) { + // Ignore + } + localVarResponse.body().close(); + } } catch (IOException e) { throw new ApiException(e); } @@ -550,14 +589,23 @@ public class PetApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("updatePetWithForm", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("updatePetWithForm", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), + null ); + } finally { + // Drain the InputStream + while (localVarResponse.body().read() != -1) { + // Ignore + } + localVarResponse.body().close(); + } } catch (IOException e) { throw new ApiException(e); } @@ -623,14 +671,18 @@ public class PetApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("uploadFile", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("uploadFile", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), - memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) + memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) // closes the InputStream + ); + } finally { + } } catch (IOException e) { throw new ApiException(e); } @@ -696,14 +748,18 @@ public class PetApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("uploadFileWithRequiredFile", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("uploadFileWithRequiredFile", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), - memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) + memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) // closes the InputStream + ); + } finally { + } } catch (IOException e) { throw new ApiException(e); } diff --git a/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/StoreApi.java b/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/StoreApi.java index 2d691aec852..bde07853f96 100644 --- a/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/StoreApi.java +++ b/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/StoreApi.java @@ -100,14 +100,23 @@ public class StoreApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("deleteOrder", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("deleteOrder", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), + null ); + } finally { + // Drain the InputStream + while (localVarResponse.body().read() != -1) { + // Ignore + } + localVarResponse.body().close(); + } } catch (IOException e) { throw new ApiException(e); } @@ -167,14 +176,18 @@ public class StoreApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("getInventory", localVarResponse); - } - return new ApiResponse>( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("getInventory", localVarResponse); + } + return new ApiResponse>( localVarResponse.statusCode(), localVarResponse.headers().map(), - memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference>() {}) + memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference>() {}) // closes the InputStream + ); + } finally { + } } catch (IOException e) { throw new ApiException(e); } @@ -231,14 +244,18 @@ public class StoreApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("getOrderById", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("getOrderById", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), - memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) + memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) // closes the InputStream + ); + } finally { + } } catch (IOException e) { throw new ApiException(e); } @@ -300,14 +317,18 @@ public class StoreApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("placeOrder", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("placeOrder", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), - memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) + memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) // closes the InputStream + ); + } finally { + } } catch (IOException e) { throw new ApiException(e); } diff --git a/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/UserApi.java b/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/UserApi.java index 6afc9d06f6d..d4f06af3fd5 100644 --- a/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/UserApi.java +++ b/samples/client/petstore/java/native/src/main/java/org/openapitools/client/api/UserApi.java @@ -100,14 +100,23 @@ public class UserApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("createUser", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("createUser", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), + null ); + } finally { + // Drain the InputStream + while (localVarResponse.body().read() != -1) { + // Ignore + } + localVarResponse.body().close(); + } } catch (IOException e) { throw new ApiException(e); } @@ -172,14 +181,23 @@ public class UserApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("createUsersWithArrayInput", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("createUsersWithArrayInput", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), + null ); + } finally { + // Drain the InputStream + while (localVarResponse.body().read() != -1) { + // Ignore + } + localVarResponse.body().close(); + } } catch (IOException e) { throw new ApiException(e); } @@ -244,14 +262,23 @@ public class UserApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("createUsersWithListInput", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("createUsersWithListInput", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), + null ); + } finally { + // Drain the InputStream + while (localVarResponse.body().read() != -1) { + // Ignore + } + localVarResponse.body().close(); + } } catch (IOException e) { throw new ApiException(e); } @@ -316,14 +343,23 @@ public class UserApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("deleteUser", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("deleteUser", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), + null ); + } finally { + // Drain the InputStream + while (localVarResponse.body().read() != -1) { + // Ignore + } + localVarResponse.body().close(); + } } catch (IOException e) { throw new ApiException(e); } @@ -385,14 +421,18 @@ public class UserApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("getUserByName", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("getUserByName", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), - memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) + memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) // closes the InputStream + ); + } finally { + } } catch (IOException e) { throw new ApiException(e); } @@ -456,14 +496,18 @@ public class UserApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("loginUser", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("loginUser", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), - memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) + memberVarObjectMapper.readValue(localVarResponse.body(), new TypeReference() {}) // closes the InputStream + ); + } finally { + } } catch (IOException e) { throw new ApiException(e); } @@ -534,14 +578,23 @@ public class UserApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("logoutUser", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("logoutUser", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), + null ); + } finally { + // Drain the InputStream + while (localVarResponse.body().read() != -1) { + // Ignore + } + localVarResponse.body().close(); + } } catch (IOException e) { throw new ApiException(e); } @@ -598,14 +651,23 @@ public class UserApi { if (memberVarResponseInterceptor != null) { memberVarResponseInterceptor.accept(localVarResponse); } - if (localVarResponse.statusCode()/ 100 != 2) { - throw getApiException("updateUser", localVarResponse); - } - return new ApiResponse( + try { + if (localVarResponse.statusCode()/ 100 != 2) { + throw getApiException("updateUser", localVarResponse); + } + return new ApiResponse( localVarResponse.statusCode(), localVarResponse.headers().map(), + null ); + } finally { + // Drain the InputStream + while (localVarResponse.body().read() != -1) { + // Ignore + } + localVarResponse.body().close(); + } } catch (IOException e) { throw new ApiException(e); }