[ http://issues.apache.org/jira/browse/XALANJ-2321?page=comments#action_12442958 ] Brian Minchau commented on XALANJ-2321: ---------------------------------------
Per the JIRA triage meeting on Oct 16, 2005, Yash T. agreed to review the patch. > Multi-threading problem with AVTs > --------------------------------- > > Key: XALANJ-2321 > URL: http://issues.apache.org/jira/browse/XALANJ-2321 > Project: XalanJ2 > Issue Type: Bug > Components: Xalan > Environment: multi-processor systems > Reporter: Erin Harris > Attachments: AVT.patch > > > The following code in AVT.java is causing problems for multi-threaded test > cases: > private final FastStringBuffer getBuffer(){ > if(USE_OBJECT_POOL){ > return StringBufferPool.get(); > }else if(m_cachedBuf == null){ > m_cachedBuf = new FastStringBuffer(INIT_BUFFER_CHUNK_BITS); > return m_cachedBuf; > }else if(m_cachedBuf.length() != 0){ > return new FastStringBuffer(INIT_BUFFER_CHUNK_BITS); > }else{ > return m_cachedBuf; > } > } > Because the same object node for the AVT is used by each thread, sometimes on > one thread the buffer would be empty just as another thread is writing to it > and thus both threads would write to the same buffer. This caused problems > for a customer that used <xsl:element name="{local-name()}"> a lot and were > running on a multi-processor machine. > The suggested fix is to change the code to the following, and remove the > m_cachedBuf field: > private final FastStringBuffer getBuffer(){ > if(USE_OBJECT_POOL){ > return StringBufferPool.get(); > }else{ > return new FastStringBuffer(INIT_BUFFER_CHUNK_BITS); > } > } -- 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 --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
