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

Claus Ibsen commented on CAMEL-2635:
------------------------------------

Well you actually have to end the delay as well.

Notice how I use 2 end to end both delay and onException

{code}
                from("direct:start")
                    .onException(Exception.class)
                        .maximumRedeliveries(2)
                        .backOffMultiplier(1.5)
                        .handled(true)
                        .delay(1000)
                            .log("Halting for some time")
                            .to("mock:halt")
                        .end()
                    .end()
                    .to("mock:result");
{code}

> Combining .delay() and .backOffMultiplier() in an errorhandler gives error 
> that is 
> -----------------------------------------------------------------------------------
>
>                 Key: CAMEL-2635
>                 URL: https://issues.apache.org/activemq/browse/CAMEL-2635
>             Project: Apache Camel
>          Issue Type: Bug
>         Environment: version 2.3-SNAPSHOT
>            Reporter: Tarjei Huse
>            Assignee: Claus Ibsen
>            Priority: Minor
>
> When doing the following in a route:
>       .onException(HaltOperationsError.class)
>       
>                       .maximumRedeliveries(10)
>                       .backOffMultiplier(10) // 1 s base      
>                       
>                       .handled(true)
>                       .delay(10)                      
>                       .log("Halting operations for some time")
>                       //.process(new 
> RouteStoppingProccesor("PostProcessorRoute"))
>                       .end()
> I get the following stacktrace:
> ERROR ContextLoader                  - Context initialization failed
> org.apache.camel.RuntimeCamelException: 
> org.apache.camel.FailedToStartRouteException: java.util.NoSuchElementException
>       at 
> org.apache.camel.util.ObjectHelper.wrapRuntimeCamelException(ObjectHelper.java:1075)
>       at 
> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:103)
>       at 
> org.apache.camel.spring.CamelContextFactoryBean.onApplicationEvent(CamelContextFactoryBean.java:652)
>       at 
> org.springframework.context.event.SimpleApplicationEventMulticaster$1.run(SimpleApplicationEventMulticaster.java:78)
>       at 
> org.springframework.core.task.SyncTaskExecutor.execute(SyncTaskExecutor.java:49)
>       at 
> org.springframework.context.event.SimpleApplicationEventMulticaster.multicastEvent(SimpleApplicationEventMulticaster.java:76)
>       at 
> org.springframework.context.support.AbstractApplicationContext.publishEvent(AbstractApplicationContext.java:274)
>       at 
> org.springframework.context.support.AbstractApplicationContext.finishRefresh(AbstractApplicationContext.java:736)
>       at 
> org.springframework.context.support.AbstractApplicationContext.refresh(AbstractApplicationContext.java:383)
>       at 
> org.springframework.web.context.ContextLoader.createWebApplicationContext(ContextLoader.java:255)
>       at 
> org.springframework.web.context.ContextLoader.initWebApplicationContext(ContextLoader.java:199)
>       at 
> org.springframework.web.context.ContextLoaderListener.contextInitialized(ContextLoaderListener.java:45)
>       at 
> org.mortbay.jetty.handler.ContextHandler.startContext(ContextHandler.java:548)
>       at org.mortbay.jetty.servlet.Context.startContext(Context.java:136)
>       at 
> org.mortbay.jetty.webapp.WebAppContext.startContext(WebAppContext.java:1250)
>       at 
> org.mortbay.jetty.handler.ContextHandler.doStart(ContextHandler.java:517)
>       at 
> org.mortbay.jetty.webapp.WebAppContext.doStart(WebAppContext.java:467)
>       at 
> org.mortbay.jetty.plugin.Jetty6PluginWebAppContext.doStart(Jetty6PluginWebAppContext.java:115)
>       at 
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>       at 
> org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
>       at 
> org.mortbay.jetty.handler.ContextHandlerCollection.doStart(ContextHandlerCollection.java:156)
>       at 
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>       at 
> org.mortbay.jetty.handler.HandlerCollection.doStart(HandlerCollection.java:152)
>       at 
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>       at 
> org.mortbay.jetty.handler.HandlerWrapper.doStart(HandlerWrapper.java:130)
>       at org.mortbay.jetty.Server.doStart(Server.java:224)
>       at 
> org.mortbay.component.AbstractLifeCycle.start(AbstractLifeCycle.java:50)
>       at 
> org.mortbay.jetty.plugin.Jetty6PluginServer.start(Jetty6PluginServer.java:132)
>       at 
> org.mortbay.jetty.plugin.AbstractJettyMojo.startJetty(AbstractJettyMojo.java:441)
>       at 
> org.mortbay.jetty.plugin.AbstractJettyMojo.execute(AbstractJettyMojo.java:383)
>       at 
> org.mortbay.jetty.plugin.AbstractJettyRunMojo.execute(AbstractJettyRunMojo.java:210)
>       at 
> org.mortbay.jetty.plugin.Jetty6RunMojo.execute(Jetty6RunMojo.java:184)
>       at 
> org.apache.maven.plugin.DefaultPluginManager.executeMojo(DefaultPluginManager.java:490)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(DefaultLifecycleExecutor.java:694)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeStandaloneGoal(DefaultLifecycleExecutor.java:569)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(DefaultLifecycleExecutor.java:539)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures(DefaultLifecycleExecutor.java:387)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(DefaultLifecycleExecutor.java:348)
>       at 
> org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(DefaultLifecycleExecutor.java:180)
>       at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:328)
>       at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:138)
>       at org.apache.maven.cli.MavenCli.main(MavenCli.java:362)
>       at 
> org.apache.maven.cli.compat.CompatibleMain.main(CompatibleMain.java:60)
>       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>       at 
> sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>       at 
> sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>       at java.lang.reflect.Method.invoke(Method.java:597)
>       at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java:315)
>       at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
>       at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java:430)
>       at org.codehaus.classworlds.Launcher.main(Launcher.java:375)
> Caused by: org.apache.camel.FailedToStartRouteException: 
> java.util.NoSuchElementException
>       at 
> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1044)
>       at 
> org.apache.camel.spring.SpringCamelContext.maybeStart(SpringCamelContext.java:203)
>       at 
> org.apache.camel.spring.SpringCamelContext.onApplicationEvent(SpringCamelContext.java:101)
>       ... 49 more
> Caused by: java.util.NoSuchElementException
>       at java.util.AbstractList$Itr.next(AbstractList.java:350)
>       at 
> org.apache.camel.impl.DefaultCamelContext.start(DefaultCamelContext.java:1028)
>       ... 51 more
> I think this is a minor error, but it would be nice to know if something 
> could be done with it so that the errormessage is easier to understand.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
https://issues.apache.org/activemq/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to