[
https://issues.apache.org/jira/browse/CXF-3426?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Willem Jiang resolved CXF-3426.
-------------------------------
Resolution: Fixed
Fix Version/s: 2.3.4
2.4
Applied patch into trunk and 2.3.x branch.
> CXF JMSContinuation leaks threads
> ---------------------------------
>
> Key: CXF-3426
> URL: https://issues.apache.org/jira/browse/CXF-3426
> Project: CXF
> Issue Type: Bug
> Components: Transports
> Affects Versions: 2.3.0, 2.2.11, 2.2.12, 2.3.1, 2.3.2, 2.3.3
> Reporter: Willem Jiang
> Assignee: Willem Jiang
> Fix For: 2.4, 2.3.4
>
>
> JMSContinuation contains this method:
> {code}
> protected void createTimerTask(long timeout) {
> timer = new Timer();
> timer.schedule(new TimerTask() {
> public void run() {
> synchronized (JMSContinuation.this) {
> if (isPending) {
> doResume();
> }
> }
> }
> }, timeout);
> }
> {code}
> The 'if' statement should be changed to:
> {code}
> if (isPending) {
> cancelTimerTask();
> doResume();
> }
> {code}
> The current impl causes cancel() not to be called on the Timer instance if
> timeout is triggered. This causes threads created by Timer instances to be
> leaked.
> Please note: as stated above - the leak is only observable when timeouts are
> triggered on these continuations. If no timeouts are triggered and the
> orginary resume() method is called, this class does nto leak threads.
--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira