Skip to content

Commit 6e94a51

Browse files
authored
Merge pull request #3371 from semyon-zvyagin/bugfix-JSON-serialize-static-method-NPE
Fix bug: JSON initialization block should be static
2 parents 452fc32 + 61e05b6 commit 6e94a51

File tree

2 files changed

+16
-2
lines changed
  • kubernetes/src

2 files changed

+16
-2
lines changed

kubernetes/src/main/java/io/kubernetes/client/openapi/JSON.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -103,7 +103,7 @@ private static Class getClassByDiscriminator(Map classByDiscriminatorValue, Stri
103103
return clazz;
104104
}
105105

106-
{
106+
static {
107107
GsonBuilder gsonBuilder = createGson();
108108
gsonBuilder.registerTypeAdapter(Date.class, dateTypeAdapter);
109109
gsonBuilder.registerTypeAdapter(java.sql.Date.class, sqlDateTypeAdapter);

kubernetes/src/test/java/io/kubernetes/client/openapi/JSONTest.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,16 +22,26 @@
2222
import com.google.gson.reflect.TypeToken;
2323
import com.google.gson.stream.JsonReader;
2424
import io.kubernetes.client.openapi.models.V1ListMeta;
25+
import io.kubernetes.client.openapi.models.V1ObjectMeta;
2526
import io.kubernetes.client.openapi.models.V1Status;
2627
import okio.ByteString;
28+
import org.junit.jupiter.api.MethodOrderer.OrderAnnotation;
29+
import org.junit.jupiter.api.Order;
2730
import org.junit.jupiter.api.Test;
31+
import org.junit.jupiter.api.TestMethodOrder;
2832

33+
@TestMethodOrder(OrderAnnotation.class)
2934
class JSONTest {
3035

31-
private final JSON json = new JSON();
36+
@Order(0)
37+
@Test
38+
void serializeWithStaticMethod() {
39+
JSON.serialize(new V1ObjectMeta());
40+
}
3241

3342
@Test
3443
void serializeByteArray() {
44+
JSON json = new JSON();
3545
final String plainText = "string that contains '=' when encoded";
3646
final String base64String = json.serialize(plainText.getBytes());
3747
// serialize returns string surrounded by quotes: "\"[base64]\""
@@ -48,6 +58,7 @@ void serializeByteArray() {
4858

4959
@Test
5060
void offsetDateTime1e6Parse() {
61+
JSON json = new JSON();
5162
String timeStr = "\"2018-04-03T11:32:26.123456Z\"";
5263
OffsetDateTime dateTime = json.deserialize(timeStr, OffsetDateTime.class);
5364
String serializedTsStr = json.serialize(dateTime);
@@ -56,6 +67,7 @@ void offsetDateTime1e6Parse() {
5667

5768
@Test
5869
void offsetDateTime1e4Parse() {
70+
JSON json = new JSON();
5971
String timeStr = "\"2018-04-03T11:32:26.1234Z\"";
6072
OffsetDateTime dateTime = json.deserialize(timeStr, OffsetDateTime.class);
6173
String serializedTsStr = json.serialize(dateTime);
@@ -65,6 +77,7 @@ void offsetDateTime1e4Parse() {
6577

6678
@Test
6779
void offsetDateTime1e3Parse() {
80+
JSON json = new JSON();
6881
String timeStr = "\"2018-04-03T11:32:26.123Z\"";
6982
OffsetDateTime dateTime = json.deserialize(timeStr, OffsetDateTime.class);
7083
String serializedTsStr = json.serialize(dateTime);
@@ -74,6 +87,7 @@ void offsetDateTime1e3Parse() {
7487

7588
@Test
7689
void offsetDateTimeNoFractionParse() {
90+
JSON json = new JSON();
7791
String timeStr = "\"2018-04-03T11:32:26Z\"";
7892
OffsetDateTime dateTime = json.deserialize(timeStr, OffsetDateTime.class);
7993
String serializedTsStr = json.serialize(dateTime);

0 commit comments

Comments
 (0)