re:1 - I need an additional collection as  _processedKeys_ contains keys and _entrySet_ contains InternalCacheEntry objects.
re:2 that should guard against the situation when the same key is iterated twice. Shouldn't happen under normal conditions (might happen e.g. if a key is passed to the processor/iterated,  removed and then re-added before the iteration finishes). I removed it.