@SuppressWarnings({ "rawtypes", "unchecked" }) @Override public void returnIndexReaders(List<ZoieMultiReader<R>> readers) { if (readers != null) { Map<Zoie<R, D>, List<ZoieMultiReader<R>>> destMap = new HashMap<Zoie<R, D>, List<ZoieMultiReader<R>>>(); for (ZoieMultiReader<R> r : readers) { Zoie zoie = _zoieTwo; synchronized (_activeReaders) { ZoieRef zoieRef = _activeReaders.get(r); if (zoieRef != null) { zoie = zoieRef.zoie; --zoieRef.refCount; if (zoieRef.refCount <= 0) _activeReaders.remove(r); } } List<ZoieMultiReader<R>> readerList = destMap.get(zoie); if (readerList == null) { readerList = new ArrayList<ZoieMultiReader<R>>(); destMap.put(zoie, readerList); } readerList.add(r); } for (Map.Entry<Zoie<R, D>, List<ZoieMultiReader<R>>> entry : destMap.entrySet()) { entry.getKey().returnIndexReaders(entry.getValue()); } } }
@SuppressWarnings({ "rawtypes", "unchecked" }) @Override public void returnIndexReaders(List<ZoieMultiReader<R>> readers) { if (readers != null) { Map<Zoie<R, D>, List<ZoieMultiReader<R>>> destMap = new HashMap<Zoie<R, D>, List<ZoieMultiReader<R>>>(); for (ZoieMultiReader<R> r : readers) { Zoie zoie = _zoieTwo; synchronized (_activeReaders) { ZoieRef zoieRef = _activeReaders.get(r); if (zoieRef != null) { zoie = zoieRef.zoie; --zoieRef.refCount; if (zoieRef.refCount <= 0) _activeReaders.remove(r); } } List<ZoieMultiReader<R>> readerList = destMap.get(zoie); if (readerList == null) { readerList = new ArrayList<ZoieMultiReader<R>>(); destMap.put(zoie, readerList); } readerList.add(r); } for (Map.Entry<Zoie<R, D>, List<ZoieMultiReader<R>>> entry : destMap.entrySet()) { entry.getKey().returnIndexReaders(entry.getValue()); } } }
entry.getKey().returnIndexReaders(entry.getValue());
} finally zoie.returnIndexReaders(readers);
return null; } finally { zoie.returnIndexReaders(readers);
} finally zoie.returnIndexReaders(readers);