[jira] [Commented] (COCOON-2340) XMLByteStreamCompiler in not thread-safe

2013-11-28 Thread JIRA

[ 
https://issues.apache.org/jira/browse/COCOON-2340?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13834586#comment-13834586
 ] 

Francesco Chicchiriccò commented on COCOON-2340:


Hi,
I am not very familiar with 2.2, but if you can provide a patch, I can apply it 
to [trunk|http://svn.apache.org/repos/asf/cocoon/trunk/] and re-deploy the 
SNAPSHOT Maven artifacts containing your fix.


 XMLByteStreamCompiler in not thread-safe
 

 Key: COCOON-2340
 URL: https://issues.apache.org/jira/browse/COCOON-2340
 Project: Cocoon
  Issue Type: Bug
  Components: * Cocoon Core
Affects Versions: 2.2
Reporter: Ivan Lagunov

 I'm periodically getting the following exceptions in different places:
 Caused by: java.lang.ArrayIndexOutOfBoundsException
 at java.lang.System.arraycopy(Native Method)
 at 
 org.apache.cocoon.components.sax.XMLByteStreamCompiler.getSAXFragment(XMLByteStreamCompiler.java:61)
 at 
 org.apache.cocoon.components.pipeline.impl.ExpiresCachingProcessingPipeline.processXMLPipeline(ExpiresCachingProcessingPipeline.java:152)
 After debugging I've found the root cause. It happens due to multi-threading 
 when one thread allocates newbuf array, then another thread increments 
 bufCount in write method and then the first thread fails on System.arraycopy 
 invocation.
 I suggest making getSAXFragment and write methods synchronized. It should 
 resolve the issue. If it helps, I'll provide a patch later.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (COCOON-2340) XMLByteStreamCompiler in not thread-safe

2013-11-28 Thread Javier Puerto (JIRA)

[ 
https://issues.apache.org/jira/browse/COCOON-2340?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13834654#comment-13834654
 ] 

Javier Puerto commented on COCOON-2340:
---

Hi,

I've more familiar with the 2.2 version. I've experienced issues like you 
described and it was by the following reasons, now works like a charm :). So, 
could you check the following?

* The components in the pipeline was declared as singleton instead of 
prototype. Some components are not thread safe, use prototype scope to avoid 
this problem.
* The version 2.2 is using an older version of Apache Xalan. Upgrade to 2.2.1 
or upgrade Xalan to latest, see COCOON-2156.

Anyway, could you provide an example to reproduce the problem if it persists?

Salu2.

 XMLByteStreamCompiler in not thread-safe
 

 Key: COCOON-2340
 URL: https://issues.apache.org/jira/browse/COCOON-2340
 Project: Cocoon
  Issue Type: Bug
  Components: * Cocoon Core
Affects Versions: 2.2
Reporter: Ivan Lagunov

 I'm periodically getting the following exceptions in different places:
 Caused by: java.lang.ArrayIndexOutOfBoundsException
 at java.lang.System.arraycopy(Native Method)
 at 
 org.apache.cocoon.components.sax.XMLByteStreamCompiler.getSAXFragment(XMLByteStreamCompiler.java:61)
 at 
 org.apache.cocoon.components.pipeline.impl.ExpiresCachingProcessingPipeline.processXMLPipeline(ExpiresCachingProcessingPipeline.java:152)
 After debugging I've found the root cause. It happens due to multi-threading 
 when one thread allocates newbuf array, then another thread increments 
 bufCount in write method and then the first thread fails on System.arraycopy 
 invocation.
 I suggest making getSAXFragment and write methods synchronized. It should 
 resolve the issue. If it helps, I'll provide a patch later.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (COCOON-2340) XMLByteStreamCompiler in not thread-safe

2013-11-28 Thread Ivan Lagunov (JIRA)

[ 
https://issues.apache.org/jira/browse/COCOON-2340?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13834764#comment-13834764
 ] 

Ivan Lagunov commented on COCOON-2340:
--

Hi Javier,

I would like to try Cocoon 2.2.1 first but could you say where it's located? I 
suppose it must be under trunk here 
http://svn.apache.org/repos/asf/cocoon/trunk/ ? Is it stable enough for 
Production usage? I mean it's written here that SNAPSHOTS are not tested and 
not guaranteed to even build cleanly: https://cocoon.apache.org/mirror.cgi

Ivan

 XMLByteStreamCompiler in not thread-safe
 

 Key: COCOON-2340
 URL: https://issues.apache.org/jira/browse/COCOON-2340
 Project: Cocoon
  Issue Type: Bug
  Components: * Cocoon Core
Affects Versions: 2.2
Reporter: Ivan Lagunov

 I'm periodically getting the following exceptions in different places:
 Caused by: java.lang.ArrayIndexOutOfBoundsException
 at java.lang.System.arraycopy(Native Method)
 at 
 org.apache.cocoon.components.sax.XMLByteStreamCompiler.getSAXFragment(XMLByteStreamCompiler.java:61)
 at 
 org.apache.cocoon.components.pipeline.impl.ExpiresCachingProcessingPipeline.processXMLPipeline(ExpiresCachingProcessingPipeline.java:152)
 After debugging I've found the root cause. It happens due to multi-threading 
 when one thread allocates newbuf array, then another thread increments 
 bufCount in write method and then the first thread fails on System.arraycopy 
 invocation.
 I suggest making getSAXFragment and write methods synchronized. It should 
 resolve the issue. If it helps, I'll provide a patch later.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Comment Edited] (COCOON-2340) XMLByteStreamCompiler in not thread-safe

2013-11-28 Thread Ivan Lagunov (JIRA)

[ 
https://issues.apache.org/jira/browse/COCOON-2340?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13834764#comment-13834764
 ] 

Ivan Lagunov edited comment on COCOON-2340 at 11/28/13 12:15 PM:
-

Hi Javier,

I would like to try Cocoon 2.2.1 first but could you say where it's located? I 
suppose it must be under trunk here 
http://svn.apache.org/repos/asf/cocoon/trunk/ ? Is it stable enough for 
Production usage? It's written here that SNAPSHOTS are not tested and not 
guaranteed to even build cleanly: https://cocoon.apache.org/mirror.cgi

Regarding singleton components in the pipeline. I'm using standard Cocoon 
components, you can see the exception is coming from 
ExpiresCachingProcessingPipeline. Did you mean that some Cocoon 2.2 components 
are declared as singletons? Because I don't think I can fix it in my code.

Ivan


was (Author: lagivan):
Hi Javier,

I would like to try Cocoon 2.2.1 first but could you say where it's located? I 
suppose it must be under trunk here 
http://svn.apache.org/repos/asf/cocoon/trunk/ ? Is it stable enough for 
Production usage? I mean it's written here that SNAPSHOTS are not tested and 
not guaranteed to even build cleanly: https://cocoon.apache.org/mirror.cgi

Ivan

 XMLByteStreamCompiler in not thread-safe
 

 Key: COCOON-2340
 URL: https://issues.apache.org/jira/browse/COCOON-2340
 Project: Cocoon
  Issue Type: Bug
  Components: * Cocoon Core
Affects Versions: 2.2
Reporter: Ivan Lagunov

 I'm periodically getting the following exceptions in different places:
 Caused by: java.lang.ArrayIndexOutOfBoundsException
 at java.lang.System.arraycopy(Native Method)
 at 
 org.apache.cocoon.components.sax.XMLByteStreamCompiler.getSAXFragment(XMLByteStreamCompiler.java:61)
 at 
 org.apache.cocoon.components.pipeline.impl.ExpiresCachingProcessingPipeline.processXMLPipeline(ExpiresCachingProcessingPipeline.java:152)
 After debugging I've found the root cause. It happens due to multi-threading 
 when one thread allocates newbuf array, then another thread increments 
 bufCount in write method and then the first thread fails on System.arraycopy 
 invocation.
 I suggest making getSAXFragment and write methods synchronized. It should 
 resolve the issue. If it helps, I'll provide a patch later.



--
This message was sent by Atlassian JIRA
(v6.1#6144)


[jira] [Commented] (COCOON-2340) XMLByteStreamCompiler in not thread-safe

2013-11-28 Thread Javier Puerto (JIRA)

[ 
https://issues.apache.org/jira/browse/COCOON-2340?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanelfocusedCommentId=13835015#comment-13835015
 ] 

Javier Puerto commented on COCOON-2340:
---

Hi Ivan,

You are right, I thought that the 2.2.1 was released but it's not. You can 
apply the patch from COCOON-2156 to the tag 
http://svn.apache.org/repos/asf/cocoon/tags/cocoon-2.2/
About the singleton components, you can try yourself if you redeclare the 
Cocoon component with a different name and then use this one instead of the 
default one in the core.
Anyway you should provide an example to reproduce the issue so I can take a 
look but I will not be able to review it until the weekend.

Salu2.

 XMLByteStreamCompiler in not thread-safe
 

 Key: COCOON-2340
 URL: https://issues.apache.org/jira/browse/COCOON-2340
 Project: Cocoon
  Issue Type: Bug
  Components: * Cocoon Core
Affects Versions: 2.2
Reporter: Ivan Lagunov

 I'm periodically getting the following exceptions in different places:
 Caused by: java.lang.ArrayIndexOutOfBoundsException
 at java.lang.System.arraycopy(Native Method)
 at 
 org.apache.cocoon.components.sax.XMLByteStreamCompiler.getSAXFragment(XMLByteStreamCompiler.java:61)
 at 
 org.apache.cocoon.components.pipeline.impl.ExpiresCachingProcessingPipeline.processXMLPipeline(ExpiresCachingProcessingPipeline.java:152)
 After debugging I've found the root cause. It happens due to multi-threading 
 when one thread allocates newbuf array, then another thread increments 
 bufCount in write method and then the first thread fails on System.arraycopy 
 invocation.
 I suggest making getSAXFragment and write methods synchronized. It should 
 resolve the issue. If it helps, I'll provide a patch later.



--
This message was sent by Atlassian JIRA
(v6.1#6144)