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&deleteAfterRead=false&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)