cxf-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Sergey Beryozkin (JIRA)" <>
Subject [jira] [Resolved] (CXF-5167) HEAD operation implementation is not compliant with specification
Date Mon, 05 Aug 2013 16:22:47 GMT


Sergey Beryozkin resolved CXF-5167.

       Resolution: Fixed
    Fix Version/s: 2.7.7
         Assignee: Sergey Beryozkin
> HEAD operation implementation is not compliant with specification
> -----------------------------------------------------------------
>                 Key: CXF-5167
>                 URL:
>             Project: CXF
>          Issue Type: Bug
>          Components: JAX-RS
>    Affects Versions: 2.7.5
>            Reporter: Antonio Sargento
>            Assignee: Sergey Beryozkin
>             Fix For: 3.0.0, 2.7.7
> The implementation of HEAD operation is not compliant with the HTTP 1.1 specification.
> {quote}
> 9.4 HEAD
> The HEAD method is identical to GET except that the server MUST NOT return a message-body
in the response. The metainformation contained in the HTTP headers in response to a HEAD request
SHOULD be identical to the information sent in response to a GET request. This method can
be used for obtaining metainformation about the entity implied by the request without transferring
the entity-body itself. This method is often used for testing hypertext links for validity,
accessibility, and recent modification.
> The response to a HEAD request MAY be cacheable in the sense that the information contained
in the response MAY be used to update a previously cached entity from that resource. If the
new field values indicate that the cached entity differs from the current entity (as would
be indicated by a change in Content-Length, Content-MD5, ETag or Last-Modified), then the
cache MUST treat the cache entry as stale.
> {quote}
> Now, since the HEAD response doesn't have an body entity, the Content-lenght is equal
to zero and the mime-type is set to text/plain.
> I think that the problem is due the following code in class org.apache.cxf.jaxrs.interceptor.JAXRSOutInterceptor
(lines 228 - 236) 
> {code}
> // Write the entity
> entity = InjectionUtils.getEntity(response.getEntity());
> setResponseStatus(message, getActualStatus(response.getStatus(), entity));
> if (entity == null) {
>    responseHeaders.putSingle(HttpHeaders.CONTENT_LENGTH, "0");
>    responseHeaders.remove(HttpHeaders.CONTENT_TYPE);
>    message.remove(Message.CONTENT_TYPE);
>    return;
> }
> {code}

This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see:

View raw message