[ 
https://issues.apache.org/jira/browse/WW-3691?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17612543#comment-17612543
 ] 

ASF subversion and git services commented on WW-3691:
-----------------------------------------------------

Commit 8dd76311f17d95c45b484b01aadbac32b586abc7 in struts's branch 
refs/heads/WW-3691-executor from Lukasz Lenart
[ https://gitbox.apache.org/repos/asf?p=struts.git;h=8dd76311f ]

WW-3691 Converts BackgroundProcess into interface and uses Executor to execute 
BackgroundProcess


> BackgroundProcess should use a java.util.concurrent.Executor alternatively to 
> spawning a new thread
> ---------------------------------------------------------------------------------------------------
>
>                 Key: WW-3691
>                 URL: https://issues.apache.org/jira/browse/WW-3691
>             Project: Struts 2
>          Issue Type: Improvement
>          Components: Core Interceptors
>    Affects Versions: 2.2.3.1
>            Reporter: Falko Modler
>            Assignee: Lukasz Lenart
>            Priority: Major
>             Fix For: 6.1.0
>
>         Attachments: WW-3691.patch, WW-3691_core.txt, WW-3691_showcase.txt
>
>
> Every new instance of org.apache.struts2.interceptor.BackgroundProcess spawns 
> a new Thread (see constructor), no thread pooling is used.
> Besides problems in environments where some container might need to manage 
> the creation of threads, this issue also prevents certain 
> performance/efficiency optimizations via ThreadLocal from taking full effect. 
> E.g.: We use ThreadLocals for Random and SimpleDateFormat and those thread 
> local instances "are lost" when a new Thread is created.
> Therefore BackgroundProcess should be given a new constructor that takes a 
> java.util.concurrent.Executor instance that is used to execute the Runnable.



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to