in commons-jcs3-jcache/src/main/java/org/apache/commons/jcs3/jcache/JCSCache.java [277:315]
public Map<K, V> getAll(final Set<? extends K> keys)
{
assertNotClosed();
for (final K k : keys)
{
assertNotNull(k, "key");
}
final long now = Times.now(false);
final Map<K, V> result = new HashMap<>();
for (final K key : keys) {
assertNotNull(key, "key");
final ICacheElement<K, V> elt = delegate.get(key);
V val = elt != null ? elt.getVal() : null;
if (val == null && config.isReadThrough())
{
val = doLoad(key, false, now, false);
if (val != null)
{
result.put(key, val);
}
}
else if (elt != null)
{
final Duration expiryForAccess = expiryPolicy.getExpiryForAccess();
if (isNotZero(expiryForAccess))
{
touch(key, elt);
result.put(key, val);
}
else
{
forceExpires(key);
}
}
}
return result;
}