.recordStats()
.expireAfterWrite(12, TimeUnit.HOURS) // TODO make configurable. also add maximum # of entries
.removalListener(removalNotification -> {
LOG.trace("Invalidating cached IP WHOIS information for key [{}].", removalNotification.getKey());
})
<BUG>.build(new CacheLoader<String, WhoisIpLookupResult>() {
public WhoisIpLookupResult load(String ip) throws ExecutionException {
</BUG>
LOG.debug("WHOIS IP cache MISS: [{}]", ip);
try {

.recordStats()
.expireAfterWrite(12, TimeUnit.HOURS) // TODO make configurable. also add maximum # of entries
.removalListener(removalNotification -> {
LOG.trace("Invalidating cached IP WHOIS information for key [{}].", removalNotification.getKey());
})
.build(new CacheLoader<String, Map<String, Object>>() {
public Map<String, Object> load(String ip) throws ExecutionException {
LOG.debug("WHOIS IP cache MISS: [{}]", ip);
try {
