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

Konrad Windszus commented on SLING-6261:
----------------------------------------

Thanks for the feedback, will rework the patch to make the API still 
compatible. 

Regarding supporting weird Java Runtimes where the reflection trick does not 
work: I would rather log explicitly that thread locals are not cleaned up in 
that case instead of falling back to the {{ThreadExpiringThreadPool}}. I assume 
that this should almost never happen and I don't think it is worth the effort 
to maintain the code for {{ThreadExpiringThreadPool}} for those JREs. Also it 
is not clear whether those non-Oracle JREs are compliant with the 
{{ThreadExpiringThreadPool}} in its current form because even that relies on 
the undocumented feature that throwing an exception from its {{afterExecute}} 
method leads to discarding the thread.

> ThreadExpiringThreadPool is relying on uncaught exceptions to kill threads
> --------------------------------------------------------------------------
>
>                 Key: SLING-6261
>                 URL: https://issues.apache.org/jira/browse/SLING-6261
>             Project: Sling
>          Issue Type: Improvement
>          Components: Commons
>    Affects Versions: Commons Threads 3.2.6
>            Reporter: Konrad Windszus
>             Fix For: Commons Threads 3.2.8
>
>         Attachments: SLING-6261-v01.patch
>
>
> In {{o.a.s.commons.threads.impl.ThreadExpiringThreadPool}} a 
> {{RuntimeException}} with message "Kill old thread" is used in 
> {{checkMaxThreadAge(final Thread thread)}}. This leads by default to a 
> suspension of the thread when debugging with Eclipse (as since Neon JDT will 
> suspend the thread on all uncaught exceptions). More information is available 
> in 
> http://stackoverflow.com/questions/6290470/eclipse-debugger-always-blocks-on-threadpoolexecutor-without-any-obvious-excepti.
>  There should be a different mechanism to kill the thread than an uncaught 
> exception.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to