You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by "Oleksandr Kuzmenko (JIRA)" <ji...@apache.org> on 2015/12/19 17:45:46 UTC

[jira] [Updated] (JCR-3940) Memory leak when calling RepositoryService.obtain with null workspaceName

     [ https://issues.apache.org/jira/browse/JCR-3940?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Oleksandr Kuzmenko updated JCR-3940:
------------------------------------
    Attachment: JCR-3940.patch.txt

> Memory leak when calling RepositoryService.obtain with null workspaceName
> -------------------------------------------------------------------------
>
>                 Key: JCR-3940
>                 URL: https://issues.apache.org/jira/browse/JCR-3940
>             Project: Jackrabbit Content Repository
>          Issue Type: Bug
>          Components: jackrabbit-spi2dav
>    Affects Versions: 2.10.1, 2.11.3
>            Reporter: Oleksandr Kuzmenko
>            Priority: Trivial
>              Labels: easyfix, patch
>         Attachments: JCR-3940.patch.txt
>
>   Original Estimate: 0.5h
>  Remaining Estimate: 0.5h
>
> The bug is located in method *org.apache.jackrabbit.spi2dav.RepositoryServiceImpl.obtain(CredentialsWrapper credentials, String workspaceName)*
> When passing null to *workspaceName* parameter that's what happens:
> # an instance of org.apache.jackrabbit.spi2dav.SessionInfoImpl created with null workspace name (line 770)
> # HttpClient created for this sessionInfo and stored to cache with sessionInfo as a key (line 779)
> # a new sessionInfo created with effective workspace name (line 793)
> # sessionInfo with effective workspace name returned to caller
> The problem is that HttpClient created on step 2 will not be removed from cache on call to *org.apache.jackrabbit.spi2dav.RepositoryServiceImpl.dispose(SessionInfo)* because it is linked to sessionInfo created on step 1 which is thrown away on step 3.
> The proposed solution is pretty easy - just call *removeClient(SessionInfo)* before creating new sessionInfo on step 3.
> See attached patch.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)