Claus Ibsen created CAMEL-26034:
-----------------------------------

             Summary: camel-aws2-eventbridge - putEvent does not fail when 
EventBridge rejects the event
                 Key: CAMEL-26034
                 URL: https://issues.apache.org/jira/browse/CAMEL-26034
             Project: Camel
          Issue Type: Bug
          Components: camel-aws2
    Affects Versions: 4.18.0, 4.22.0, 4.23.0
            Reporter: Claus Ibsen
             Fix For: 4.24.0


Found while adding the catalog body types of aws2-eventbridge (CAMEL-24961).

h4. 1. putEvent does not fail when EventBridge rejects the event

putEvent sends the body as the detail of the event, which must be a JSON 
object. A detail that is not, such as plain text, or a Map sent as its 
toString(), is rejected by EventBridge with MalformedDetail, but the exchange 
does not fail: only the {{CamelAwsEventbridgeFailedEntryCount}} header shows it 
({{EventbridgeProducer}}, main 07d2e7a987bc, lines 403-433). The putEvent 
examples of the docs sent such a body ("Test Event"; corrected in the pull 
request of CAMEL-24961). Checked on 4.24.0-SNAPSHOT with {{camel run}} against 
the AWS emulator of {{camel infra run aws}}: "Test Event" and a Map gave 
FailedEntryCount=1, ErrorCode MalformedDetail, and no error.

*Proposed change*: fail the exchange when an entry is rejected, or add an 
option for it, and say it in the docs.

h4. 2. putEvent without a body fails with a bare RuntimeException

No body fails with a {{RuntimeException}} that wraps the 
{{InvalidPayloadException}} (line 424). Checked on 4.24.0-SNAPSHOT with {{camel 
run}} against the AWS emulator of {{camel infra run aws}}.

*Proposed change*: throw the InvalidPayloadException.

h4. Also read in the code, not run

* The ARNs of {{CamelAwsEventbridgeResourcesArn}} are not trimmed after the 
split on commas (line 413).
* putRule, the default, without the event pattern header and the 
eventPatternFile option fails with an unclear error (lines 171-177).
* {{EventbridgeConsumerIT}} is disabled ("Doesn't work with Localstack v4"), 
but the tests run on floci now, and the consumer works there: it gave the 
envelope of each event as JSON text.
* The docs say the component supports the assumeRole operation, and write the 
uri as {{//label}}; the path is the name or the ARN of the event bus.

_Claude Code on behalf of davsclaus_



--
This message was sent by Atlassian Jira
(v10.3.26#10030026)

Reply via email to