You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Chirag Sanghavi (Jira)" <ji...@apache.org> on 2025/04/03 04:14:00 UTC
[jira] [Created] (CAMEL-21929) Use of GroupedMessageAggregationStrategy causes issue with camel-google-pubsub component serialization
Chirag Sanghavi created CAMEL-21929:
---------------------------------------
Summary: Use of GroupedMessageAggregationStrategy causes issue with camel-google-pubsub component serialization
Key: CAMEL-21929
URL: https://issues.apache.org/jira/browse/CAMEL-21929
Project: Camel
Issue Type: Bug
Components: camel-google-pubsub
Reporter: Chirag Sanghavi
if a route uses aggegation with GroupedMessageAggregationStrategy, it results into an Exchange/Body containing a list of DefaultMessage objects.
DefaultMessage is not a serializable object causing exceptions.
{code:java}
Stacktrace
---------------------------------------------------------------------------------------------------------------------------------------
java.io.NotSerializableException: org.apache.camel.support.DefaultMessage
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1200) ~[?:?]
at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358) ~[?:?]
at java.base/java.util.ArrayList.writeObject(ArrayList.java:948) ~[?:?]
at java.base/jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:103) ~[?:?]
at java.base/java.lang.reflect.Method.invoke(Method.java:580) ~[?:?]
at java.base/java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:1072) ~[?:?]
at java.base/java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1529) ~[?:?]
at java.base/java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1451) ~[?:?]
at java.base/java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1194) ~[?:?]
at java.base/java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:358) ~[?:?]
at org.apache.camel.component.google.pubsub.serializer.DefaultGooglePubsubSerializer.serialize(DefaultGooglePubsubSerializer.java:32) ~[camel-google-pubsub-4.10.3.jar:4.10.3]
at org.apache.camel.component.google.pubsub.GooglePubsubProducer.send(GooglePubsubProducer.java:97) ~[camel-google-pubsub-4.10.3.jar:4.10.3]
at org.apache.camel.component.google.pubsub.GooglePubsubProducer.process(GooglePubsubProducer.java:75) ~[camel-google-pubsub-4.10.3.jar:4.10.3]
at org.apache.camel.support.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:65) {code}
The fix requires update to
GooglePubsubProducer in process function as well as create an overloaded send function or switching Send function to object and using branch with "instanceof" to run different logic (defaultMessage.getBody() in place of exchange.getIn().getBody().
--
This message was sent by Atlassian Jira
(v8.20.10#820010)