> The only thing the runtime can do is to catch the exception, check if it is an
> instance of WebApplicationException and if yes - getResponse on it, which is
> exactly what the mapper can do; and I think if we did it it would probably be
> not-portable...

Than let is leave as it is - I am convinced ;)

Cheers,
Andrei.

> -----Original Message-----
> From: Sergey Beryozkin [mailto:[email protected]]
> Sent: Dienstag, 29. Januar 2013 14:50
> To: [email protected]
> Subject: Re: [CXF.REST] javax.ws.rs exception throwing from
> ExceptionMapper
> 
> Hi Andrei
> On 29/01/13 13:44, Andrei Shakirin wrote:
> > Hi Sergei,
> >
> >> -----Original Message-----
> >> From: Sergey Beryozkin [mailto:[email protected]]
> >> Sent: Dienstag, 29. Januar 2013 14:16
> >> To: [email protected]
> >> Subject: Re: [CXF.REST] javax.ws.rs exception throwing from
> >> ExceptionMapper
> >>
> >> Hi Andrei
> >> On 29/01/13 12:51, Andrei Shakirin wrote:
> >>> Hi,
> >>>
> >>> Would like to discuss the following:
> >>> CXF Rest service implementation processes javax.ws.rs
> >> (NotFoaundException, BadRequestException) exceptions correctly.
> >>> But if these exception are thrown form exception mapper, client
> >>> always
> >> receive InternalServerError exception.
> >>>
> >>> Is this behaviour specified by JAX-RS?
> >>
> >> I'm actually not seeing anything specific in the text, but I think at
> >> the moment that CXF is correct, because otherwise the question is how
> >> to map these rethrown exceptions and we can have an infinity loop -
> >> something the spec talks about, for example, an exception mapper sets
> >> a Response entity - next MessageBodyWriter throws the exception again
> >> - this 500, so I think it is 500 in this case too
> >>
> >
> > Hmm ... is it possible not to map exceptions thrown by ExceptionMapper
> again to avoid loops?
> > Is there any possibility to distinguish them?
> >
> The only thing the runtime can do is to catch the exception, check if it is an
> instance of WebApplicationException and if yes - getResponse on it, which is
> exactly what the mapper can do; and I think if we did it it would probably be
> not-portable...
> 
> >>> I find convenient in some cases just to re-throw javax.ws.rs
> >>> exceptions
> >> from mapper and not build Response manually.
> >>>
> >> Sure, in this case it is easy :-), all WebApplicationException
> >> instances have
> >> getResponse() method - so simply use exception.getResponse() - it
> >> will have a proper status set, etc..
> >
> > Sure, if response is set. But if it is null? Mapper must build response
> manually, set correct response code - not a big deal, but anyway ...
> >
> For WebApplicationExceptions it is always set,
> 
> as for the custom non WAE-exceptions - only the mappers know how to map
> them to anything but 500 :-)
> 
> Cheers, Sergey
> 
> > Regards,
> > Andrei.
> >
> >>
> >> HTH, Sergey
> >>
> >>> WDYT?
> >>>
> >>> Regards,
> >>> Andrei.
> >>>
> >>>
> >>>

Reply via email to