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

Kalle Korhonen commented on SHIRO-96:
-------------------------------------

Ok, this is still preliminary but I think I was able to track it down and 
explain why the issue was so elusive. The problem (if I understand things 
correctly) is that we are not putting the value in strongReferences in 
SoftHashMap.put(). Normally, get() for the same key is called soon after during 
the Shiro initialization, but if garbage collection kicks in in between the 
entries are forever lost. If you add a call to addToStrongReferences(value); on 
line 252 right after putting it to the soft reference map then I could not make 
the test fail anymore. Les or anybody else interested, could you review whether 
this is the right solution? I can then put it in place and re-enable & clean up 
the tests.


> Add meaningful integration tests to assert key web functionality
> ----------------------------------------------------------------
>
>                 Key: SHIRO-96
>                 URL: https://issues.apache.org/jira/browse/SHIRO-96
>             Project: Shiro
>          Issue Type: Test
>          Components: Authentication (log-in)
>    Affects Versions: 1.0
>         Environment: any
>            Reporter: Kalle Korhonen
>             Fix For: 1.0
>
>         Attachments: integration-tests.patch
>
>
> Related to SHIRO-93 (but you closed it already - could have re-opened as 
> well). Assert login/logout and remember me functionality. Also updating 
> htmlunit to newly released 2.6. Note that tests revealed an interesting 
> thread-safety issue: sometimes 
> getAuthorizationCache().get(upToken.getUsername()); on line 141 of 
> SimpleAccountRealm returned null, causing the authentication to fail. It 
> happened much frequently when I was running the test via Eclipse, but 
> couldn't get it to run when running via Maven. I took an initial look at the 
> CacheManager and didn't follow through completely, but it looked like that a 
> map initialization somewhere may not have been synchronized. Note that these 
> tests run considerably faster than if a human was using a browser but 
> otherwise they don't semantically do anything else different. A patch to 
> follow.

-- 
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