[
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