docs: private List<URL> getResources() throws IOException {
          final ClassLoader cl = getClassLoader();
  
          // ConcurrentHashMap doesn't support null keys, so substitute a pseudo
          // key
          final Object key = cl == null ? NULL_CLASS_LOADER : cl;
  
          // computeIfAbsent requires unchecked exceptions for the creation
          // process, so we
          // cannot easily use it directly, instead using get and putIfAbsent
          List<URL> newValue = cachedResourceList.get(key);
          if (newValue != null) {
              return newValue;
          }
  
          if (cl != null) {
              newValue = Collections
                      .unmodifiableList(Collections.list(cl.getResources(JARCACHE_JSON)));
          } else {
              newValue = Collections.unmodifiableList(
                      Collections.list(ClassLoader.getSystemResources(JARCACHE_JSON)));
          }
  
          final List<URL> oldValue = cachedResourceList.putIfAbsent(key, newValue);
          // We are not synchronising access to the ConcurrentMap, so if there
          // were
          // multiple classpath scans, we always choose the first one
          return oldValue != null ? oldValue : newValue;
      }