Race condition occasionally generates NullPointerException when using memo-ttl

Description

The build-memoizer function assumes that a lookup on the cache will never return nil, but in the case of a TTL cache, there is a small chance of this happening.

The problem occurs when the TTL cache expires between lines 129 and 130 in the build-memoizer function: https://github.com/clojure/core.memoize/blob/21d679df68044b11483ee9720911ff9e4d0ab9fd/src/main/clojure/clojure/core/memoize.clj#L130

This code snippet reproduces the issue:

Environment

None

Assignee

Fogus

Reporter

import

Labels

None

Approval

None

Patch

Code

Priority

Major
Configure