Skip to content

Commit 26d186e

Browse files
wing328chetan26
andauthored
[java] fix CustomTypeAdapterFactory NPE-style crash on null additionalProperties value (#24573)
* issue-24393 handle null additionalProperties * remove unused imports * update java samples --------- Co-authored-by: Chetan Urkudkar <chetan.dec26@gmail.com>
1 parent 0ef5eb0 commit 26d186e

248 files changed

Lines changed: 677 additions & 143 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

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

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import com.google.gson.JsonDeserializationContext;
55
import com.google.gson.JsonDeserializer;
66
import com.google.gson.JsonElement;
77
import com.google.gson.JsonObject;
8+
import com.google.gson.JsonNull;
89
import com.google.gson.JsonParseException;
910
import com.google.gson.TypeAdapterFactory;
1011
import com.google.gson.reflect.TypeToken;
@@ -540,7 +541,9 @@ public class {{classname}} {{#parent}}extends {{{.}}} {{/parent}}{{#vendorExtens
540541
obj.addProperty(entry.getKey(), (Character) entry.getValue());
541542
else {
542543
JsonElement jsonElement = gson.toJsonTree(entry.getValue());
543-
if (jsonElement.isJsonArray()) {
544+
if (jsonElement.isJsonNull()) {
545+
obj.add(entry.getKey(), JsonNull.INSTANCE);
546+
} else if (jsonElement.isJsonArray()) {
544547
obj.add(entry.getKey(), jsonElement.getAsJsonArray());
545548
} else {
546549
obj.add(entry.getKey(), jsonElement.getAsJsonObject());

samples/client/echo_api/java/okhttp-gson-user-defined-templates/modelCopy/Category.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.google.gson.JsonDeserializer;
66
import com.google.gson.JsonElement;
77
import com.google.gson.JsonObject;
8+
import com.google.gson.JsonNull;
89
import com.google.gson.JsonParseException;
910
import com.google.gson.TypeAdapterFactory;
1011
import com.google.gson.reflect.TypeToken;

samples/client/echo_api/java/okhttp-gson-user-defined-templates/modelCopy/ModelApiResponse.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.google.gson.JsonDeserializer;
66
import com.google.gson.JsonElement;
77
import com.google.gson.JsonObject;
8+
import com.google.gson.JsonNull;
89
import com.google.gson.JsonParseException;
910
import com.google.gson.TypeAdapterFactory;
1011
import com.google.gson.reflect.TypeToken;

samples/client/echo_api/java/okhttp-gson-user-defined-templates/modelCopy/Order.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.google.gson.JsonDeserializer;
66
import com.google.gson.JsonElement;
77
import com.google.gson.JsonObject;
8+
import com.google.gson.JsonNull;
89
import com.google.gson.JsonParseException;
910
import com.google.gson.TypeAdapterFactory;
1011
import com.google.gson.reflect.TypeToken;

samples/client/echo_api/java/okhttp-gson-user-defined-templates/modelCopy/Pet.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.google.gson.JsonDeserializer;
66
import com.google.gson.JsonElement;
77
import com.google.gson.JsonObject;
8+
import com.google.gson.JsonNull;
89
import com.google.gson.JsonParseException;
910
import com.google.gson.TypeAdapterFactory;
1011
import com.google.gson.reflect.TypeToken;

samples/client/echo_api/java/okhttp-gson-user-defined-templates/modelCopy/Tag.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.google.gson.JsonDeserializer;
66
import com.google.gson.JsonElement;
77
import com.google.gson.JsonObject;
8+
import com.google.gson.JsonNull;
89
import com.google.gson.JsonParseException;
910
import com.google.gson.TypeAdapterFactory;
1011
import com.google.gson.reflect.TypeToken;

samples/client/echo_api/java/okhttp-gson-user-defined-templates/modelCopy/User.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@
55
import com.google.gson.JsonDeserializer;
66
import com.google.gson.JsonElement;
77
import com.google.gson.JsonObject;
8+
import com.google.gson.JsonNull;
89
import com.google.gson.JsonParseException;
910
import com.google.gson.TypeAdapterFactory;
1011
import com.google.gson.reflect.TypeToken;

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import com.google.gson.JsonDeserializer;
3030
import com.google.gson.JsonElement;
3131
import com.google.gson.JsonObject;
32+
import com.google.gson.JsonNull;
3233
import com.google.gson.JsonParseException;
3334
import com.google.gson.TypeAdapterFactory;
3435
import com.google.gson.reflect.TypeToken;

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -29,6 +29,7 @@
2929
import com.google.gson.JsonDeserializer;
3030
import com.google.gson.JsonElement;
3131
import com.google.gson.JsonObject;
32+
import com.google.gson.JsonNull;
3233
import com.google.gson.JsonParseException;
3334
import com.google.gson.TypeAdapterFactory;
3435
import com.google.gson.reflect.TypeToken;

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,7 @@
3030
import com.google.gson.JsonDeserializer;
3131
import com.google.gson.JsonElement;
3232
import com.google.gson.JsonObject;
33+
import com.google.gson.JsonNull;
3334
import com.google.gson.JsonParseException;
3435
import com.google.gson.TypeAdapterFactory;
3536
import com.google.gson.reflect.TypeToken;

0 commit comments

Comments
 (0)