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

Ariel Isaac commented on SHIRO-519:
-----------------------------------

Hey! i tried your solution and it worked for me.
Thanks!

> ThreadContext.setResources() doesn't handle empty maps correctly
> ----------------------------------------------------------------
>
>                 Key: SHIRO-519
>                 URL: https://issues.apache.org/jira/browse/SHIRO-519
>             Project: Shiro
>          Issue Type: Bug
>          Components: Session Management
>    Affects Versions: 1.2.2, 1.2.3
>            Reporter: Vesa Jääskeläinen
>            Priority: Minor
>
> ThreadLocal.setResources() doesn't handle the case where resources is want to 
> be cleared.
> This could be used in situation when session is switched temporary to another 
> thread. 
> One could do:
> old = ThreadContext.getResources();
> ThreadContext.setResources(new);
> // do the magic
> ThreadContext.setResources(old);
> If the old resources was empty it will leave new resources in place.
> Fix would be trivial:
> {code}
>     public static void setResources(Map<Object, Object> newResources) {
>         if (CollectionUtils.isEmpty(newResources)) {
>             return;
>         }
>         resources.get().clear();
>         resources.get().putAll(newResources);
>     }
> {code}
> ->
> {code}
>     public static void setResources(Map<Object, Object> newResources) {
>         resources.get().clear();
>         if (CollectionUtils.isEmpty(newResources)) {
>             return;
>         }
>         resources.get().putAll(newResources);
>     }
> {code}



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

Reply via email to