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