oscerd commented on code in PR #26779: URL: https://github.com/apache/camel/pull/26779#discussion_r4103084178
########## docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_23.adoc: ########## @@ -2839,6 +2839,29 @@ reply of a discarded exchange (`waitForTaskToComplete`) is released with that ex `timeout`, or forever when the timeout is disabled. On completions handed over to a discarded InOnly exchange, such as the commit or rollback of the consumer that received the message, now run as a failure, where previously they never ran. +=== camel-pulsar - PulsarMessageUtils.updateExchange returns the exchange it was given + +`PulsarMessageUtils.updateExchange(message, exchange)` used to return a *copy* of the exchange passed to +it. It now populates and returns that same instance. + +The copy orphaned the exchange the consumer had taken from the exchange factory, so with +`camel.main.exchange-factory=pooled` every consumed message leaked one pooled exchange and the pool never +refilled. Code outside the component that called this method and relied on getting an independent copy +must make its own copy instead. + +=== camel-pulsar - a failed exchange is negatively acknowledged + +When a route fails, the consumer now calls `negativeAcknowledge` on the Pulsar consumer instead of +leaving the message unacknowledged. This only applies when `allowManualAcknowledgement` is `false` +(the default); with manual acknowledgement the route stays in charge, as before. + +This changes when the message comes back. Previously it was redelivered once the acknowledgement +timeout expired, which `camel-pulsar` sets to 10 seconds by default through `ackTimeoutMillis`. A +negative acknowledgement removes the message from the client's unacknowledged-message tracker, so +redelivery now follows `negativeAckRedeliveryDelayMicros`, which defaults to 60 seconds, and honours +`negativeAckRedeliveryBackoff` when one is configured. + +A route that wants the previous timing can set `negativeAckRedeliveryDelayMicros=10000000`. === camel-seda - multipleConsumers broadcasts to consumers with different uri options With `multipleConsumers=true` every consumer of a SEDA queue now receives a copy of each message, also when the consumers Review Comment: Fixed in 9d9e71f. The merge of `main` into this branch dropped that blank line — it was not in the original entry. I also swept the whole file: the only other `===` headings missing one are `camel-azure-eventgrid` (921), `camel-langchain4j` (1357) and `camel-salesforce` (1401), and all three are pre-existing on `main`, so I left them rather than widen this PR. _Claude Code on behalf of oscerd_ -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected]
