jsr339-experts@jax-rs-spec.java.net

[jsr339-experts] Re: [jax-rs-spec users] Re: ExceptionMappers and WebApplicationExceptions

From: Sergey Beryozkin <sberyozkin_at_talend.com>
Date: Thu, 25 Oct 2012 22:23:36 +0100

On 25/10/12 22:16, Marek Potociar wrote:
> FWIW, what I recall we did agree upon, which is however not yet in the spec is that we will make sure that all internal server-side WAEs will be changed to proper sub-types.

Can you clarify that a bit please ? What would be a difference between
the internal code throwing WebApplicationException(500) and application
code doing the same, as far as mapping either of these instances to a
registered InternalServerErrorException mapper ?

> Similarly, we agreed that on client side, proper sub-type will be thrown based on response error code instead of a generic WAE.
>
That definitely makes sense

> As for your question, I'm not sure it is wise to interfere with application-thrown exceptions. (And I still cannot recall what we decided...)
>
The question is whether some specific treatment is applied to WAE
instances (irrespectively of where they originated from) or not, I've no
strong opinion, in fact I've already implemented what I thought we
might've agreed :-), but that is not important, I can revert, we just
need to agree

Sergey

> Marek
>
> On Oct 25, 2012, at 11:10 PM, Marek Potociar<marek.potociar_at_oracle.com> wrote:
>
>>
>> On Oct 25, 2012, at 10:57 PM, Sergey Beryozkin<sberyozkin_at_talend.com> wrote:
>>
>>> Hi
>>>
>>> I would like to clarify the details of the way WebApplicationExceptions are mapped on the server.
>>>
>>> Here is what I recall we talked about the other day.
>>>
>>> The code throws "new WebApplicationException(404)", and both WebApplicationException and NotFoundException mappers are available.
>>>
>>> Given NotFoundException is effectively WebApplicationException(404),
>>> NotFoundException mapper is chosen.
>>
>> Hmm... are you referring to a specific section in the spec? I cannot recall we agreed on that one, but I may be wrong.
>>
>>>
>>> Similarly, if the code throws "new ServerErrorException(500)" and both
>>> ServerErrorException and InternalServerErrorException mappers are available, InternalServerErrorException gets chosen.
>>>
>>> Is it the way it should work ? This obviously is an exception to the default mapping algorithm, but it appears it is logical given that the runtime understands the relationship between various API exception classes
>>
>> As I said, I don't recall such agreement, but my memory is not flawless... If you see it in the spec, then we did agree on that :) (Which still doesn't mean we didn't if you don't see it there...)
>>
>> Marek
>>
>>>
>>> Cheers. Sergey
>>
>