[ http://issues.apache.org/jira/browse/JCR-685?page=comments#action_12459931 ] Stefan Guggisberg commented on JCR-685: ---------------------------------------
the following methods are synchronized on the CachingNamespaceResolver instance: QName retrieveName(String jcrName) String retrieveName(QName name) this potentially leads to monitor contention since those methods are indirectly called by a lot of jcr api methods (such as Node.getProperty() etc). a possible solution would be to replace the internal LRUMap's with something that's optimized for concurrent read access (e.g. an LRUMap implementation that is based on doug lea's ConcurrentReaderHashMap). > Remove some synchronization on CachingNamespaceResolver > ------------------------------------------------------- > > Key: JCR-685 > URL: http://issues.apache.org/jira/browse/JCR-685 > Project: Jackrabbit > Issue Type: Improvement > Components: core > Affects Versions: 1.1, 1.1.1 > Reporter: Marcel Reutegger > Priority: Minor > Fix For: 1.2 > > > The methods getQName() and getJCRName() are unnecessarily synchronized and > cause monitor contention with concurrent calls to the methods of the > NameCache interface (those are also synchronized). > I propose the following change: > Index: CachingNamespaceResolver.java > =================================================================== > --- CachingNamespaceResolver.java (revision 488245) > +++ CachingNamespaceResolver.java (working copy) > @@ -84,7 +84,7 @@ > /** > * @deprecated use [EMAIL PROTECTED] NameFormat#parse(String, > NamespaceResolver)} > */ > - public synchronized QName getQName(String name) > + public QName getQName(String name) > throws IllegalNameException, UnknownPrefixException { > return NameFormat.parse(name, this); > } > @@ -92,7 +92,7 @@ > /** > * @deprecated use [EMAIL PROTECTED] NameFormat#format(QName, > NamespaceResolver)} > */ > - public synchronized String getJCRName(QName name) > + public String getJCRName(QName name) > throws NoPrefixDeclaredException { > return NameFormat.format(name, this); > } -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://issues.apache.org/jira/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
