This is an automated email from the ASF dual-hosted git repository.
davsclaus pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/camel.git
The following commit(s) were added to refs/heads/main by this push:
new 87b05fda2f9f CAMEL-25860: upgrade guide notes for the 4.18.6 and
4.22.3 pollEnrich timeout fix (#28176)
87b05fda2f9f is described below
commit 87b05fda2f9f201bf0af1c78243d32a418acce6c
Author: Claus Ibsen <[email protected]>
AuthorDate: Tue Oct 20 12:26:54 2026 +0200
CAMEL-25860: upgrade guide notes for the 4.18.6 and 4.22.3 pollEnrich
timeout fix (#28176)
Co-Authored-By: Claude Opus 5.5 (1M context) <[email protected]>
---
.../modules/ROOT/pages/camel-4x-upgrade-guide-4_18.adoc | 15 +++++++++++++++
.../modules/ROOT/pages/camel-4x-upgrade-guide-4_22.adoc | 15 +++++++++++++++
2 files changed, 30 insertions(+)
diff --git
a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_18.adoc
b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_18.adoc
index a5c6fe07b79c..518520010a72 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_18.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_18.adoc
@@ -320,6 +320,21 @@ framing, are still allowed. Routes that put a
percent-encoded control character
`CamelHttpPath` or `CamelHttpQuery` header, which the producer decodes before
building the request, are the ones most
likely to be affected.
+=== camel-core - pollEnrich: the body is null after a timeout also for a
message that creates its body on demand
+
+When `pollEnrich` (or `poll`) times out and no `aggregationStrategy` is
configured, the body is set to `null`, and with
+`variableReceive` the variable is `null`. For a message that creates its body
on demand, the `null` did not stick: the
+next read created the body again. The message of a file consumer creates its
body from its file, so after a timeout
+the body, or the variable of `variableReceive`, was the file of the incoming
exchange instead of `null`. The messages
+of the JMS, sjms, mail, HTTP, XMPP, SMPP, SNMP and Spring WS consumers create
their body on demand as well, so there it
+was the payload of the consumer again.
+
+The body, or the variable, is now `null` after a timeout for these consumers
too. A route that read the incoming file
+or payload from the body after a timed out `pollEnrich` must keep it before
the `pollEnrich` instead, for example with
+`variableReceive`, which leaves the body as it was. To keep the body empty,
the message is replaced by a plain message
+with the same message id, headers and attachments, so after a timeout it is no
longer of the message type of the
+consumer (such as `GenericFileMessage` or `JmsMessage`).
+
== Upgrading from 4.18.4 to 4.18.5
=== camel-azure-eventhubs
diff --git
a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_22.adoc
b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_22.adoc
index 1a476f3f5ee2..01c609c65005 100644
--- a/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_22.adoc
+++ b/docs/user-manual/modules/ROOT/pages/camel-4x-upgrade-guide-4_22.adoc
@@ -122,6 +122,21 @@ framing, are still allowed. Routes that put a
percent-encoded control character
`CamelHttpPath` or `CamelHttpQuery` header, which the producer decodes before
building the request, are the ones most
likely to be affected.
+=== camel-core - pollEnrich: the body is null after a timeout also for a
message that creates its body on demand
+
+When `pollEnrich` (or `poll`) times out and no `aggregationStrategy` is
configured, the body is set to `null`, and with
+`variableReceive` the variable is `null`. For a message that creates its body
on demand, the `null` did not stick: the
+next read created the body again. The message of a file consumer creates its
body from its file, so after a timeout
+the body, or the variable of `variableReceive`, was the file of the incoming
exchange instead of `null`. The messages
+of the JMS, sjms, mail, HTTP, XMPP, SMPP, SNMP and Spring WS consumers create
their body on demand as well, so there it
+was the payload of the consumer again.
+
+The body, or the variable, is now `null` after a timeout for these consumers
too. A route that read the incoming file
+or payload from the body after a timed out `pollEnrich` must keep it before
the `pollEnrich` instead, for example with
+`variableReceive`, which leaves the body as it was. To keep the body empty,
the message is replaced by a plain message
+with the same message id, headers and attachments, so after a timeout it is no
longer of the message type of the
+consumer (such as `GenericFileMessage` or `JmsMessage`).
+
== Upgrading from 4.22.1 to 4.22.2
=== camel-lra - only an LRA hosted by the configured coordinator is joined