-
Bug
-
Resolution: Unresolved
-
Major
-
None
-
10.0.0.Final
-
None
Maybe I'm missing something but although the default keepAlive is set to 30 seconds, the threads seem to run indefinitely - see also steps to reproduce.
Snippet from the default config file:
<thread-pool name="batch"> <max-threads count="10"/> <keepalive-time time="30" unit="seconds"/> </thread-pool>
Anyway, the UnboundedQueueThreadPoolService, or the underlying JBossThreadPoolExecutor respectively, used by the Batch subsystem is using the same corePoolSize and maximumPoolSize and it seems the core threads are not allowed to time out, i.e. org.jboss.threads.JBossThreadPoolExecutor.setAllowCoreThreadTimeout(boolean) is not used.
Moreover, a JBossThreadPoolExecutor.setAllowCoreThreadTimeout(boolean) invocation would probably result in an infinite loop:
public void setAllowCoreThreadTimeout(final boolean allow) { setAllowCoreThreadTimeout(allow); }
should be replaced with:
public void setAllowCoreThreadTimeout(final boolean allow) { allowCoreThreadTimeOut(allow); }
Given that JBossThreadPoolExecutor is used by more subsystems this issue may affect other subsystems as well.