You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@shiro.apache.org by "Kalle Korhonen (JIRA)" <ji...@apache.org> on 2009/10/26 18:18:59 UTC

[jira] Commented: (SHIRO-96) Add meaningful integration tests to assert key web functionality

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