[
https://issues.apache.org/jira/browse/CAMEL-21572?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen resolved CAMEL-21572.
---------------------------------
Resolution: Fixed
Thanks for reporting and the PR
> Camel JBang with --runtime=spring-boot throw NullPointerException
> -----------------------------------------------------------------
>
> Key: CAMEL-21572
> URL: https://issues.apache.org/jira/browse/CAMEL-21572
> Project: Camel
> Issue Type: Bug
> Components: camel-jbang
> Affects Versions: 4.8.2, 4.9.0
> Reporter: Bartosz Popiela
> Priority: Minor
> Fix For: 4.8.3, 4.10.0
>
>
> SetHeader with a simple expression causes NullPointerException to be thrown
> because for runtime other than default (kamelet-main) JBang uses Stub instead
> of the actual component which produces null.
> {code:java}
> PS> jbang "-Dcamel.jbang.version=4.8.0" camel@apache/camel run *
> --runtime=spring-boot
> org.apache.camel.FailedToCreateRouteException: Failed to create route
> route-603e at: >>> SetHeader[SampleUUID, simple{This is a sample UUID:
> ${bean:type:java.util.UUID?method=randomUUID}}] <<< in route:
> Route(route-603e)[From[timer:oneTimeTimer?delay=0&repeatCoun... because of
> Cannot invoke "Object.toString()" because "value" is null
> at
> org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:235)
> at
> org.apache.camel.reifier.RouteReifier.createRoute(RouteReifier.java:86)
> at
> org.apache.camel.impl.DefaultModelReifierFactory.createRoute(DefaultModelReifierFactory.java:49)
> at
> org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:726)
> at
> org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:592)
> at
> org.apache.camel.impl.engine.AbstractCamelContext.doInit(AbstractCamelContext.java:2433)
> at
> org.apache.camel.support.service.BaseService.init(BaseService.java:85)
> at
> org.apache.camel.impl.engine.AbstractCamelContext.init(AbstractCamelContext.java:2068)
> at
> org.apache.camel.support.service.BaseService.start(BaseService.java:115)
> at
> org.apache.camel.impl.engine.AbstractCamelContext.start(AbstractCamelContext.java:2087)
> at
> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:211)
> at org.apache.camel.main.KameletMain.doStart(KameletMain.java:373)
> at
> org.apache.camel.support.service.BaseService.start(BaseService.java:123)
> at
> org.apache.camel.dsl.jbang.core.commands.Run.runKameletMain(Run.java:1348)
> at org.apache.camel.dsl.jbang.core.commands.Run.run(Run.java:864)
> at
> org.apache.camel.dsl.jbang.core.commands.Run.runExport(Run.java:330)
> at
> org.apache.camel.dsl.jbang.core.commands.ExportBaseCommand.runSilently(ExportBaseCommand.java:318)
> at
> org.apache.camel.dsl.jbang.core.commands.ExportSpringBoot.export(ExportSpringBoot.java:71)
> at
> org.apache.camel.dsl.jbang.core.commands.Run.runSpringBoot(Run.java:988)
> at org.apache.camel.dsl.jbang.core.commands.Run.run(Run.java:416)
> at org.apache.camel.dsl.jbang.core.commands.Run.doCall(Run.java:319)
> at
> org.apache.camel.dsl.jbang.core.commands.CamelCommand.call(CamelCommand.java:71)
> at
> org.apache.camel.dsl.jbang.core.commands.CamelCommand.call(CamelCommand.java:37)
> at picocli.CommandLine.executeUserObject(CommandLine.java:2045)
> at picocli.CommandLine.access$1500(CommandLine.java:148)
> at
> picocli.CommandLine$RunLast.executeUserObjectOfLastSubcommandWithSameParent(CommandLine.java:2465)
> at picocli.CommandLine$RunLast.handle(CommandLine.java:2457)
> at picocli.CommandLine$RunLast.handle(CommandLine.java:2419)
> at
> picocli.CommandLine$AbstractParseResultHandler.execute(CommandLine.java:2277)
> at picocli.CommandLine$RunLast.execute(CommandLine.java:2421)
> at picocli.CommandLine.execute(CommandLine.java:2174)
> at
> org.apache.camel.dsl.jbang.core.commands.CamelJBangMain.run(CamelJBangMain.java:173)
> at
> org.apache.camel.dsl.jbang.core.commands.CamelJBangMain.run(CamelJBangMain.java:62)
> at main.CamelJBang.main(CamelJBang.java:36)
> Caused by: java.lang.NullPointerException: Cannot invoke "Object.toString()"
> because "value" is null
> at
> org.apache.camel.support.builder.ExpressionBuilder$62.init(ExpressionBuilder.java:2126)
> at
> org.apache.camel.reifier.language.ExpressionReifier.createExpression(ExpressionReifier.java:183)
> at
> org.apache.camel.reifier.AbstractReifier.createExpression(AbstractReifier.java:119)
> at
> org.apache.camel.reifier.SetHeaderReifier.createProcessor(SetHeaderReifier.java:37)
> at
> org.apache.camel.reifier.ProcessorReifier.makeProcessor(ProcessorReifier.java:893)
> at
> org.apache.camel.reifier.ProcessorReifier.addRoutes(ProcessorReifier.java:629)
> at
> org.apache.camel.reifier.RouteReifier.doCreateRoute(RouteReifier.java:231)
> ... 33 more
> {code}
> {code:yaml}
> - route:
> id: route-603e
> nodePrefixId: route-b8d
> from:
> id: from-6ff9
> uri: timer
> parameters:
> delay: "0"
> timerName: oneTimeTimer
> repeatCount: "1"
> steps:
> - setHeader:
> id: setHeader-c0db
> name: SampleUUID
> expression:
> simple:
> id: simple-536b
> expression: >-
> This is a sample UUID:
> ${bean:type:java.util.UUID?method=randomUUID}
> - log:
> id: log-3213
> message: ${header.SampleUUID}
> {code}
--
This message was sent by Atlassian Jira
(v8.20.10#820010)