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

[jsr339-experts] Re: [jax-rs-spec users] Re: Null response entity and writer providers

From: Marek Potociar <marek.potociar_at_oracle.com>
Date: Fri, 15 Mar 2013 12:29:58 +0100

On Mar 13, 2013, at 11:14 PM, Sergey Beryozkin <sberyozkin_at_talend.com> wrote:

> On 13/03/13 14:27, Sergey Beryozkin wrote:
>> On 13/03/13 14:25, Marek Potociar wrote:
>>> I'd say that if there is no entity produced, no writers are invoked
>>> and thus no writer interceptors are invoked. That's analogous to
>>> processing empty inbound messages where the user does not try to
>>> inject or read the entity.
>>>
>> That sounds OK, agreed
>>
> What should ContainerResponseContext return in case of the null response body and the resource method actually invoked, for example,
>
> public Book getBook() {
> throw new SomeException();
> }
>
> Mapper: maps it to Response with a null entity.
>
> The filters are processing this response, should they return 'null' for ContainerResponseContext for getEntityClass/Type/Annotations, or the actual Book type info ?

Annotations should be always set from method.
Type and Class should be only set for non-null results.

HTH,
Marek

> I think it should be 'null' but as usual would appreciate that it is indeed the case
> Sergey
>
>
>> Cheers, Sergey
>>> Marek
>>>
>>> On Mar 13, 2013, at 2:38 PM, Sergey Beryozkin<sberyozkin_at_talend.com>
>>> wrote:
>>>
>>>> Hi
>>>>
>>>> If we have a null response entity (example, with "void" resource
>>>> method return types or Response having no entity set), do writer
>>>> interceptors still get a chance to change it ? I think yes,
>>>> WriterInterceptorContext has a setEntity() method,
>>>>
>>>> but given WriterInterceptor chain delegates eventually to
>>>> MessageBodyWriter, I wonder what is the right answer there.
>>>>
>>>> I guess the runtime should indeed let the writers process Response
>>>> with the empty entity, but stop short of delegating to
>>>> MessageBodyWriter if the response entity is null...
>>>>
>>>> Sergey
>>>