[
https://issues.apache.org/jira/browse/CAMEL-22658?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen resolved CAMEL-22658.
---------------------------------
Resolution: Fixed
Thanks for reporting and the PR
> [camel-google-pubsub] GooglePubsubProducer fails with INVALID_ARGUMENT
> ----------------------------------------------------------------------
>
> Key: CAMEL-22658
> URL: https://issues.apache.org/jira/browse/CAMEL-22658
> Project: Camel
> Issue Type: Bug
> Components: camel-google-pubsub
> Affects Versions: 4.14.2
> Reporter: Dave Riseley
> Priority: Minor
> Fix For: 4.14.3, 4.17.0
>
>
> Since the change for CAMEL-22403 was applied, we have had issues where the
> Camel PubSub producer fails to send messages to a Google Pub Sub topic.
> The scenario is:
> 1. PubSub message received by the consumer
> 2. Processing occurs
> 3. Attempt to send response message to a different topic.
> The exception seen is:
> {code}
> java.util.concurrent.ExecutionException:
> com.google.api.gax.rpc.InvalidArgumentException:
> io.grpc.StatusRuntimeException: INVALID_ARGUMENT: The request contains an
> attribute key that is not valid (key=googclient_deliveryattempt). Attribute
> keys must be non-empty and must not begin with 'goog' (case-insensitive).
> at
> com.google.common.util.concurrent.AbstractFuture.getDoneValue(AbstractFuture.java:292)
> at
> com.google.common.util.concurrent.AbstractFutureState.blockingGet(AbstractFutureState.java:255)
> at com.google.common.util.concurrent.Platform.get(Platform.java:54)
> at
> com.google.common.util.concurrent.AbstractFuture.get(AbstractFuture.java:253)
> at com.google.api.core.AbstractApiFuture.get(AbstractApiFuture.java:53)
> at
> org.apache.camel.component.google.pubsub.GooglePubsubProducer.send(GooglePubsubProducer.java:138)
> at
> org.apache.camel.component.google.pubsub.GooglePubsubProducer.process(GooglePubsubProducer.java:84)
> at
> org.apache.camel.support.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:65)
> at
> org.apache.camel.processor.SendProcessor.sendUsingProducer(SendProcessor.java:251)
> at
> org.apache.camel.processor.SendProcessor.process(SendProcessor.java:156)
> at
> org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.doRun(RedeliveryErrorHandler.java:777)
> at
> org.apache.camel.processor.errorhandler.RedeliveryErrorHandler$RedeliveryTask.run(RedeliveryErrorHandler.java:720)
> at
> org.apache.camel.impl.engine.DefaultReactiveExecutor$Worker.doRun(DefaultReactiveExecutor.java:199)
> ...
> {code}
> I believe the issue is in the new GooglePubsubHeaderFilterStrategy class:
> https://github.com/apache/camel/blob/camel-4.14.x/components/camel-google/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubHeaderFilterStrategy.java
> This filters only headers starting with {{x-goog}} or {{X-GOOG}} and not
> {{goog}}. The legacy code is still there to filter those headers:
> https://github.com/apache/camel/blob/811f38029a858fa5e35ae6f9979c614b19600f00/components/camel-google/camel-google-pubsub/src/main/java/org/apache/camel/component/google/pubsub/GooglePubsubProducer.java#L113
> but then when the header filter is applied - it allows the {{goog}} headers
> back in again
> We cannot configure the HeaderFilterStrategy on the GooglePubsubProducer, so
> can't override this behaviour
> [~squakez] FYI
--
This message was sent by Atlassian Jira
(v8.20.10#820010)