[ 
https://issues.apache.org/jira/browse/CAMEL-8570?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14389746#comment-14389746
 ] 

Jakob Thun commented on CAMEL-8570:
-----------------------------------

Tried with camel 2.16-SNAPSHOT and the defect shown by my example works with 
that version.
I also noticed that it was enough to set _camel-spring-boot_ to 
_2.16-SNAPSHOT_, so I guess the fix is somewhere in that component.

While looking for a solution I saw this [commit 
discussion|https://github.com/apache/camel/commit/84aab93c00c3521f59b7523a551c9f53da273aac]
 in camel-spring-boot where Henryk seems to be spot on and says he will try to 
find a solution for bus-creation to work better with Spring 4: 
{quote}
You need to refer your custom bus (cxf) in the endpoint URI:
{noformat}from("cxf:/incident?serviceClass=" + IncidentService.class.getName() 
+ "&bus=#cxf"){noformat}

Otherwise Camel will try to create the bus for you. Unfortunately Camel 
refreshes Spring context while creating default bus, what collides a little bit 
with the Spring 4 application lifecycle.

Please try it and let me know how it works. BTW I will use your example as a 
base for Camel+CXF tests. *I will also try to make camel-spring-boot and 
camel-cxf a bit smarter to handle bus registration nicely.*
{quote}

It seems like he has already solved it in 2.16-SNAPSHOT. So this defect will be 
fixed in a future version, but I'm not sure how we should handle it, should 
Henryk label it with correct fix versions or something, or should it just be 
closed?

> NullPointerException when using CXF-component in a spring-boot application 
> with loglevel >= INFO
> ------------------------------------------------------------------------------------------------
>
>                 Key: CAMEL-8570
>                 URL: https://issues.apache.org/jira/browse/CAMEL-8570
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core, camel-cxf, camel-spring-boot
>    Affects Versions: 2.15.0, 2.15.1
>            Reporter: Jakob Thun
>
> I get a NullPointerException when using log-level INFO or finer in a 
> spring-boot application with CXF. 
> The exception is thrown from DefaultCamelContext.java:2449, where it tries to 
> log how many routes have been started.
> I have made an example project to reproduce it, it's available here: 
> https://github.com/jakobthun/spring-boot-camel-cxf-logging-bug
> I have tried with camel version: 2.15.0 & 2.15-SNAPSHOT. Both have the same 
> behaviour.
> +Andrew Block started som analysis:+
> It is running into issues in this code block which is executed at logging 
> level >= INFO 
>         if (log.isInfoEnabled()) { 
>             // count how many routes are actually started 
>             int started = 0; 
>             for (Route route : getRoutes()) { 
>                 if (getRouteStatus(route.getId()).isStarted()) { 
>                     started++; 
>                 } 
>             } 
>             log.info("Total " + getRoutes().size() + " routes, of which " + 
> started + " is started."); 
>             log.info("Apache Camel " + getVersion() + " (CamelContext: " + 
> getName() + ") started in " + TimeUtils.printDuration(stopWatch.taken())); 
>         } 
> The exception occurs when the status for the route is pulled from the route 
> service. It is null and the exception is thrown. The route is initially spun 
> up but then refreshes when the CXF consumer is initialized. 
> Swapping it to test with a direct consumer does not result in a similar 
> situation and startup succeeds at all logging level. 
> It appears the route is not being registered with the route service



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to