s_logger.debug("No lookup information for {}", dataField);
}
}
if (identifierBundle == null) {
if (knownPresent || verifyInDatabase(dataSource, dataProvider, dataField)) {
return new HistoricalTimeSeriesResolutionResult(null);
} else {
return null;
}
}
HistoricalTimeSeriesResolutionResult resolveResult;
for (ExternalId id : identifierBundle) {
String key = id.toString() + SEPARATOR +
dataField + SEPARATOR +
(dataSource != null ? dataSource : "") + SEPARATOR +
(dataProvider != null ? dataProvider : "") + SEPARATOR +
resolutionKey;
e = _cache.get(key);
HistoricalTimeSeriesResolutionCacheItem cacheItem = e != null ? (HistoricalTimeSeriesResolutionCacheItem) e.getObjectValue() : null;
if (cacheItem != null) {
boolean isInvalid = cacheItem.isInvalid(identifierValidityDate);
resolveResult = !isInvalid ? cacheItem.get(identifierValidityDate) : null;
if (isInvalid || resolveResult != null) {
if (isAutomaticFieldResolutionOptimisation()) {
if (isOptimisticFieldResolution()) {
if (resolveResult != null) {
_optimisticFieldMetric1.incrementAndGet();
} else {
_optimisticFieldMetric1.decrementAndGet();
}
}
updateAutoFieldResolutionOptimisation();
}
return resolveResult;
}
}
}
if (!knownPresent) {
if (!verifyInDatabase(dataSource, dataProvider, dataField)) {
return null;
}
}
resolveResult = _underlying.resolve(identifierBundle, identifierValidityDate, dataSource, dataProvider, dataField, resolutionKey);
if (resolveResult != null) {
ManageableHistoricalTimeSeriesInfo info = resolveResult.getHistoricalTimeSeriesInfo();
for (ExternalIdWithDates id : info.getExternalIdBundle()) {
if (id.isValidOn(identifierValidityDate)) {
String key = id.getExternalId().toString() + SEPARATOR +
dataField + SEPARATOR +
info.getDataSource() + SEPARATOR +