From aa663e6e8135935af0efc47d5cb4a872b0559cb4 Mon Sep 17 00:00:00 2001
From: knecht <knecht@snorc.org>
Date: Fri, 24 Apr 2020 11:01:31 +0200
Subject: [PATCH] add JsoniterSpi.clearCaches

since the cache may contain entries referring to classes whose classloader is disposed, there must be a way to get rid of them
---
 src/main/java/com/jsoniter/spi/JsoniterSpi.java | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/main/java/com/jsoniter/spi/JsoniterSpi.java b/src/main/java/com/jsoniter/spi/JsoniterSpi.java
index 7f505e1a..e68f7d43 100644
--- a/src/main/java/com/jsoniter/spi/JsoniterSpi.java
+++ b/src/main/java/com/jsoniter/spi/JsoniterSpi.java
@@ -291,6 +291,15 @@ private synchronized static void addObjectFactory(Class clazz, Extension extensi
         objectFactories = copy;
     }
 
+    public static synchronized void clearCaches() {
+        mapKeyEncoders = new HashMap<>();
+        mapKeyDecoders = new HashMap<>();
+        encoders = new HashMap<>();
+        decoders = new HashMap<>();
+        objectFactories = new HashMap<>();
+    }
+
+    
     private static class TypeProperty {
 
         public final Type type;