LinkedList<ErrorService> currentErrorHandlers = null;
ImmediateResults immediate = null;
if (!useCache) {
final Filter filter = new UnqualifiedIndexedFilter(name, null, unqualified);
rLock.lock();
try {
List<SystemDescriptor<?>> candidates = getDescriptors(filter, null, true, false, true);
immediate = narrow(this,
candidates,
contractOrImpl,
null,
null,
false,
true,
null,
filter,
qualifiers);
results = immediate.getTimelessResults();
if (!results.getErrors().isEmpty()) {
currentErrorHandlers = new LinkedList<ErrorService>(errorHandlers);
}
} finally {
rLock.unlock();
}
} else { // USE CACHE!
final CacheKey cacheKey = new CacheKey(contractOrImpl, null, qualifiers);
final Filter filter = BuilderHelper.createContractFilter(name);
final IgdCacheKey igdCacheKey = new IgdCacheKey(cacheKey, name, null, contractOrImpl, rawClass, qualifiers, filter);
rLock.lock();
try {
final HybridCacheEntry<IgdValue> entry = igashCache.compute(igdCacheKey);