Lars Storm (Systematic) created CAMEL-20806:
-----------------------------------------------

             Summary: ProducerCache may reference producers from stopped 
endpoints
                 Key: CAMEL-20806
                 URL: https://issues.apache.org/jira/browse/CAMEL-20806
             Project: Camel
          Issue Type: Bug
          Components: camel-core
    Affects Versions: 4.4.1, 2.25.0
            Reporter: Lars Storm (Systematic)


*Problem in short:*

The DefaultProducerCache created from .toD(...) in a route may reference 
producers created from endpoints that have been stopped.

Specifically the endpoint may have been stopped from 
camelContext.removeEndpoint(...)

*Proposal:*

ProducerCaches should be notified when an endpoint is stopped. The 
ProducerCache may then find and evict the leaked producer.

*Use case:*

In some cases we create a n endpoint (e.g. CxfEndpoint) programmatically per 
tenant (Multi-tenant setup) and store the endpoint in a non-Camel cache. The 
endpoint is then passed on to a Camel route on request.
The endpoint is then dynamically used in a .toD(...)

However the local cache may decide to stop the endpoint due to changes 
performed in tenant properties and create a new one. e.g. changing the endpoint 
url or similar.

In that case the TenantEndpointCache removes the current endpoint the camel 
context and creates a new one which is added to the context.

Example route code:
{noformat}
.setProperty("endpoint").method(TenantEndpointCache.class, "createEndpoint")
.toD("${exchangeProperty.endpoint}"){noformat}



--
This message was sent by Atlassian Jira
(v8.20.10#820010)

Reply via email to