You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tapestry.apache.org by "Nourredine K. (JIRA)" <ji...@apache.org> on 2011/09/21 15:11:09 UTC

[jira] [Updated] (TAP5-1660) Per-thread scope services not thread-safe

     [ https://issues.apache.org/jira/browse/TAP5-1660?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Nourredine K. updated TAP5-1660:
--------------------------------

    Attachment: tapestry5-concurrency-sample.zip

To illustrate the issue, check this simple project based on Tapestry 5.2.6 maven archetype. 

Run the maven tests. It will launch several threads in parallel. Also, you'll find more details in AppModule's comments. 

Nourredine.

> Per-thread scope services not thread-safe
> -----------------------------------------
>
>                 Key: TAP5-1660
>                 URL: https://issues.apache.org/jira/browse/TAP5-1660
>             Project: Tapestry 5
>          Issue Type: Bug
>          Components: tapestry-ioc
>    Affects Versions: 5.2.5
>            Reporter: Nourredine K.
>              Labels: ioc, jdk1.5, perthread, thread-safe
>         Attachments: tapestry5-concurrency-sample.zip
>
>
> Hi,
> Since Tapestry 5.2, it seems that per-thread scope services are not thread-safe (some of our integration tests executed in parallel fail since Tapestry 5.2).
> The proxy managed by Tapestry does not create a new instance of the service for each request/thread as expected.
> That leads to strange behaviour when you use the Environmental services as data's container for example.
> I also noticed that the synchronization of some resources (used by per-thread scope services) is effective only for jdk 1.5 (see PerthreadmanagerImpl's constructor and JDUtils.JDK_1_5). But this aspect does not explain everything : the tests fail with JDK 1.5 too.
> The related discussion here : http://tapestry.1045711.n5.nabble.com/Tapestry-5-2-Per-thread-scope-services-not-thread-safe-td4825735.html
> Nourredine. 

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira