Otavio Rodolfo Piske created CAMEL-15063:
--------------------------------------------

             Summary: 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


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)

Reply via email to