Hi I have pushed a fix for the master, 2.19.x and 2.18.x branches. I ran a complete test on master and ensured it all still works, and the recursion problem is only in those unit tests that triggered those. We log a special WARN when the circular error-handler is detected.
On Thu, May 11, 2017 at 1:19 PM, Claus Ibsen <claus.ib...@gmail.com> wrote: > Hi > > Okay I pushed some code changes to that branch, and am currently > testing those on the latest master branch before merging. > > > On Wed, May 10, 2017 at 4:58 PM, Claus Ibsen <claus.ib...@gmail.com> wrote: >> Hi >> >> Just an update, so I got a potential fix that makes all tests pass in >> camel-core if I run them with mvn clean install, but for some odd >> reason there is one unit test that fails if I run it individually: >> ErrorOccuredInOnExceptionRoute >> >> Will continue tomorrow >> >> On Wed, May 10, 2017 at 11:02 AM, Claus Ibsen <claus.ib...@gmail.com> wrote: >>> Hi >>> >>> Yeah so the infinite recursion is surely a bug. However its only >>> triggered when you >>> >>> - use global onException >>> - call a direct route from the onException >>> - causes a 2nd exception >>> >>> When using route scoped onException this does not happen as the error >>> handler works a little bit different when its route scoped vs global >>> scoped. In route scope the FatalFallbackErrorHandler weighs in and >>> detect the 2nd exception and prevents the recursion. >>> >>> I have an improved patch in the works based on your commits. Also I am >>> making sure the two exceptions are not lost, so you have that >>> information in the stacktrace being logged, and in the right order >>> (new -> old). >>> >>> >>> >>> On Tue, May 9, 2017 at 12:57 PM, Claus Ibsen <claus.ib...@gmail.com> wrote: >>>> Hi >>>> >>>> I ought to have cleared up some room for me to have time tomorrow >>>> morning to take a look. This sort of thing requires a "calm period" >>>> where you are not disturbed. >>>> >>>> >>>> >>>> On Mon, May 8, 2017 at 2:37 PM, Christian Schneider >>>> <ch...@die-schneider.net> wrote: >>>>> Hi Claus, >>>>> >>>>> that is fine. I was hoping for you to take look. >>>>> >>>>> Christian >>>>> >>>>> >>>>> On 08.05.2017 14:30, Claus Ibsen wrote: >>>>>> >>>>>> On Mon, May 8, 2017 at 1:57 PM, Christian Schneider >>>>>> <ch...@die-schneider.net> wrote: >>>>>>> >>>>>>> Hi Zoran, >>>>>>> >>>>>>> I have merged your improvements into the branch. >>>>>>> >>>>>>> I will wait one more day for feedback and then merge into master. >>>>>>> >>>>>> Can you wait some longer. Some of us have been traveling all last week >>>>>> and are back in our office with jet-lag and a ton of email to catch >>>>>> up. >>>>>> >>>>>> I will take a look at this later this week. >>>>>> >>>>>> >>>>>> >>>>>>> Christian >>>>>>> >>>>>>> >>>>>>> On 08.05.2017 11:57, Zoran Regvart wrote: >>>>>>>> >>>>>>>> Hi Christian, >>>>>>>> I think that your initial example of the recursion is a simpler >>>>>>>> example for the unit test, so with that and a minor reformat of the >>>>>>>> source code I've committed this to my GitHub fork: >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> https://github.com/zregvart/camel/commit/d76f75ea46b55b16af9e0ae05bfbb3df271545bd >>>>>>>> >>>>>>>> have a look, thanks :) >>>>>>>> >>>>>>>> zoran >>>>>>>> >>>>>>>> On Fri, May 5, 2017 at 5:43 PM, Christian Schneider >>>>>>>> <ch...@die-schneider.net> wrote: >>>>>>>>> >>>>>>>>> I have pushed a test and a possible fix to >>>>>>>>> https://github.com/apache/camel/tree/CAMEL-11229 >>>>>>>>> >>>>>>>>> As the code around error handling is pretty difficult to understand I >>>>>>>>> am >>>>>>>>> not >>>>>>>>> sure if my solution is good. I would be happy if someone could review >>>>>>>>> my >>>>>>>>> change. >>>>>>>>> >>>>>>>>> Christian >>>>>>>>> >>>>>>>>> >>>>>>>>> On 04.05.2017 17:30, Christian Schneider wrote: >>>>>>>>>> >>>>>>>>>> I have the routes below. When I send a message to direct:test I get >>>>>>>>>> an >>>>>>>>>> infinite recursion of exceptions. >>>>>>>>>> The reason is that the onException handler also seems to be called >>>>>>>>>> for >>>>>>>>>> the >>>>>>>>>> direct:handle_er that is called when handling the >>>>>>>>>> first exception. In case such a handler route also throws an >>>>>>>>>> exception >>>>>>>>>> the >>>>>>>>>> recursion happens. >>>>>>>>>> >>>>>>>>>> Is this expected or a bug? >>>>>>>>>> If it is not a bug what do we recommend our users to avoid the >>>>>>>>>> recursion? >>>>>>>>>> >>>>>>>>>> onException(Throwable.class) >>>>>>>>>> .to("direct:handle_er"); >>>>>>>>>> >>>>>>>>>> from("direct:test") >>>>>>>>>> .throwException(new RuntimeException()) >>>>>>>>>> .to("log:test2"); >>>>>>>>>> >>>>>>>>>> from("direct:handle_er") >>>>>>>>>> .throwException(new RuntimeException()); >>>>>>>>>> >>>>>>>>>> See also https://issues.apache.org/jira/browse/CAMEL-11229 >>>>>>>>>> >>>>>>>>>> Christian >>>>>>>>>> >>>>>>>>> -- >>>>>>>>> Christian Schneider >>>>>>>>> http://www.liquid-reality.de >>>>>>>>> >>>>>>>>> Open Source Architect >>>>>>>>> http://www.talend.com >>>>>>>>> >>>>>>>> >>>>>>> >>>>>>> -- >>>>>>> Christian Schneider >>>>>>> http://www.liquid-reality.de >>>>>>> >>>>>>> Open Source Architect >>>>>>> http://www.talend.com >>>>>>> >>>>>> >>>>>> >>>>> >>>>> >>>>> -- >>>>> Christian Schneider >>>>> http://www.liquid-reality.de >>>>> >>>>> Open Source Architect >>>>> http://www.talend.com >>>>> >>>> >>>> >>>> >>>> -- >>>> Claus Ibsen >>>> ----------------- >>>> http://davsclaus.com @davsclaus >>>> Camel in Action 2: https://www.manning.com/ibsen2 >>> >>> >>> >>> -- >>> Claus Ibsen >>> ----------------- >>> http://davsclaus.com @davsclaus >>> Camel in Action 2: https://www.manning.com/ibsen2 >> >> >> >> -- >> Claus Ibsen >> ----------------- >> http://davsclaus.com @davsclaus >> Camel in Action 2: https://www.manning.com/ibsen2 > > > > -- > Claus Ibsen > ----------------- > http://davsclaus.com @davsclaus > Camel in Action 2: https://www.manning.com/ibsen2 -- Claus Ibsen ----------------- http://davsclaus.com @davsclaus Camel in Action 2: https://www.manning.com/ibsen2