[ https://issues.apache.org/jira/browse/WW-3691?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17616793#comment-17616793 ]
ASF subversion and git services commented on WW-3691: ----------------------------------------------------- Commit 4c8cc361d5fc37d9962f66d7d3302e2ae6b2e847 in struts's branch refs/heads/master from Lukasz Lenart [ https://gitbox.apache.org/repos/asf?p=struts.git;h=4c8cc361d ] Merge pull request #609 from apache/WW-3691-executor 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 > > Time Spent: 10m > Remaining Estimate: 0h > > 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)