Yes you are right! My mistake....sorry about that.
On Tue, Jun 17, 2008 at 1:15 PM, Sergey Beryozkin
<[EMAIL PROTECTED]> wrote:
> Hi,
>
>> Sergey,
>>
>> yes that last line was wrong. Have corrected it now thanks.
>>
>> What I'm doing is this:
>>
>> ResponseBuilder builder = Response.ok();
>> builder.entity(f);
>> builder.type(media);
>> builder.header("Content-Length", f.length());
>> builder.header("Content-Type", contentType);
>> resp = builder.build();
>>
>> So that last line calls into this:
>>
>> public Response build() {
>> ResponseImpl r = new ResponseImpl(status, entity);
>> MetadataMap<String, Object> m = new MetadataMap<String, Object>();
>> m.putAll(metadata);
>> r.addMetadata(m);
>> reset();
>> return r;
>> }
>>
>> My response object doens't have the entity or header objects i set
>> because the reset() call removes them from the Response object before
>> it is returned.
>
> Hmm... Unless I'm totally confused what happens is that the builder's state
> is reset, not that of the ResponseImpl created in build() ?
>
> Cheers, Sergey
>
>>
>> Am I calling it wrong?
>>
>> Brad.
>>
>> On Tue, Jun 17, 2008 at 10:45 AM, Sergey Beryozkin
>> <[EMAIL PROTECTED]> wrote:
>>>
>>> Hi Brad
>>>
>>> ResponseBuilder.build() should reset its state as per the API JavaDocs...
>>>
>>> I'm not sure why is it causing a problem for you. If you do
>>> Response.ok()
>>>
>>> then it returns a ResponseBuilder
>>>
>>> and then if you do
>>> return Response.ok().type(...).entity(file).build()
>>>
>>> then you should have a copy of the ResponseBuilder state copied to the
>>> instance of ResponseImpl...
>>>
>>> Actually, I see a problem :
>>>
>>>>>> ResponseBuilder builder =
>>>>>> Response.status(HttpURLConnection.HTTP_OK);
>>>>>> builder.entity(f);
>>>>>> builder.type(media);
>>>>>> builder.header("Content-Length", f.length());
>>>>>> resp = Response.ok().build();
>>>
>>> the last line is wrong, it should be
>>> resp = builder.build();
>>>
>>> Hope it helps, Sergey
>>>
>>>
>>>
>>>> Hi Sergey,
>>>>
>>>>
>>>>
>>>> One thing I have found is this:
>>>>
>>>> public Response build() {
>>>> ResponseImpl r = new ResponseImpl(status, entity);
>>>> MetadataMap<String, Object> m = new MetadataMap<String, Object>();
>>>> m.putAll(metadata);
>>>> r.addMetadata(m);
>>>> reset();
>>>> return r;
>>>> }
>>>>
>>>> How would you feel about removing that call to reset()? At the moment
>>>> I set all my response fields and then that overwrites them. Would it
>>>> break anything if I changed it?
>>>>
>>>> Cheers,
>>>> Brad.
>>>
>>> ----------------------------
>>> IONA Technologies PLC (registered in Ireland)
>>> Registered Number: 171387
>>> Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
>>>
>
> ----------------------------
> IONA Technologies PLC (registered in Ireland)
> Registered Number: 171387
> Registered Address: The IONA Building, Shelbourne Road, Dublin 4, Ireland
>