[ http://issues.apache.org/jira/browse/JCR-685?page=comments#action_12460069 ] Jukka Zitting commented on JCR-685: -----------------------------------
> How about this one? -1 as it feels way too complicated, at least for 1.2. I also don't believe that replacing synchronization with a r/w lock is going to help performance that much. The readLock.acquire() call also contains a synchronized critical section that might well take longer to execute than the guarded single hash lookup. I suggest to resolve this issue as currently committed, and to open a separate issue for improving the name resolution performance for Jackrabbit 1.3. > 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 > > Attachments: CachingNamespaceResolver.patch > > > 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