@Override public void close() { if (iterator instanceof CloseableIterator) { ((CloseableIterator) iterator).close(); } } }
@Override public void close() { this.iterator.close(); } }
@Override public void close() { if (iterator instanceof CloseableIterator) { ((CloseableIterator) iterator).close(); } } }
@Override public void close() { if (iter instanceof CloseableIterator) { ((CloseableIterator) iter).close(); } }
private static void closeIterator(Iterator<?> iter) { if (iter instanceof CloseableIterator) { ((CloseableIterator) iter).close(); } } }
@Override public void close() { currentValue = null; previousValue = null; realIterator.close(); } }
@Override public void close() { iterator.close(); } }
@Override public void close() { it.close(); }
@Override public void close() { entryIterator.close(); }
public void close() { iterator.close(); } public boolean hasNext() {
@Override public Set toSet() { HashSet set = new HashSet(); CloseableIterator it = iterator(); try { while (it.hasNext()) { set.add(it.next()); } } finally { it.close(); } return set; } }
@Override public String toString() { try { if (!it.hasNext()) { return "{}"; } StringBuilder sb = new StringBuilder(); sb.append('{'); for (; ; ) { CacheEntry<K, V> entry = it.next(); sb.append(entry.getKey()).append('=').append(entry.getValue()); if (!it.hasNext()) { return sb.append('}').toString(); } sb.append(',').append(' '); } } finally { it.close(); } }
@Override public String toString() { CloseableIterator<CacheEntry<K, V>> it = entryIterable.iterator(); try { if (!it.hasNext()) { return "[]"; } StringBuilder sb = new StringBuilder(); sb.append('['); for (; ; ) { CacheEntry<K, V> entry = it.next(); sb.append(selector.apply(entry)); if (!it.hasNext()) { return sb.append(']').toString(); } sb.append(',').append(' '); } } finally { it.close(); } }
@Override public Map<K, V> toMap() { Map<K, V> map = new HashMap<K, V>(); try { while (it.hasNext()) { CacheEntry<K, V> entry = it.next(); V value = entry.getValue(); if (value != null) { map.put(entry.getKey(), value); } } return map; } finally { it.close(); } }
/** * Iterates over all the entries provided by the iterator and puts them in a Map. */ private Map<Object, ObjectFilter.FilterResult> mapFromIterator(CloseableIterator<Map.Entry<Object, ObjectFilter.FilterResult>> iterator) { try { Map<Object, ObjectFilter.FilterResult> result = new HashMap<>(); while (iterator.hasNext()) { Map.Entry<Object, ObjectFilter.FilterResult> entry = iterator.next(); result.put(entry.getKey(), entry.getValue()); } return result; } finally { iterator.close(); } } }
private Map<Object, Object> iteratorToMap(CloseableIterator<Entry<Object, Object>> iterator) { Map<Object, Object> entryMap = new HashMap<>(); try { while (iterator.hasNext()) { Entry<Object, Object> next = iterator.next(); entryMap.put(next.getKey(), next.getValue()); } } finally { assertNotNull(iterator); iterator.close(); } return entryMap; }
public static void removeAll(AdvancedCache cache) { CloseableIterator it = cache.keySet().iterator(); try { while (it.hasNext()) { // Cannot use it.next(); it.remove() due to ISPN-5653 cache.remove(it.next()); } } finally { it.close(); } }
/** * Brings all data from the distributed cache into our local cache. */ private void populateLocalCache() { CloseableIterator iterator = cache.keySet().iterator(); try { while (iterator.hasNext()) { get(null, iterator.next()); } } finally { iterator.close(); } }
@Override public WorkerResult loadSessions(KeycloakSession session, RemoteCacheSessionsLoaderContext loaderContext, WorkerContext ctx) { Cache cache = getCache(session); Cache decoratedCache = cache.getAdvancedCache().withFlags(Flag.SKIP_CACHE_LOAD, Flag.SKIP_CACHE_STORE, Flag.IGNORE_RETURN_VALUES); RemoteCache remoteCache = getRemoteCache(session); Set<Integer> myIspnSegments = getMyIspnSegments(ctx.getSegment(), loaderContext); log.debugf("Will do bulk load of sessions from remote cache '%s' . Segment: %d", cache.getName(), ctx.getSegment()); Map<Object, Object> remoteEntries = new HashMap<>(); CloseableIterator<Map.Entry> iterator = null; int countLoaded = 0; try { iterator = remoteCache.retrieveEntries(null, myIspnSegments, loaderContext.getSessionsPerSegment()); while (iterator.hasNext()) { countLoaded++; Map.Entry entry = iterator.next(); remoteEntries.put(entry.getKey(), entry.getValue()); } } catch (RuntimeException e) { log.warnf(e, "Error loading sessions from remote cache '%s' for segment '%d'", remoteCache.getName(), ctx.getSegment()); throw e; } finally { if (iterator != null) { iterator.close(); } } decoratedCache.putAll(remoteEntries); log.debugf("Successfully finished loading sessions from cache '%s' . Segment: %d, Count of sessions loaded: %d", cache.getName(), ctx.getSegment(), countLoaded); return new WorkerResult(true, ctx.getSegment(), ctx.getWorkerId()); }