users@jax-rs-spec.java.net

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

From: Sergey Beryozkin <sberyozkin_at_talend.com>
Date: Fri, 15 Mar 2013 12:28:19 +0000

On 15/03/13 11:29, Marek Potociar wrote:
>
> 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.
>
Yes, it helps, thanks. This is actually how I implement it now, though
the user can reset the method-level annotations from the response filter

Cheers, Sergey
> 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
>>>>
>