[ 
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

Reply via email to