Damien B created CAMEL-12367:
--------------------------------

             Summary: Thread leak in pollEnrich
                 Key: CAMEL-12367
                 URL: https://issues.apache.org/jira/browse/CAMEL-12367
             Project: Camel
          Issue Type: Bug
          Components: camel-core
    Affects Versions: 2.19.2
            Reporter: Damien B


In a route we have this snippet:
{code:java}
<pollEnrich>
 
<simple>aws-s3://{{AWS_BUCKET_NAME_DOWNLOAD}}?amazonS3Client=#amazonS3Client&amp;deleteAfterRead=false&amp;prefix=${body.key}</simple>
</pollEnrich>{code}
This is used to download one specific file from a bucket. Every time this is 
called, the endpoint URI changes because ${body.key} is constantly changing.

 

In ScheduledPollConsumer we have this:
{code:java}
public long beforePoll(long timeout) throws Exception {
 if (!ServiceHelper.resumeService(this)) {
        ServiceHelper.startService(this);
 }
 return Math.max(timeout, getDelay());
}

public void afterPoll() throws Exception {
 if (!ServiceHelper.suspendService(this)) {
         ServiceHelper.stopService(this);
 }
}
{code}
 

Since S3Consumer is a Suspendable, the thread created by 
ServiceHelper.startService is never going to be killed, and since it's never 
going to be reused because we'll never have twice the same endpoint URI, 
eventually the application dies because of the rogue threads.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to