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)