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

Michael Dietrich commented on MYFACES-3442:
-------------------------------------------

Hi Leonardo,

at first let me thank you for you fast response and support.

We also saw that the Unit Tests were failing, when we changed the HashMap to a 
ConcurrentHashMap, due to the null values you try to store, to indiciate, that 
no annotations were found. Synchronizing the complete block is surely a 
solution to the issue, but if this method is called quite often, it might get a 
bottleneck, because many session might be ligned up waiting to enter the 
method. Do you have an idea how often the method is normally called? To get 
around this synchronisation issue, we were thinking to use a Singleton object 
and put this into the Map, to indicate not annotations have been found. This 
surely means more changes, because every check for the null retun value nust be 
changed to check for this Singleton, but in regards to performance it might be 
the better solution.

Kind regards,

Michael
                
> Infinite loop when calling ApplicationImpl._handleListenerForAnnotations 
> under heavy load
> -----------------------------------------------------------------------------------------
>
>                 Key: MYFACES-3442
>                 URL: https://issues.apache.org/jira/browse/MYFACES-3442
>             Project: MyFaces Core
>          Issue Type: Bug
>    Affects Versions: 2.1.3
>            Reporter: Michael Dietrich
>            Assignee: Leonardo Uribe
>             Fix For: 2.0.12, 2.1.6
>
>
> Hi,
> when doing Load Tests, we  recognize that we sometimes got stuck in an 
> infinite loop, when calling the _handleListenerForAnnotations method of the 
> ApplicationImpl class. According to our analysis, this is related to the 
> _classToListenerForMap attribute that is is defined as plain HashMap, so no 
> synchronisation takes place when it is accessed from several threads. Our 
> suggestion would be, to define it as a ConcurrentHashMap instead, because 
> according to our experience, such kind of infinite loops due to concurrency 
> don't occur with ConcurrentHashMaps.
> Kind regards,
> Michael

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to