From aa663e6e8135935af0efc47d5cb4a872b0559cb4 Mon Sep 17 00:00:00 2001 From: knecht 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;