You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shiro.apache.org by "Tuomas Kiviaho (JIRA)" <ji...@apache.org> on 2012/10/15 11:24:03 UTC

[jira] [Updated] (SHIRO-387) EnvironmentLoader destroys wrong environment

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

Tuomas Kiviaho updated SHIRO-387:
---------------------------------

    Description: 
I've got a singleton EnvironmentLoader that is used to create multiple environments for multiple servlet contexts. Initialization goes all well but destroying is done to the last created environment and not to the one that resides in given servlet context.

A simple fix/workaroud would be to change the destroyEnvironment as
{code}
Object environment = servletContext.getAttribute(ENVIRONMENT_ATTRIBUTE_KEY);
LifecycleUtils.destroy(environment);
{code}

Instance variable reference to last initialized environment should also be removed to allow garbage to be collected after last environment has been destroyed.

  was:
I've got a singleton EnvironmentLoader that is used to create multiple environments for multiple servlet contexts. Initialization goes all well but destroying is done to the last created environment and not to the one that resides in given servlet context.

A simple fix/workaroud would be to change the destroyEnvironment as
{code}
LifecycleUtils.destroy(servletContext.removeAttribute(ENVIRONMENT_ATTRIBUTE_KEY));
{code}

Instance variable reference to last initialized environment should also be removed to allow garbage to be collected after last environment has been destroyed.

    
> EnvironmentLoader destroys wrong environment
> --------------------------------------------
>
>                 Key: SHIRO-387
>                 URL: https://issues.apache.org/jira/browse/SHIRO-387
>             Project: Shiro
>          Issue Type: Bug
>          Components: Web
>    Affects Versions: 1.2.1
>            Reporter: Tuomas Kiviaho
>
> I've got a singleton EnvironmentLoader that is used to create multiple environments for multiple servlet contexts. Initialization goes all well but destroying is done to the last created environment and not to the one that resides in given servlet context.
> A simple fix/workaroud would be to change the destroyEnvironment as
> {code}
> Object environment = servletContext.getAttribute(ENVIRONMENT_ATTRIBUTE_KEY);
> LifecycleUtils.destroy(environment);
> {code}
> Instance variable reference to last initialized environment should also be removed to allow garbage to be collected after last environment has been destroyed.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira