@Override
    public void init(ServletConfig config) throws ServletException {
        super.init(config);
        // Create a pool of HTTP connections to use to get the favicons
        client = HttpClientBuilder.create()
            .setConnectionManager(new PoolingHttpClientConnectionManager())
            .setRedirectStrategy(new LaxRedirectStrategy())
            .build();
        // Load the default favicon to use when no favicon was found of a remote host
        try {
            defaultBytes = Files.readAllBytes(JiveGlobals.getHomePath().resolve("plugins").resolve("admin").resolve("webapp").resolve("images").resolve("server_16x16.gif"));
        }
        catch (final IOException e) {
            LOGGER.warn("Unable to retrieve default favicon", e);
        }
        // Initialize caches.
        missesCache = CacheFactory.createCache("Favicon Misses");
        hitsCache = CacheFactory.createCache("Favicon Hits");
    }
Cache the favicons that we've found.
xmppserver/src/main/java/org/jivesoftware/util/FaviconServlet.java