Solves a NPE when using a distributed cache
https://luceeserver.atlassian.net/browse/LDEV-4328
Reported and identified By Dean over on cfml-slack
Ive managed to replicate this thanks to our good friends at FusionReactor.
Looks to be when an item is removed from the cache while the iterator is looping through the cache items looking for tagged items to remove.
Ive replicated by pausing atkey = (String)it.next();
, removing an item from the cache, then stepping it towhile(filter != null && !filter.accept(entry));
where it throws.
ElastiCache isnt the problem, its doing lots of cache invalidations from a fleet of servers constantly, so it’s just a timing thing where one server is trying to invalidate a set of cache items and another server removes an item it is about to loop through.