You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@struts.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2022/10/04 08:14:00 UTC
[jira] [Commented] (WW-3691) BackgroundProcess should use a java.util.concurrent.Executor alternatively to spawning a new thread
[ https://issues.apache.org/jira/browse/WW-3691?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17612510#comment-17612510 ]
ASF subversion and git services commented on WW-3691:
-----------------------------------------------------
Commit 47398e8a784deb9a71e5f84ddfc3dbe1e5f2f8d4 in struts's branch refs/heads/WW-3691-executor from Lukasz Lenart
[ https://gitbox.apache.org/repos/asf?p=struts.git;h=47398e8a7 ]
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)