[
https://issues.apache.org/jira/browse/XALANJ-2321?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#action_12465450
]
Rony Zoghby commented on XALANJ-2321:
-------------------------------------
Hi,
Back in the stream!
We are still facing this issue and i was glad to see that it has been fixed.
We will try the patch and give you our feedback.
Thank you all !
> Multi-threading problem with AVTs
> ---------------------------------
>
> Key: XALANJ-2321
> URL: https://issues.apache.org/jira/browse/XALANJ-2321
> Project: XalanJ2
> Issue Type: Bug
> Components: Xalan
> Environment: multi-processor systems
> Reporter: Erin Harris
> Fix For: 2.7.1
>
> 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:
https://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]