[
https://issues.apache.org/jira/browse/CAMEL-15063?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen updated CAMEL-15063:
--------------------------------
Fix Version/s: 3.4.0
> Nullpointer Exception in Camel Salesforce
> -----------------------------------------
>
> Key: CAMEL-15063
> URL: https://issues.apache.org/jira/browse/CAMEL-15063
> Project: Camel
> Issue Type: Bug
> Components: camel-salesforce
> Affects Versions: 3.2.0
> Reporter: Otavio Rodolfo Piske
> Priority: Major
> Fix For: 3.4.0
>
>
> While working on an integration test for the Camel Kafka Connector, which
> uses 3.2.0, I found what appears to be a problem in Camel Salesforce.
>
> {code:java}
> 2020-05-14 17:22:48,758 [ool-68-thread-1] ERROR
> org.apache.camel.impl.engine.AbstractCamelContext - Error starting
> CamelContext (camel-1) due to exception thrown: null
> java.lang.NullPointerException: null
> at
> org.apache.camel.component.salesforce.internal.streaming.SubscriptionHelper.createClient(SubscriptionHelper.java:343)
> ~[camel-salesforce-3.2.0.jar:3.2.0]
> at
> org.apache.camel.component.salesforce.internal.streaming.SubscriptionHelper.doStart(SubscriptionHelper.java:111)
> ~[camel-salesforce-3.2.0.jar:3.2.0]
> at org.apache.camel.support.service.BaseService.start(BaseService.java:115)
> ~[camel-api-3.2.0.jar:3.2.0]
> at
> org.apache.camel.support.service.ServiceHelper.startService(ServiceHelper.java:84)
> ~[camel-api-3.2.0.jar:3.2.0]
> at
> org.apache.camel.component.salesforce.SalesforceConsumer.doStart(SalesforceConsumer.java:320)
> ~[camel-salesforce-3.2.0.jar:3.2.0]
> at org.apache.camel.support.service.BaseService.start(BaseService.java:115)
> ~[camel-api-3.2.0.jar:3.2.0]
> at
> org.apache.camel.impl.engine.AbstractCamelContext.startService(AbstractCamelContext.java:3056)
> ~[camel-base-3.2.0.jar:3.2.0]
> at
> org.apache.camel.impl.engine.AbstractCamelContext.doStartOrResumeRouteConsumers(AbstractCamelContext.java:3394)
> ~[camel-base-3.2.0.jar:3.2.0]
> at
> org.apache.camel.impl.engine.AbstractCamelContext.doStartRouteConsumers(AbstractCamelContext.java:3325)
> ~[camel-base-3.2.0.jar:3.2.0]
> at
> org.apache.camel.impl.engine.AbstractCamelContext.safelyStartRouteServices(AbstractCamelContext.java:3230)
> ~[camel-base-3.2.0.jar:3.2.0]
> at
> org.apache.camel.impl.engine.AbstractCamelContext.doStartOrResumeRoutes(AbstractCamelContext.java:2992)
> ~[camel-base-3.2.0.jar:3.2.0]
> at
> org.apache.camel.impl.engine.AbstractCamelContext.doStartCamel(AbstractCamelContext.java:2790)
> ~[camel-base-3.2.0.jar:3.2.0]
> at
> org.apache.camel.impl.engine.AbstractCamelContext.doStartContext(AbstractCamelContext.java:2643)
> [camel-base-3.2.0.jar:3.2.0]
> at
> org.apache.camel.impl.engine.AbstractCamelContext.doStart(AbstractCamelContext.java:2606)
> [camel-base-3.2.0.jar:3.2.0]
> at org.apache.camel.support.service.BaseService.start(BaseService.java:115)
> [camel-api-3.2.0.jar:3.2.0]
> at
> org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2448)
> [camel-base-3.2.0.jar:3.2.0]
> at org.apache.camel.main.Main.doStart(Main.java:118)
> [camel-main-3.2.0.jar:3.2.0]
> at org.apache.camel.support.service.BaseService.start(BaseService.java:115)
> [camel-api-3.2.0.jar:3.2.0]
> at org.apache.camel.main.MainSupport.run(MainSupport.java:83)
> [camel-main-3.2.0.jar:3.2.0]
> at
> org.apache.camel.kafkaconnector.utils.CamelMainSupport$CamelContextStarter.run(CamelMainSupport.java:224)
> [classes/:?]
> at
> java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
> [?:1.8.0_252]
> at
> java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
> [?:1.8.0_252]{code}
>
> The problem seems to be related to the following set of conditions.
> # A SalesforceHTTPClient is not defined:
> [https://github.com/apache/camel/blob/release/3.2.0/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java#L328]
> # Therefore, the default Jetty one would be created:
> [https://github.com/apache/camel/blob/release/3.2.0/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java#L335]
> # Subsequently, the ServiceHelper performs the initialization of the
> SubscriptionHelper:
> [https://github.com/apache/camel/blob/release/3.2.0/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/SalesforceComponent.java#L371]
> # This, eventually, would call the doStart() method of the
> SubscriptionHelper:
> [https://github.com/apache/camel/blob/399f352a2e1a25d6a8af78d0ff7048c60c659522/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/streaming/SubscriptionHelper.java#L108]
> # Which would try to create the Bayeux client:
> [https://github.com/apache/camel/blob/399f352a2e1a25d6a8af78d0ff7048c60c659522/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/streaming/SubscriptionHelper.java#L111]
> # However, to do so, it tries uses the shared that Jetty HTTP client:
> [https://github.com/apache/camel/blob/399f352a2e1a25d6a8af78d0ff7048c60c659522/components/camel-salesforce/camel-salesforce-component/src/main/java/org/apache/camel/component/salesforce/internal/streaming/SubscriptionHelper.java#L340]
>
> The problem is that it tries to use the http client from the
> SalesforceEndpointConfig instance and, in no point between steps 1 and 6, it
> seems to have set the instanced created on the step 1 to the instance of that
> class.
>
>
>
>
>
>
--
This message was sent by Atlassian Jira
(v8.3.4#803005)