remove state pollution of a unit test (#1901)
diff --git a/elasticjob-infra/elasticjob-infra-common/src/main/java/org/apache/shardingsphere/elasticjob/infra/json/GsonFactory.java b/elasticjob-infra/elasticjob-infra-common/src/main/java/org/apache/shardingsphere/elasticjob/infra/json/GsonFactory.java
index 32e117a..8b3a210 100644
--- a/elasticjob-infra/elasticjob-infra-common/src/main/java/org/apache/shardingsphere/elasticjob/infra/json/GsonFactory.java
+++ b/elasticjob-infra/elasticjob-infra-common/src/main/java/org/apache/shardingsphere/elasticjob/infra/json/GsonFactory.java
@@ -31,9 +31,9 @@
@NoArgsConstructor(access = AccessLevel.PRIVATE)
public final class GsonFactory {
- private static final GsonBuilder GSON_BUILDER = new GsonBuilder();
+ private static GsonBuilder gsonBuilder = new GsonBuilder();
- private static volatile Gson gson = GSON_BUILDER.create();
+ private static volatile Gson gson = gsonBuilder.create();
private static final JsonParser JSON_PARSER = new JsonParser();
@@ -44,8 +44,8 @@
* @param typeAdapter Gson type adapter
*/
public static synchronized void registerTypeAdapter(final Type type, final TypeAdapter typeAdapter) {
- GSON_BUILDER.registerTypeAdapter(type, typeAdapter);
- gson = GSON_BUILDER.create();
+ gsonBuilder.registerTypeAdapter(type, typeAdapter);
+ gson = gsonBuilder.create();
}
/**
@@ -65,4 +65,12 @@
public static JsonParser getJsonParser() {
return JSON_PARSER;
}
+
+ /**
+ * Re-initialize the GsonBuilder.
+ */
+ public static synchronized void clean() {
+ gsonBuilder = new GsonBuilder();
+ gson = gsonBuilder.create();
+ }
}
diff --git a/elasticjob-infra/elasticjob-infra-common/src/test/java/org/apache/shardingsphere/elasticjob/infra/json/GsonFactoryTest.java b/elasticjob-infra/elasticjob-infra-common/src/test/java/org/apache/shardingsphere/elasticjob/infra/json/GsonFactoryTest.java
index 0e38d12..bda9695 100644
--- a/elasticjob-infra/elasticjob-infra-common/src/test/java/org/apache/shardingsphere/elasticjob/infra/json/GsonFactoryTest.java
+++ b/elasticjob-infra/elasticjob-infra-common/src/test/java/org/apache/shardingsphere/elasticjob/infra/json/GsonFactoryTest.java
@@ -52,6 +52,7 @@
});
assertThat(beforeRegisterGson.toJson(new GsonFactoryTest()), is("{}"));
assertThat(GsonFactory.getGson().toJson(new GsonFactoryTest()), is("test"));
+ GsonFactory.clean();
}
@Test