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
>

Reply via email to