Henrik Nordvik created ABDERA-401:
-------------------------------------
Summary: ExtensionFactoryMap is slow for concurrent access
Key: ABDERA-401
URL: https://issues.apache.org/jira/browse/ABDERA-401
Project: Abdera
Issue Type: Bug
Affects Versions: 1.1.2
Reporter: Henrik Nordvik
During profiling we found ExtensionFactoryMap to be a bottleneck. Most threads
were blocked here:
{code}
java.lang.Thread.State: BLOCKED (on object monitor)
at
org.apache.abdera.factory.ExtensionFactoryMap.getElementWrapper(ExtensionFactoryMap.java:46)
- waiting to lock <0x0000000780cf2840> (a
java.util.Collections$SynchronizedRandomAccessList)
at
org.apache.abdera.parser.stax.FOMFactory.getElementWrapper(FOMFactory.java:827)
at
org.apache.abdera.parser.stax.FOMDocument.getRoot(FOMDocument.java:106)
at org.apache.abdera.parser.stax.FOMElement._parse(FOMElement.java:590)
at
org.apache.abdera.parser.stax.FOMContent.setValue(FOMContent.java:299)
at org.apache.abdera.parser.stax.FOMEntry.setContent(FOMEntry.java:224)
{code}
This class should be rewritten to not use synchronized, but e.g. use an
immutable list, and copy and swap it when you add new elements.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)