From 8cec51fcced938568c8e4150684aed0a1ee01d29 Mon Sep 17 00:00:00 2001 From: William Dutton Date: Mon, 26 May 2025 10:49:18 +1000 Subject: [PATCH 1/2] fix: #21329 Java Native, Provide Null Check before toString on param variables --- .../src/main/resources/Java/libraries/native/api.mustache | 8 ++++++-- 1 file changed, 6 insertions(+), 2 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 a136709bade5..8ad12c430ff2 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 @@ -484,7 +484,9 @@ public class {{classname}} { hasFiles = true; {{/isFile}} {{^isFile}} - multiPartBuilder.addTextBody("{{{baseName}}}", {{paramName}}.get(i).toString()); + if ({{paramName}}.get(i) != null) { + multiPartBuilder.addTextBody("{{{baseName}}}", {{paramName}}.get(i).toString()); + } {{/isFile}} } {{/isArray}} @@ -494,7 +496,9 @@ public class {{classname}} { hasFiles = true; {{/isFile}} {{^isFile}} - multiPartBuilder.addTextBody("{{{baseName}}}", {{paramName}}.toString()); + if ({{paramName}} != null) { + multiPartBuilder.addTextBody("{{{baseName}}}", {{paramName}}.toString()); + } {{/isFile}} {{/isArray}} {{/formParams}} From 0d95e00638ebd26c16b808cf7518925c3f10eb57 Mon Sep 17 00:00:00 2001 From: william dutton Date: Mon, 26 May 2025 13:09:00 +1000 Subject: [PATCH 2/2] #21329 - Samples Generated --- .../main/java/org/openapitools/client/api/FormApi.java | 4 +++- .../src/main/java/org/openapitools/client/api/PetApi.java | 8 ++++++-- .../src/main/java/org/openapitools/client/api/PetApi.java | 4 +++- .../src/main/java/org/openapitools/client/api/PetApi.java | 8 ++++++-- 4 files changed, 18 insertions(+), 6 deletions(-) diff --git a/samples/client/echo_api/java/native/src/main/java/org/openapitools/client/api/FormApi.java b/samples/client/echo_api/java/native/src/main/java/org/openapitools/client/api/FormApi.java index 9c7c2c818c38..75a080e10425 100644 --- a/samples/client/echo_api/java/native/src/main/java/org/openapitools/client/api/FormApi.java +++ b/samples/client/echo_api/java/native/src/main/java/org/openapitools/client/api/FormApi.java @@ -260,7 +260,9 @@ private HttpRequest.Builder testFormObjectMultipartRequestBuilder(@javax.annotat MultipartEntityBuilder multiPartBuilder = MultipartEntityBuilder.create(); boolean hasFiles = false; - multiPartBuilder.addTextBody("marker", marker.toString()); + if (marker != null) { + multiPartBuilder.addTextBody("marker", marker.toString()); + } HttpEntity entity = multiPartBuilder.build(); HttpRequest.BodyPublisher formDataPublisher; if (hasFiles) { diff --git a/samples/client/petstore/java/native-async/src/main/java/org/openapitools/client/api/PetApi.java b/samples/client/petstore/java/native-async/src/main/java/org/openapitools/client/api/PetApi.java index f181fa4064d8..c59728c47838 100644 --- a/samples/client/petstore/java/native-async/src/main/java/org/openapitools/client/api/PetApi.java +++ b/samples/client/petstore/java/native-async/src/main/java/org/openapitools/client/api/PetApi.java @@ -847,7 +847,9 @@ private HttpRequest.Builder uploadFileRequestBuilder(@javax.annotation.Nonnull L MultipartEntityBuilder multiPartBuilder = MultipartEntityBuilder.create(); boolean hasFiles = false; - multiPartBuilder.addTextBody("additionalMetadata", additionalMetadata.toString()); + if (additionalMetadata != null) { + multiPartBuilder.addTextBody("additionalMetadata", additionalMetadata.toString()); + } multiPartBuilder.addBinaryBody("file", _file); hasFiles = true; HttpEntity entity = multiPartBuilder.build(); @@ -983,7 +985,9 @@ private HttpRequest.Builder uploadFileWithRequiredFileRequestBuilder(@javax.anno MultipartEntityBuilder multiPartBuilder = MultipartEntityBuilder.create(); boolean hasFiles = false; - multiPartBuilder.addTextBody("additionalMetadata", additionalMetadata.toString()); + if (additionalMetadata != null) { + multiPartBuilder.addTextBody("additionalMetadata", additionalMetadata.toString()); + } multiPartBuilder.addBinaryBody("requiredFile", requiredFile); hasFiles = true; HttpEntity entity = multiPartBuilder.build(); diff --git a/samples/client/petstore/java/native-jakarta/src/main/java/org/openapitools/client/api/PetApi.java b/samples/client/petstore/java/native-jakarta/src/main/java/org/openapitools/client/api/PetApi.java index 30d5d8831146..b5c99de05cef 100644 --- a/samples/client/petstore/java/native-jakarta/src/main/java/org/openapitools/client/api/PetApi.java +++ b/samples/client/petstore/java/native-jakarta/src/main/java/org/openapitools/client/api/PetApi.java @@ -814,7 +814,9 @@ private HttpRequest.Builder uploadFileRequestBuilder(@jakarta.annotation.Nonnull MultipartEntityBuilder multiPartBuilder = MultipartEntityBuilder.create(); boolean hasFiles = false; - multiPartBuilder.addTextBody("additionalMetadata", additionalMetadata.toString()); + if (additionalMetadata != null) { + multiPartBuilder.addTextBody("additionalMetadata", additionalMetadata.toString()); + } multiPartBuilder.addBinaryBody("file", _file); hasFiles = true; HttpEntity entity = multiPartBuilder.build(); 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 09a44a886f6e..15b800e53e39 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 @@ -794,7 +794,9 @@ private HttpRequest.Builder uploadFileRequestBuilder(@javax.annotation.Nonnull L MultipartEntityBuilder multiPartBuilder = MultipartEntityBuilder.create(); boolean hasFiles = false; - multiPartBuilder.addTextBody("additionalMetadata", additionalMetadata.toString()); + if (additionalMetadata != null) { + multiPartBuilder.addTextBody("additionalMetadata", additionalMetadata.toString()); + } multiPartBuilder.addBinaryBody("file", _file); hasFiles = true; HttpEntity entity = multiPartBuilder.build(); @@ -920,7 +922,9 @@ private HttpRequest.Builder uploadFileWithRequiredFileRequestBuilder(@javax.anno MultipartEntityBuilder multiPartBuilder = MultipartEntityBuilder.create(); boolean hasFiles = false; - multiPartBuilder.addTextBody("additionalMetadata", additionalMetadata.toString()); + if (additionalMetadata != null) { + multiPartBuilder.addTextBody("additionalMetadata", additionalMetadata.toString()); + } multiPartBuilder.addBinaryBody("requiredFile", requiredFile); hasFiles = true; HttpEntity entity = multiPartBuilder.build();