[
https://issues.apache.org/jira/browse/MYFACES-4186?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16318492#comment-16318492
]
Bill Lucy commented on MYFACES-4186:
------------------------------------
Patch attached; if there aren't any comments I'll commit this change to 2.0+
> Performance concurrency issue in _ComponentAttributesMap
> --------------------------------------------------------
>
> Key: MYFACES-4186
> URL: https://issues.apache.org/jira/browse/MYFACES-4186
> Project: MyFaces Core
> Issue Type: Bug
> Affects Versions: 2.0.24, 2.1.18, 2.2.12, 2.3.0-beta
> Reporter: Bill Lucy
> Assignee: Bill Lucy
> Attachments: MYFACES-4186.patch
>
>
> We've hit a performance issue with the property descriptor map in
> _ComponentAttributesMap. Driving a heavy load to an application, we can see
> threads spending a lot of time in this area:
> ...
> (entered lock: java/util/Collections$SynchronizedMap@0x000000000000000, entry
> count:1)
> at
> javax/faces/component/_ComponentAttributesMap.getPropertyDescriptor(_ComponentAttributesMap.java:394(Compiled
> Code))
> at
> javax/faces/component/_ComponentAttributesMap.containsKey(_ComponentAttributesMap.java:165(Compiled
> Code))
> at
> javax/faces/component/UIComponent.isCompositeComponent(UIComponent.java:239(Compiled
> Code))
> ...
> In this case, replacing the HashMap used by _propertyDescriptorMap with a
> ConcurrentHashMap gives us much better performance. Since we can use a
> ConcurrentHashMap here, there shouldn't be any performance hit in the normal
> case.
> Related: https://issues.apache.org/jira/browse/MYFACES-3216
--
This message was sent by Atlassian JIRA
(v6.4.14#64029)