[ 
https://issues.apache.org/jira/browse/CAMEL-26032?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
 ]

Work on CAMEL-26032 started by Claus Ibsen.
-------------------------------------------
> camel-aws2-ec2 - no operation fails with a NullPointerException, the instance 
> type of the docs fails, and a text instance ids header is dropped
> -----------------------------------------------------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-26032
>                 URL: https://issues.apache.org/jira/browse/CAMEL-26032
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-aws2
>    Affects Versions: 4.18.0, 4.22.0, 4.23.0
>            Reporter: Claus Ibsen
>            Assignee: Claus Ibsen
>            Priority: Minor
>             Fix For: 4.24.0
>
>
> Found while adding the catalog body types of aws2-ec2 (CAMEL-24961).
> h4. 1. No operation fails with a NullPointerException
> The operation is required and has no default. Without the operation option 
> and the {{CamelAwsEC2Operation}} header, the producer fails with 
> {{NullPointerException: Cannot invoke "...AWS2EC2Operations.ordinal()" 
> because the return value of "...AWS2EC2Producer.determineOperation(...)" is 
> null}} ({{AWS2EC2Producer}}, main 07d2e7a987bc, line 83). Checked on 
> 4.24.0-SNAPSHOT with {{camel run}} against the AWS emulator of {{camel infra 
> run aws}}.
> *Proposed change*: fail with a message that says the operation is missing, as 
> aws2-kms and aws2-iam do.
> h4. 2. The instance type of the docs fails
> The XML and YAML examples of the docs set {{CamelAwsEC2InstanceType}} to 
> {{t2.micro}}. The header is converted to the {{InstanceType}} enum of the AWS 
> SDK ({{AWS2EC2Producer}}, line 177), and {{t2.micro}} is not the name of a 
> constant, so createAndRunInstances fails with a {{TypeConversionException}}; 
> {{T2_MICRO}} works. Checked on 4.24.0-SNAPSHOT with {{camel run}} against the 
> AWS emulator of {{camel infra run aws}}.
> *Proposed change*: take the AWS value ({{InstanceType.fromValue}}) as well as 
> the constant name, or fix the examples.
> h4. 3. A text CamelAwsEC2InstancesIds header is dropped
> The ids must be a Collection. A String, such as {{i-1}}, converts to null, as 
> Camel has no converter from text to a Collection, but the check before it 
> passes on the header. So startInstances, stopInstances and the other 
> operations send a request with no ids, and describeInstances describes all 
> instances. Checked on 4.24.0-SNAPSHOT with {{camel run}} against the AWS 
> emulator of {{camel infra run aws}}: stopInstances with the header {{i-1}} 
> stopped nothing ({{StoppingInstances=[]}}) and raised no error.
> *Proposed change*: take a String of ids separated by commas, or fail when the 
> header is not a Collection.
> h4. Also read in the code, not run
> * {{EC2ComponentIT}} and {{EC2ProducerTest}} wrap {{template.send}} in 
> {{assertDoesNotThrow}}, which cannot fail: send does not throw for a failed 
> exchange.
> _Claude Code on behalf of davsclaus_



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

Reply via email to