[ 
https://issues.apache.org/jira/browse/SHIRO-159?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12867367#action_12867367
 ] 

Les Hazlewood commented on SHIRO-159:
-------------------------------------

I just committed a minor change to the AbstractShiroFilter.doFilterInternal 
method.  The ThreadBinding now occurs inside the try/catch block (it existed 
just outside of it previously).

This guarantees that the ThreadContext will be cleared for every request thread 
that executes the filter.

The only other way that this could be happening that I know of is if 
SecurityUtils.getSubject() is being called outside of a request thread.  The 
getSubject() call was changed recently to bind an automatically created Subject 
to the ThreadContext.  This is the only other thing I can think of that would 
bind to a thread.  If it is not getSubject(), it must be user initiated.

> ThreadLocal is not cleared upon the unloading of the webapp and the SHiro 
> Servlet
> ---------------------------------------------------------------------------------
>
>                 Key: SHIRO-159
>                 URL: https://issues.apache.org/jira/browse/SHIRO-159
>             Project: Shiro
>          Issue Type: Bug
>          Components: Integration: JEE
>    Affects Versions: 1.0.0
>         Environment:  Model Name:     MacBook Pro
>   Model Identifier:   MacBookPro5,1
>   Processor Name:     Intel Core 2 Duo
>   Processor Speed:    2.8 GHz
>   Number Of Processors:       1
>   Total Number Of Cores:      2
>   L2 Cache:   6 MB
>   Memory:     4 GB
>   Bus Speed:  1.07 GHz
>  System Version:      Mac OS X 10.6.3 (10D573)
>   Kernel Version:     Darwin 10.3.0
>  
>            Reporter: david e. berry
>             Fix For: 1.0.0
>
>
> Tomcat 6.0.26 reports a severe error when unloading a web app that uses 
> org.apache.shiro.web.servlet.IniShiroFilter
> SEVERE: A web application created a ThreadLocal with key of type [null] 
> (value [org.apache.shiro.util.threadcontex...@c0c66a]) and a value of type 
> [java.util.HashMap] (value [{}]) but failed to remove it when the web 
> application was stopped. To prevent a memory leak, the ThreadLocal has been 
> forcibly removed.
> May 13, 2010 9:29:51 PM org.apache.catalina.loader.WebappClassLoader 
> clearThreadLocalMap

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to