[ 
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

Reply via email to