Dirk Rudolph created SLING-11133:
------------------------------------

             Summary: Cache model for its implementation type
                 Key: SLING-11133
                 URL: https://issues.apache.org/jira/browse/SLING-11133
             Project: Sling
          Issue Type: Improvement
          Components: Sling Models
            Reporter: Dirk Rudolph
             Fix For: Models Implementation 1.5.2


Currently the ModelAdapterFactory caches a cacheable model for the requested 
type only

https://github.com/apache/sling-org-apache-sling-models-impl/blob/master/src/main/java/org/apache/sling/models/impl/ModelAdapterFactory.java#L430-L432

{code}
if (result.wasSuccessful() && modelAnnotation.cache() && adaptableCache != 
null) {
  adaptableCache.put(requestedType, new 
SoftReference<Object>(result.getValue()));
}
{code}

However, if a model is an adapter of multiple types an instance of it can also 
be returned for more than just the requested type. 

While it is not save to cache the model for all of its adapter types (see 
SLING-11074), it is certainly save to cache the model for its implementation 
type additionally to the requested type. 



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to