You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cxf.apache.org by se...@apache.org on 2013/04/24 15:04:34 UTC
svn commit: r1471394 - in /cxf/trunk/rt/frontend/jaxrs/src:
main/java/org/apache/cxf/jaxrs/impl/ResponseBuilderImpl.java
test/java/org/apache/cxf/jaxrs/impl/ResponseBuilderImplTest.java
Author: sergeyb
Date: Wed Apr 24 13:04:33 2013
New Revision: 1471394
URL: http://svn.apache.org/r1471394
Log:
[CXF-4985] If response entity is null and the status has not ben explicitly set - report 204
Modified:
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ResponseBuilderImpl.java
cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/ResponseBuilderImplTest.java
Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ResponseBuilderImpl.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ResponseBuilderImpl.java?rev=1471394&r1=1471393&r2=1471394&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ResponseBuilderImpl.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/ResponseBuilderImpl.java Wed Apr 24 13:04:33 2013
@@ -47,6 +47,7 @@ import org.apache.cxf.phase.PhaseInterce
public final class ResponseBuilderImpl extends ResponseBuilder implements Cloneable {
private int status = 200;
+ private boolean statusSet;
private Object entity;
private MultivaluedMap<String, Object> metadata = new MetadataMap<String, Object>();
private Annotation[] annotations;
@@ -61,6 +62,9 @@ public final class ResponseBuilderImpl e
}
public Response build() {
+ if (entity == null && !statusSet) {
+ status = 204;
+ }
ResponseImpl r = new ResponseImpl(status);
MetadataMap<String, Object> m =
new MetadataMap<String, Object>(metadata, false, true);
@@ -75,6 +79,7 @@ public final class ResponseBuilderImpl e
throw new IllegalArgumentException("Illegal status value : " + s);
}
status = s;
+ statusSet = true;
return this;
}
Modified: cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/ResponseBuilderImplTest.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/ResponseBuilderImplTest.java?rev=1471394&r1=1471393&r2=1471394&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/ResponseBuilderImplTest.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/test/java/org/apache/cxf/jaxrs/impl/ResponseBuilderImplTest.java Wed Apr 24 13:04:33 2013
@@ -45,6 +45,22 @@ import org.junit.Test;
public class ResponseBuilderImplTest extends Assert {
@Test
+ public void testStatusSet() throws Exception {
+ assertEquals(200, Response.ok().build().getStatus());
+ assertEquals(200, new ResponseBuilderImpl().status(200).build().getStatus());
+ }
+
+ @Test
+ public void testStatusNotSetNoEntity() throws Exception {
+ assertEquals(204, new ResponseBuilderImpl().build().getStatus());
+ }
+
+ @Test
+ public void testStatusNotSetEntitySet() throws Exception {
+ assertEquals(200, new ResponseBuilderImpl().entity("").build().getStatus());
+ }
+
+ @Test
public void testAllow() throws Exception {
MetadataMap<String, Object> m = new MetadataMap<String, Object>();
m.add("Allow", "HEAD");