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)