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)

Reply via email to