[ https://issues.apache.org/jira/browse/CAMEL-11234?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Claus Ibsen resolved CAMEL-11234. --------------------------------- Resolution: Fixed Assignee: Claus Ibsen Thanks for the PR > NullPointerException while trying to get the Route Status on startup > -------------------------------------------------------------------- > > Key: CAMEL-11234 > URL: https://issues.apache.org/jira/browse/CAMEL-11234 > Project: Camel > Issue Type: Bug > Components: camel-core > Affects Versions: 2.18.2 > Environment: Spring Boot 1.5.1 > Reporter: Raul Astudillo Markoch > Assignee: Claus Ibsen > Priority: Minor > Fix For: 2.18.4, 2.19.1, 2.20.0 > > > Using a class that extends EventNotifierSupport, we advise a route by adding > a processor in between two outputs. > It looks like this > from().processor().bean().processor().processor(advised),to(). > To add the adviceWith processor we listen to the routeAdded event and advice > the route. > While Camel is starting up there is a line (line number 2966) in the > DefaultCamelContext that loops through the available routes for later logging > the amount of routes started in the context. This calls for a method ( > if(this.getRouteStatus(route.getId()).isStarted()) { ) that may return null > if there are no routes running while this is being done, so IT WILL throw a > NullPointerException. > Since I'm advising routes while the context is being started, the route gets > stopped and restarted, meanwhile the aforementioned method gets called and > BUM.... NullPointerException. > Here's the stacktrace: > org.apache.camel.spring.boot.CamelSpringBootInitializationException: > java.lang.NullPointerException > at > org.apache.camel.spring.boot.RoutesCollector.onApplicationEvent(RoutesCollector.java:124) > ~[camel-spring-boot-2.18.2.jar:2.18.2] > at > org.apache.camel.spring.boot.RoutesCollector.onApplicationEvent(RoutesCollector.java:41) > ~[camel-spring-boot-2.18.2.jar:2.18.2] > at > org.springframework.context.event.SimpleApplicationEventMulticaster.invokeListener(SimpleApplicationEventMulticaster.java:167) > ~[spring-context-4.3.6.RELEASE.jar:4.3.6.RELEASE] > at > org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:139) > ~[spring-context-4.3.6.RELEASE.jar:4.3.6.RELEASE] > at > org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:383) > ~[spring-context-4.3.6.RELEASE.jar:4.3.6.RELEASE] > at > org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:337) > ~[spring-context-4.3.6.RELEASE.jar:4.3.6.RELEASE] > at > org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:882) > ~[spring-context-4.3.6.RELEASE.jar:4.3.6.RELEASE] > at > org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.finishRefresh(EmbeddedWebApplicationContext.java:144) > ~[spring-boot-1.5.1.RELEASE.jar:1.5.1.RELEASE] > at > org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:545) > ~[spring-context-4.3.6.RELEASE.jar:4.3.6.RELEASE] > at > org.springframework.boot.context.embedded.EmbeddedWebApplicationContext.refresh(EmbeddedWebApplicationContext.java:122) > ~[spring-boot-1.5.1.RELEASE.jar:1.5.1.RELEASE] > at > org.springframework.boot.SpringApplication.refresh(SpringApplication.java:737) > [spring-boot-1.5.1.RELEASE.jar:1.5.1.RELEASE] > at > org.springframework.boot.SpringApplication.refreshContext(SpringApplication.java:370) > [spring-boot-1.5.1.RELEASE.jar:1.5.1.RELEASE] > at > org.springframework.boot.SpringApplication.run(SpringApplication.java:314) > [spring-boot-1.5.1.RELEASE.jar:1.5.1.RELEASE] > at org.springframework.boot.SpringApplication$run.call(Unknown Source) > [spring-boot-1.5.1.RELEASE.jar:1.5.1.RELEASE] > at > org.codehaus.groovy.runtime.callsite.CallSiteArray.defaultCall(CallSiteArray.java:48) > [groovy-all-2.4.7.jar:2.4.7] > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:113) > [groovy-all-2.4.7.jar:2.4.7] > at > org.codehaus.groovy.runtime.callsite.AbstractCallSite.call(AbstractCallSite.java:125) > [groovy-all-2.4.7.jar:2.4.7] > at com.my.app.ApplicationMain.main(ApplicationMain.groovy:12) [main/:?] > Caused by: java.lang.NullPointerException > at > org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:2943) > ~[camel-core-2.18.2.jar:2.18.2] > at > org.apache.camel.spring.boot.RoutesCollector.maybeStart(RoutesCollector.java:141) > ~[camel-spring-boot-2.18.2.jar:2.18.2] > at > org.apache.camel.spring.boot.RoutesCollector.onApplicationEvent(RoutesCollector.java:116) > ~[camel-spring-boot-2.18.2.jar:2.18.2] > ... 17 more -- This message was sent by Atlassian JIRA (v6.3.15#6346)