I have a route with a recipientList. The endpoint passed to the recipientList comes from a property. There is a route-specific onException handler with redelivery for this route. It is possible that the endpoint can be invalid, causing the recipientList to fail and onException redelivery to be triggered. Since the endpoint is invalid, we don't want the redelivery to use the same endpoint and fail again. I have tried to change the property value in the onRedelivery processor when control flow gets there, but it appears that the changed property value passed to the recipientList isn't used on the redelivery attempt. It uses the original value passed in, which causes the route to fail again and go to my fail endpoint. When I check the property value in the fail endpoint (expecting that the endpoint property was not changed), it appears to be the changed endpoint, not the original endpoint. So it seems like the property is changed but redelivery doesn't use it.
Is there a way to change the property value prior to its use in the recipientList redelivery attempt such that it will be used instead of using the original value? NOTE: I am using this approach to redeliveries: http://camel.apache.org/how-do-i-retry-processing-a-message-from-a-certain-point-back-or-an-entire-route.html Example code below: from("direct:showList) .onException(HttpOperationFailedException.class) .handled(true) .maximumRedeliveries(MAX_REDELIVERIES) .redeliveryDelay(REDELIVERY_DELAY) .onRedelivery(e->{ e.setProperty(GET_LIST_ENDPOINT, "http4://correctedEndpoint"); }) .to(Endpoint.HANDLE_ERROR_ON_REDELIVERY) .end() .... .to("direct:callGetList") .... .end() from("direct:callGetList") .errorHandler(noErrorHandler()) .recipientList(exchangeProperty(GET_LIST_ENDPOINT)) .end(); -- View this message in context: http://camel.465427.n5.nabble.com/Need-to-be-able-to-change-endpoint-for-recipientList-when-call-is-redelivered-tp5800698.html Sent from the Camel - Users mailing list archive at Nabble.com.