gnodet-bot commented on code in PR #26779: URL: https://github.com/apache/camel/pull/26779#discussion_r4102926537
########## 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: 💡 **Nit (non-blocking):** AsciiDoc needs a blank line before the next `===` heading (`camel-seda`) or it won't render as a section title. Add a blank line after this one. ```suggestion A route that wants the previous timing can set `negativeAckRedeliveryDelayMicros=10000000`. ``` -- 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]
