Thanks for the update.

About 1.5.1 there is a topic on the camel-dev list started by Hadrian.
So if we keep this topic warm I am sure we will get a RC build sooner.

/Claus Ibsen
Apache Camel Committer
Blog: http://davsclaus.blogspot.com/



On Thu, Dec 4, 2008 at 3:33 PM, Martin Gilday <[EMAIL PROTECTED]> wrote:
> Hi Claus,
> At the moment we have have a work around which uses a processor instead
> of a convertBody.  In the processor we simply call the convert method.
> If the processor re-throws the exception that the converter threw then
> the onException in 1.5.0 works fine.
>
> I will update to the snapshot and see if it works using the converter
> directly.  Is there an estimate of when we may see a 1.5.1?
>
> Thanks,
> Martin
>
>
> ----- Original message -----
> From: "Claus Ibsen" <[EMAIL PROTECTED]>
> To: [email protected]
> Date: Thu, 4 Dec 2008 14:29:13 +0100
> Subject: Re: Handling converter failure
>
> Hi Martin
>
> I have commited a fix to 2.0 and will merge to 1.5.1
>
> You are welcome to test on your system if it works for you now.
>
>
> /Claus Ibsen
> Apache Camel Committer
> Blog: http://davsclaus.blogspot.com/
>
>
>
> On Thu, Dec 4, 2008 at 11:16 AM, Claus Ibsen <[EMAIL PROTECTED]>
> wrote:
>> Hi Martin
>>
>> Yeah the was my initial hunch that RuntimeCamelException was wrapping it.
>>
>> Create a JIRA. It's the DefaultExceptionPolicyStrategy that should be
>> enhanced to check the caused exception as well. Especially if it's a
>> RuntimeCamelException that is just a wrapper.
>>
>>
>>
>> /Claus Ibsen
>> Apache Camel Committer
>> Blog: http://davsclaus.blogspot.com/
>>
>>
>>
>> On Thu, Dec 4, 2008 at 11:09 AM, Martin Gilday <[EMAIL PROTECTED]> wrote:
>>> Hi Claus,
>>>
>>> Exception.class works.  So does RuntimeCamelException.class.  When you
>>> look at the log you can see that the IllegalArgumentException is being
>>> wrapped by the RuntimeCamelException, so the onException handler is
>>> probably getting given a RCE and not checking the root cause.  I will
>>> create a JIRA.
>>>
>>> Thanks,
>>> Martin
>>>
>>>
>>> ----- Original message -----
>>> From: "Claus Ibsen" <[EMAIL PROTECTED]>
>>> To: [email protected]
>>> Date: Thu, 4 Dec 2008 10:58:23 +0100
>>> Subject: Re: Handling converter failure
>>>
>>> Hi
>>>
>>> Could you try with onException(Exception.class) just to see if it
>>> kicks-in then.
>>> Otherwise we should make sure it catches any exception thrown whatever
>>> happened during processing of the exchange.
>>>
>>> Feel free to create a ticket in JIRA with your unit test so we can try
>>> to get it fixed in 1.5.1.
>>>
>>>
>>> /Claus Ibsen
>>> Apache Camel Committer
>>> Blog: http://davsclaus.blogspot.com/
>>>
>>>
>>>
>>> On Thu, Dec 4, 2008 at 10:42 AM, Martin Gilday <[EMAIL PROTECTED]>
>>> wrote:
>>>> How do you deal with exceptions thrown by a converter?  I have set up
>>>> some onException clauses but they only seem to kick in if an exception
>>>> is thrown from a endpoint or a processor.
>>>>
>>>> When I run the following code I can see it retrying the default number
>>>> of times and then the DeadLetterChannel kick in.  My mock assertions
>>>> fail as neither queue recieves any messages.  I can see the sysout in
>>>> the converter being printed, so it is being invoked.
>>>> Am I doing something incorrect here?  I would have thought that there
>>>> was a strong posibility for a converter to need to throw an exception,
>>>> in my case here it would be if the message was missing mandatory fields
>>>> such as telephone number or email.
>>>>
>>>>
>>>> /////Converter
>>>> @Converter
>>>> public static LocalDateTime toLocalDateTime(final Object localDateTime)
>>>> {
>>>>  System.out.println("Converting to local date time");
>>>>  throw new IllegalArgumentException("Bad data");
>>>> }
>>>>
>>>> /////Routes
>>>> Routes routes = new RouteBuilder() {
>>>>
>>>>  @Override
>>>>  public void configure() throws Exception {
>>>>    
>>>> onException(IllegalArgumentException.class).handled(true).to("mock:exception");
>>>>    from("direct:test").convertBodyTo(LocalDateTime.class).to("mock:end");
>>>>  }
>>>> };
>>>>
>>>>
>>>> /////Test
>>>> MockEndpoint endpoint = (MockEndpoint)
>>>> camelContext.getEndpoint("mock:end");
>>>> endpoint.expectedMessageCount(0);
>>>> MockEndpoint endpoint2 = (MockEndpoint)
>>>> camelContext.getEndpoint("mock:exception");
>>>> endpoint2.expectedMessageCount(1);
>>>>
>>>> camelContext.createProducerTemplate().sendBody("direct:test", "test");
>>>>
>>>> endpoint.assertIsSatisfied();
>>>> endpoint2.assertIsSatisfied();
>>>>
>>>
>>
>

Reply via email to