diff --git a/modules/openapi-generator/src/main/resources/Java/libraries/vertx/ApiClient.mustache b/modules/openapi-generator/src/main/resources/Java/libraries/vertx/ApiClient.mustache index 0b515c04898..170c92666ed 100644 --- a/modules/openapi-generator/src/main/resources/Java/libraries/vertx/ApiClient.mustache +++ b/modules/openapi-generator/src/main/resources/Java/libraries/vertx/ApiClient.mustache @@ -567,20 +567,21 @@ public class ApiClient { if (httpResponse.statusCode() == 204 || returnType == null) { result = Future.succeededFuture(null); } else { - T resultContent; + T resultContent = null; if ("byte[]".equals(returnType.getType().toString())) { resultContent = (T) httpResponse.body().getBytes(); + result = Future.succeededFuture(resultContent); } else if (AsyncFile.class.equals(returnType.getType())) { handleFileDownload(httpResponse, handler); return; } else { try { resultContent = Json.mapper.readValue(httpResponse.bodyAsString(), returnType); + result = Future.succeededFuture(resultContent); } catch (Exception e) { - throw new DecodeException("Failed to decode:" + e.getMessage(), e); + result = ApiException.fail(new DecodeException("Failed to decode:" + e.getMessage(), e)); } } - result = Future.succeededFuture(resultContent); } } else { result = ApiException.fail(httpResponse.statusMessage(), httpResponse.statusCode(), httpResponse.headers(), httpResponse.bodyAsString()); diff --git a/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/ApiClient.java b/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/ApiClient.java index ccc6d7b67a5..74c626c9b4c 100644 --- a/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/ApiClient.java +++ b/samples/client/petstore/java/vertx/src/main/java/org/openapitools/client/ApiClient.java @@ -563,20 +563,21 @@ public class ApiClient { if (httpResponse.statusCode() == 204 || returnType == null) { result = Future.succeededFuture(null); } else { - T resultContent; + T resultContent = null; if ("byte[]".equals(returnType.getType().toString())) { resultContent = (T) httpResponse.body().getBytes(); + result = Future.succeededFuture(resultContent); } else if (AsyncFile.class.equals(returnType.getType())) { handleFileDownload(httpResponse, handler); return; } else { try { resultContent = Json.mapper.readValue(httpResponse.bodyAsString(), returnType); + result = Future.succeededFuture(resultContent); } catch (Exception e) { - throw new DecodeException("Failed to decode:" + e.getMessage(), e); + result = ApiException.fail(new DecodeException("Failed to decode:" + e.getMessage(), e)); } } - result = Future.succeededFuture(resultContent); } } else { result = ApiException.fail(httpResponse.statusMessage(), httpResponse.statusCode(), httpResponse.headers(), httpResponse.bodyAsString());