You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@sling.apache.org by "Justin Edelson (JIRA)" <ji...@apache.org> on 2018/02/03 00:13:00 UTC

[jira] [Created] (SLING-7470) Memory Leak for "fake" Request objects in ModelAdapterFactory

Justin Edelson created SLING-7470:
-------------------------------------

             Summary: Memory Leak for "fake" Request objects in ModelAdapterFactory
                 Key: SLING-7470
                 URL: https://issues.apache.org/jira/browse/SLING-7470
             Project: Sling
          Issue Type: Bug
          Components: Extensions
    Affects Versions: Sling Models Impl 1.4.6
            Reporter: Justin Edelson
            Assignee: Justin Edelson
             Fix For: Sling Models Impl 1.4.8


The functionality added in SLING-5668 to dispose of OSGi services (or anything else needing disposal when creating a Sling Model object) based on the ServletRequest lifecycle only works if the ServletRequest object was actually created by the ServletContext. In some cases, applications make construct "fake" request object (primarily for use with SlingRequestProcessor). In these cases, since the ServletContext didn't create these requests, it won't call the requestDestroyed method when they are complete.

 

The easiest way to resolve this is to only apply the special behavior in SLING-5668 to request objects actually created by the ServletContext and use the general-purpose ReferenceQueue method for all other requests (and all other adaptables).



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)