Skip to content

Commit c2ccc69

Browse files
fix(java): preserve null JSON header semantics
1 parent 1a5fbe0 commit c2ccc69

19 files changed

Lines changed: 58 additions & 0 deletions

File tree

  • modules/openapi-generator/src
  • samples/client
    • echo_api/java
      • okhttp-gson-user-defined-templates/src/main/java/org/openapitools/client
      • okhttp-gson/src/main/java/org/openapitools/client
    • others/java
      • okhttp-gson-oneOf-array/src/main/java/org/openapitools/client
      • okhttp-gson-oneOf/src/main/java/org/openapitools/client
      • okhttp-gson-streaming/src/main/java/org/openapitools/client
    • petstore/java
      • okhttp-gson-3.1-duplicated-operationid/src/main/java/org/openapitools/client
      • okhttp-gson-3.1/src/main/java/org/openapitools/client
      • okhttp-gson-awsv4signature/src/main/java/org/openapitools/client
      • okhttp-gson-dynamicOperations/src/main/java/org/openapitools/client
      • okhttp-gson-group-parameter/src/main/java/org/openapitools/client
      • okhttp-gson-nullable-required/src/main/java/org/openapitools/client
      • okhttp-gson-parcelableModel/src/main/java/org/openapitools/client
      • okhttp-gson-swagger1/src/main/java/org/openapitools/client
      • okhttp-gson-swagger2/src/main/java/org/openapitools/client
      • okhttp-gson/src
    • wildcard-accept-header/java/src/main/java/org/openapitools/client

‎modules/openapi-generator/src/main/resources/Java/libraries/okhttp-gson/ApiClient.mustache‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -919,6 +919,9 @@ public class ApiClient {
919919
* @return JSON representation of the parameter
920920
*/
921921
public String parameterToJsonString(Object param) {
922+
if (param == null) {
923+
return "";
924+
}
922925
String json = JSON.serialize(param);
923926
int firstUnsafe = -1;
924927
for (int i = 0; i < json.length(); i++) {

‎modules/openapi-generator/src/test/java/org/openapitools/codegen/java/JavaClientCodegenTest.java‎

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -632,6 +632,7 @@ public void testDynamicJsonContentHeaderUsesJsonSerialization() {
632632
assertThat(output.resolve("src/main/java/org/openapitools/client/ApiClient.java"))
633633
.content()
634634
.contains("if (param.getContent() != null && param.getContent().containsKey(\"application/json\")) {")
635+
.contains("public String parameterToJsonString(Object param) {\n if (param == null) {\n return \"\";\n }")
635636
.contains("headerParams.put(param.getName(), parameterToJsonString(value));")
636637
.contains("headerParams.put(param.getName(), parameterToString(value));");
637638

‎samples/client/echo_api/java/okhttp-gson-user-defined-templates/src/main/java/org/openapitools/client/ApiClient.java‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -800,6 +800,9 @@ public String parameterToString(Object param) {
800800
* @return JSON representation of the parameter
801801
*/
802802
public String parameterToJsonString(Object param) {
803+
if (param == null) {
804+
return "";
805+
}
803806
String json = JSON.serialize(param);
804807
int firstUnsafe = -1;
805808
for (int i = 0; i < json.length(); i++) {

‎samples/client/echo_api/java/okhttp-gson/src/main/java/org/openapitools/client/ApiClient.java‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -730,6 +730,9 @@ public String parameterToString(Object param) {
730730
* @return JSON representation of the parameter
731731
*/
732732
public String parameterToJsonString(Object param) {
733+
if (param == null) {
734+
return "";
735+
}
733736
String json = JSON.serialize(param);
734737
int firstUnsafe = -1;
735738
for (int i = 0; i < json.length(); i++) {

‎samples/client/others/java/okhttp-gson-oneOf-array/src/main/java/org/openapitools/client/ApiClient.java‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -704,6 +704,9 @@ public String parameterToString(Object param) {
704704
* @return JSON representation of the parameter
705705
*/
706706
public String parameterToJsonString(Object param) {
707+
if (param == null) {
708+
return "";
709+
}
707710
String json = JSON.serialize(param);
708711
int firstUnsafe = -1;
709712
for (int i = 0; i < json.length(); i++) {

‎samples/client/others/java/okhttp-gson-oneOf/src/main/java/org/openapitools/client/ApiClient.java‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -704,6 +704,9 @@ public String parameterToString(Object param) {
704704
* @return JSON representation of the parameter
705705
*/
706706
public String parameterToJsonString(Object param) {
707+
if (param == null) {
708+
return "";
709+
}
707710
String json = JSON.serialize(param);
708711
int firstUnsafe = -1;
709712
for (int i = 0; i < json.length(); i++) {

‎samples/client/others/java/okhttp-gson-streaming/src/main/java/org/openapitools/client/ApiClient.java‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -704,6 +704,9 @@ public String parameterToString(Object param) {
704704
* @return JSON representation of the parameter
705705
*/
706706
public String parameterToJsonString(Object param) {
707+
if (param == null) {
708+
return "";
709+
}
707710
String json = JSON.serialize(param);
708711
int firstUnsafe = -1;
709712
for (int i = 0; i < json.length(); i++) {

‎samples/client/petstore/java/okhttp-gson-3.1-duplicated-operationid/src/main/java/org/openapitools/client/ApiClient.java‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -800,6 +800,9 @@ public String parameterToString(Object param) {
800800
* @return JSON representation of the parameter
801801
*/
802802
public String parameterToJsonString(Object param) {
803+
if (param == null) {
804+
return "";
805+
}
803806
String json = JSON.serialize(param);
804807
int firstUnsafe = -1;
805808
for (int i = 0; i < json.length(); i++) {

‎samples/client/petstore/java/okhttp-gson-3.1/src/main/java/org/openapitools/client/ApiClient.java‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -800,6 +800,9 @@ public String parameterToString(Object param) {
800800
* @return JSON representation of the parameter
801801
*/
802802
public String parameterToJsonString(Object param) {
803+
if (param == null) {
804+
return "";
805+
}
803806
String json = JSON.serialize(param);
804807
int firstUnsafe = -1;
805808
for (int i = 0; i < json.length(); i++) {

‎samples/client/petstore/java/okhttp-gson-awsv4signature/src/main/java/org/openapitools/client/ApiClient.java‎

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -820,6 +820,9 @@ public String parameterToString(Object param) {
820820
* @return JSON representation of the parameter
821821
*/
822822
public String parameterToJsonString(Object param) {
823+
if (param == null) {
824+
return "";
825+
}
823826
String json = JSON.serialize(param);
824827
int firstUnsafe = -1;
825828
for (int i = 0; i < json.length(); i++) {

0 commit comments

Comments
 (0)