File tree Expand file tree Collapse file tree
src/main/java/it/aboutbits/springboot/toolbox Expand file tree Collapse file tree Original file line number Diff line number Diff line change @@ -44,6 +44,10 @@ public Class<T> handledType() {
4444
4545 @ Override
4646 public T deserialize (JsonParser jsonParser , DeserializationContext deserializationContext ) throws IOException {
47+ if (jsonParser .getCurrentToken () == null ) {
48+ return null ;
49+ }
50+
4751 var value = typeConverter .apply (jsonParser );
4852
4953 try {
Original file line number Diff line number Diff line change 66import org .jspecify .annotations .NullMarked ;
77
88import java .lang .annotation .Annotation ;
9+ import java .util .Arrays ;
10+ import java .util .Map ;
911import java .util .Set ;
12+ import java .util .concurrent .ConcurrentHashMap ;
1013import java .util .stream .Collectors ;
1114
1215@ NullMarked
1316public final class ClassScannerUtil {
17+ private static final Map <String , ClassScanner > CACHE = new ConcurrentHashMap <>();
18+
1419 private ClassScannerUtil () {
1520 }
1621
1722 public static ClassScanner getScannerForPackages (String ... packages ) {
18- return new ClassScanner (packages );
23+ var cacheKey = Arrays .stream (packages )
24+ .sorted ()
25+ .collect (Collectors .joining ("|" ));
26+ return CACHE .computeIfAbsent (cacheKey , _ -> new ClassScanner (packages ));
1927 }
2028
21- public static final class ClassScanner implements AutoCloseable {
29+ public static final class ClassScanner {
2230 private final ScanResult scanResult ;
2331 private final String [] packages ;
2432
@@ -51,10 +59,5 @@ public Set<Class<?>> getClassesAnnotatedWith(Class<? extends Annotation> clazz)
5159 ClassInfo ::loadClass
5260 ).collect (Collectors .toSet ());
5361 }
54-
55- @ Override
56- public void close () {
57- scanResult .close ();
58- }
5962 }
6063}
You can’t perform that action at this time.
0 commit comments