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

Work on CAMEL-15840 started by Otavio Rodolfo Piske.
----------------------------------------------------
> camel-aws2-sns: duplicate copies of configuration objects lead to undefined 
> behavior
> ------------------------------------------------------------------------------------
>
>                 Key: CAMEL-15840
>                 URL: https://issues.apache.org/jira/browse/CAMEL-15840
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-aws2
>    Affects Versions: 3.4.4, 3.6.0
>            Reporter: Otavio Rodolfo Piske
>            Assignee: Otavio Rodolfo Piske
>            Priority: Major
>             Fix For: 3.4.5, 3.7.0
>
>
> Camel is keeping 2 different instances of the configuration object for the 
> AWS 2 SNS component. Subsequently, changes to the object instances cause both 
> of them to be out of sync leading to undefined behavior depending on each 
> copy is read.
> The problem flow is:
>  # A copy of the configuration object if created when instantiating the 
> endpoint: 
> [https://github.com/apache/camel/blob/46945de816123cc894846a7e5cfe145f39e76f95/components/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2Component.java#L57|https://github.com/apache/camel/blob/master/components/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2Component.java#L57]
>  # The copy object is then set with additional configuration values, such as 
> the topic and topicArn: 
> [https://github.com/apache/camel/blob/46945de816123cc894846a7e5cfe145f39e76f95/components/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2Component.java#L63-L66|https://github.com/apache/camel/blob/master/components/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2Component.java#L63-L66]
>  # Then, when trying to set the component properties, the configuration 
> object will be overwritten and the changes on step 2 may be lost: 
> [https://github.com/apache/camel/blob/46945de816123cc894846a7e5cfe145f39e76f95/components/camel-aws2-sns/src/main/java/org/apache/camel/component/aws2/sns/Sns2Component.java#L69]
>  
> Under some circumstances, such as when using a custom configuration object 
> this causes the code to overwrite the object.
> Here's a code snippet of the debug of the content of the parameters Map, used 
> by setProperties to setup the endpoint. The introspection will eventually 
> overwrite the configuration object.
>  
> {code:java}
> 2020-11-10 13:52:33,853 [nectorWithUrl-0] DEBUG 
> org.apache.camel.component.aws2.sns.Sns2Component - Parameters -- Key: 
> accessKey, Value: accesskey
> 2020-11-10 13:52:33,853 [nectorWithUrl-0] DEBUG 
> org.apache.camel.component.aws2.sns.Sns2Component - Parameters -- Key: 
> configuration, Value: 
> #class:org.apache.camel.kafkaconnector.aws.v2.sns.sink.TestSnsConfiguration
> 2020-11-10 13:52:33,853 [nectorWithUrl-0] DEBUG 
> org.apache.camel.component.aws2.sns.Sns2Component - Parameters -- Key: 
> queueUrl, Value: http://localhost:35886/000000000000/ckcsns-608
> 2020-11-10 13:52:33,853 [nectorWithUrl-0] DEBUG 
> org.apache.camel.component.aws2.sns.Sns2Component - Parameters -- Key: 
> region, Value: us-east-1
> 2020-11-10 13:52:33,853 [nectorWithUrl-0] DEBUG 
> org.apache.camel.component.aws2.sns.Sns2Component - Parameters -- Key: 
> secretKey, Value: secretkey
> 2020-11-10 13:52:33,853 [nectorWithUrl-0] DEBUG 
> org.apache.camel.component.aws2.sns.Sns2Component - Parameters -- Key: 
> subscribeSNStoSQS, Value: true
> {code}
>  
>  
>  
>  
>  
>  
>  
>  
>  



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to