You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@camel.apache.org by "Jakob Thun (JIRA)" <ji...@apache.org> on 2015/04/01 02:24:54 UTC

[jira] [Commented] (CAMEL-8570) NullPointerException when using CXF-component in a spring-boot application with loglevel >= INFO

    [ 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)