Quartz binding name containing an underscore character causes "Trigger name cannot be null or empty" exception during deployment of SwitchYard application
Issue
- The configured
cronexpression is written usingSwitchYard'sQuartz binding. However the interesting thing is, it causes the following exception while deploying theSwitchYardapplication inFSW 6.0.0container if theQuartz bindingname contains anunderscorecharacter (likeSY_Quartz_Binding) .
07:14:11,448 ERROR [org.jboss.msc.service.fail] (MSC service thread 1-1) MSC000001: Failed to start service jboss.deployment.unit."SY_Quartz_Binding.jar".SwitchYardService: org.jboss.msc.service.StartException in service jboss.deployment.unit."SY_Quartz_Binding.jar".SwitchYardService: org.switchyard.SwitchYardException: org.apache.camel.FailedToCreateRouteException: Failed to create route TestModel/ErrorSYQuartzService@SY_Quartz_Binding#1626837044: Route[[From[quartz://SY_Quartz_Binding?cron=0/10%20*%20*%20*%20*%... because of Failed to resolve endpoint: quartz://SY_Quartz_Binding?cron=0%2F10+*+*+*+*+%3F due to: Trigger name cannot be null or empty.
at org.switchyard.as7.extension.services.SwitchYardService.start(SwitchYardService.java:80)
at org.jboss.msc.service.ServiceControllerImpl$StartTask.startService(ServiceControllerImpl.java:1811) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
at org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1746) [jboss-msc-1.0.4.GA-redhat-1.jar:1.0.4.GA-redhat-1]
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:895) [rt.jar:1.6.0_85]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:918) [rt.jar:1.6.0_85]
at java.lang.Thread.run(Thread.java:682) [rt.jar:1.6.0_85]
Caused by: org.switchyard.SwitchYardException: org.apache.camel.FailedToCreateRouteException: Failed to create route TestModel/ErrorSYQuartzService@SY_Quartz_Binding#1626837044: Route[[From[quartz://SY_Quartz_Binding?cron=0/10%20*%20*%20*%20*%... because of Failed to resolve endpoint: quartz://SY_Quartz_Binding?cron=0%2F10+*+*+*+*+%3F due to: Trigger name cannot be null or empty.
at org.switchyard.component.camel.common.handler.InboundHandler.<init>(InboundHandler.java:69)
at org.switchyard.component.camel.common.deploy.BaseBindingActivator.createInboundHandler(BaseBindingActivator.java:51)
at org.switchyard.component.camel.common.deploy.BaseBindingActivator.activateBinding(BaseBindingActivator.java:43)
at org.switchyard.deploy.internal.Deployment.deployServiceBindings(Deployment.java:618)
at org.switchyard.deploy.internal.Deployment.start(Deployment.java:145)
at org.switchyard.as7.extension.deployment.SwitchYardDeployment.start(SwitchYardDeployment.java:101)
at org.switchyard.as7.extension.services.SwitchYardService.start(SwitchYardService.java:73)
... 5 more
Caused by: org.apache.camel.FailedToCreateRouteException: Failed to create route TestModel/ErrorSYQuartzService@SY_Quartz_Binding#1626837044: Route[[From[quartz://SY_Quartz_Binding?cron=0/10%20*%20*%20*%20*%... because of Failed to resolve endpoint: quartz://SY_Quartz_Binding?cron=0%2F10+*+*+*+*+%3F due to: Trigger name cannot be null or empty.
at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:177)
at org.apache.camel.impl.DefaultCamelContext.startRoute(DefaultCamelContext.java:731)
at org.apache.camel.impl.DefaultCamelContext.startRouteDefinitions(DefaultCamelContext.java:1803)
at org.apache.camel.impl.DefaultCamelContext.addRouteDefinitions(DefaultCamelContext.java:675)
at org.apache.camel.impl.DefaultCamelContext.addRouteDefinition(DefaultCamelContext.java:680)
at org.switchyard.component.camel.common.handler.InboundHandler.<init>(InboundHandler.java:67)
... 11 more
Caused by: org.apache.camel.ResolveEndpointFailedException: Failed to resolve endpoint: quartz://SY_Quartz_Binding?cron=0%2F10+*+*+*+*+%3F due to: Trigger name cannot be null or empty.
at org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:488)
at org.apache.camel.util.CamelContextHelper.getMandatoryEndpoint(CamelContextHelper.java:61)
at org.apache.camel.model.RouteDefinition.resolveEndpoint(RouteDefinition.java:187)
at org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:108)
at org.apache.camel.impl.DefaultRouteContext.resolveEndpoint(DefaultRouteContext.java:114)
at org.apache.camel.model.FromDefinition.resolveEndpoint(FromDefinition.java:72)
at org.apache.camel.impl.DefaultRouteContext.getEndpoint(DefaultRouteContext.java:90)
at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:857)
at org.apache.camel.model.RouteDefinition.addRoutes(RouteDefinition.java:172)
... 16 more
Caused by: java.lang.IllegalArgumentException: Trigger name cannot be null or empty.
at org.quartz.Trigger.setName(Trigger.java:366)
at org.apache.camel.component.quartz.QuartzComponent.createEndpoint(QuartzComponent.java:159)
at org.apache.camel.component.quartz.QuartzComponent.createEndpoint(QuartzComponent.java:54)
at org.apache.camel.impl.DefaultComponent.createEndpoint(DefaultComponent.java:91)
at org.apache.camel.impl.DefaultCamelContext.getEndpoint(DefaultCamelContext.java:469)
... 24 more
- Is this a known issue? Is there a workaround for it?
Environment
- Red Hat JBoss Fuse Service Works (FSW)
- 6.0.0
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase of over 48,000 articles and solutions.
Welcome! Check out the Getting Started with Red Hat page for quick tours and guides for common tasks.
