GRAILS-11377 implement cache storm prevention (returnExpiredWhileUpdating feature)
GRAILS-11377 use refactored CacheEntry solution in GroovyPagesTemplateRenderer
GRAILS-11377 prepare for implementing Serializable in subclasses of CacheEntry
GRAILS-11377 allow using CacheEntry as superclass for class that never stores a cache value
- CacheEntry will be used only for preventing concurrent retrievals of a single cache key
GRAILS-11377 Refactor CacheEntry to support passing cache request context object that can be used for updating the cached value or checking expiration in custom CacheEntry class
GRAILS-11378 / GRAILS-11377 refactor caching implementation in GroovyPagesTemplateEngine
GRAILS-11296 cleanup metaClass after each in-progress page rendering thread finishes. The metaClass might get re-inserted in the metaclass registry under concurrent access.
GRAILS-11378 fix failing tests, rethrow wrapped runtime exceptions
GRAILS-11377 refactor CacheEntry API slightly
GRAILS-11378 fix problem in test (caching was broken previously?)
Merge branch 'GRAILS-11377'