You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hc.apache.org by ol...@apache.org on 2006/08/13 22:00:53 UTC
svn commit: r431222 - in
/jakarta/httpcomponents/httpcore/trunk/module-main/src:
main/java/org/apache/http/message/ main/java/org/apache/http/protocol/
test/java/org/apache/http/message/ test/java/org/apache/http/protocol/
Author: olegk
Date: Sun Aug 13 13:00:52 2006
New Revision: 431222
URL: http://svn.apache.org/viewvc?rev=431222&view=rev
Log:
Bug fix. HTTP version must *always* be explicitly set when creating an HTTP response object
Modified:
jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHttpResponse.java
jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/protocol/HttpService.java
jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestBasicMessages.java
jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/protocol/TestStandardInterceptors.java
Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHttpResponse.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHttpResponse.java?rev=431222&r1=431221&r2=431222&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHttpResponse.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/message/BasicHttpResponse.java Sun Aug 13 13:00:52 2006
@@ -31,10 +31,8 @@
import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
-import org.apache.http.HttpStatus;
import org.apache.http.HttpVersion;
import org.apache.http.StatusLine;
-import org.apache.http.params.HttpProtocolParams;
/**
* Basic implementation of an HTTP response that can be modified.
@@ -50,19 +48,17 @@
private StatusLine statusline = null;
private HttpEntity entity = null;
- public BasicHttpResponse() {
- super();
- setStatusCode(HttpStatus.SC_OK);
- }
-
public BasicHttpResponse(final StatusLine statusline) {
super();
- setStatusLine(statusline);
+ if (statusline == null) {
+ throw new IllegalArgumentException("Status line may not be null");
+ }
+ this.statusline = statusline;
}
public BasicHttpResponse(final HttpVersion ver, final int code) {
super();
- setStatusLine(ver, code);
+ this.statusline = new BasicStatusLine(ver, code);
}
public HttpVersion getHttpVersion() {
@@ -95,9 +91,8 @@
if (code < 0) {
throw new IllegalArgumentException("Status line may not be null");
}
- this.statusline = new BasicStatusLine(
- HttpProtocolParams.getVersion(getParams()),
- code, HttpStatus.getStatusText(code));
+ HttpVersion ver = this.statusline.getHttpVersion();
+ this.statusline = new BasicStatusLine(ver, code);
}
public void setEntity(final HttpEntity entity) {
Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/protocol/HttpService.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/protocol/HttpService.java?rev=431222&r1=431221&r2=431222&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/protocol/HttpService.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/main/java/org/apache/http/protocol/HttpService.java Sun Aug 13 13:00:52 2006
@@ -47,7 +47,6 @@
import org.apache.http.UnsupportedHttpVersionException;
import org.apache.http.impl.DefaultConnectionReuseStrategy;
import org.apache.http.impl.DefaultHttpResponseFactory;
-import org.apache.http.message.BasicHttpResponse;
import org.apache.http.params.HttpParams;
/**
@@ -140,9 +139,8 @@
logMessage("Expected 100 (Continue)");
- BasicHttpResponse ack = new BasicHttpResponse();
+ HttpResponse ack = this.responseFactory.newHttpResponse(ver, HttpStatus.SC_CONTINUE);
ack.getParams().setDefaults(this.params);
- ack.setStatusCode(HttpStatus.SC_CONTINUE);
this.conn.sendResponseHeader(ack);
this.conn.flush();
}
Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestBasicMessages.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestBasicMessages.java?rev=431222&r1=431221&r2=431222&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestBasicMessages.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/message/TestBasicMessages.java Sun Aug 13 13:00:52 2006
@@ -64,12 +64,7 @@
}
public void testDefaultResponseConstructors() {
- HttpResponse response = new BasicHttpResponse();
- assertNotNull(response.getHttpVersion());
- assertNotNull(response.getStatusLine());
- assertEquals(200, response.getStatusLine().getStatusCode());
-
- response = new BasicHttpResponse(HttpVersion.HTTP_1_0, HttpStatus.SC_BAD_REQUEST);
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_0, HttpStatus.SC_BAD_REQUEST);
assertNotNull(response.getHttpVersion());
assertEquals(HttpVersion.HTTP_1_0, response.getHttpVersion());
assertEquals(HttpStatus.SC_BAD_REQUEST, response.getStatusLine().getStatusCode());
@@ -83,41 +78,38 @@
}
public void testSetResponseStatus() {
- HttpResponse response = new BasicHttpResponse();
- response.setStatusCode(200);
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, 200);
assertNotNull(response.getHttpVersion());
assertNotNull(response.getStatusLine());
assertEquals(200, response.getStatusLine().getStatusCode());
- response = new BasicHttpResponse();
- response.setStatusLine(HttpVersion.HTTP_1_0, HttpStatus.SC_BAD_REQUEST);
+ response = new BasicHttpResponse(HttpVersion.HTTP_1_0, HttpStatus.SC_BAD_REQUEST);
assertNotNull(response.getHttpVersion());
assertEquals(HttpVersion.HTTP_1_0, response.getHttpVersion());
assertEquals(HttpStatus.SC_BAD_REQUEST, response.getStatusLine().getStatusCode());
- response = new BasicHttpResponse();
- response.setStatusLine(new BasicStatusLine(
+ response = new BasicHttpResponse(new BasicStatusLine(
HttpVersion.HTTP_1_1, HttpStatus.SC_INTERNAL_SERVER_ERROR, "whatever"));
assertNotNull(response.getHttpVersion());
assertEquals(HttpVersion.HTTP_1_1, response.getHttpVersion());
assertEquals(HttpStatus.SC_INTERNAL_SERVER_ERROR, response.getStatusLine().getStatusCode());
assertEquals("whatever", response.getStatusLine().getReasonPhrase());
- response = new BasicHttpResponse();
+ response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
try {
response.setStatusCode(-23);
fail("IllegalArgumentException should have been thrown");
} catch (IllegalArgumentException ex) {
// expected
}
- response = new BasicHttpResponse();
+ response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
try {
response.setStatusLine(null, 200);
fail("IllegalArgumentException should have been thrown");
} catch (IllegalArgumentException ex) {
// expected
}
- response = new BasicHttpResponse();
+ response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
try {
response.setStatusLine(null);
fail("IllegalArgumentException should have been thrown");
@@ -127,7 +119,7 @@
}
public void testSetResponseEntity() {
- BasicHttpResponse response = new BasicHttpResponse();
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
assertNull(response.getEntity());
HttpEntity entity = new BasicHttpEntity();
Modified: jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/protocol/TestStandardInterceptors.java
URL: http://svn.apache.org/viewvc/jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/protocol/TestStandardInterceptors.java?rev=431222&r1=431221&r2=431222&view=diff
==============================================================================
--- jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/protocol/TestStandardInterceptors.java (original)
+++ jakarta/httpcomponents/httpcore/trunk/module-main/src/test/java/org/apache/http/protocol/TestStandardInterceptors.java Sun Aug 13 13:00:52 2006
@@ -35,6 +35,7 @@
import org.apache.http.Header;
import org.apache.http.HttpHost;
+import org.apache.http.HttpResponse;
import org.apache.http.HttpStatus;
import org.apache.http.HttpVersion;
import org.apache.http.ProtocolException;
@@ -459,7 +460,7 @@
public void testResponseConnControlNoEntity() throws Exception {
HttpContext context = new HttpExecutionContext(null);
- BasicHttpResponse response = new BasicHttpResponse();
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
ResponseConnControl interceptor = new ResponseConnControl();
interceptor.process(response, context);
Header header = response.getFirstHeader(HTTP.CONN_DIRECTIVE);
@@ -468,7 +469,7 @@
public void testResponseConnControlEntityContentLength() throws Exception {
HttpContext context = new HttpExecutionContext(null);
- BasicHttpResponse response = new BasicHttpResponse();
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
StringEntity entity = new StringEntity("whatever");
response.setEntity(entity);
ResponseConnControl interceptor = new ResponseConnControl();
@@ -482,7 +483,7 @@
BasicHttpRequest request = new BasicHttpRequest("GET", "/");
request.addHeader(new BasicHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_KEEP_ALIVE));
context.setAttribute(HttpExecutionContext.HTTP_REQUEST, request);
- BasicHttpResponse response = new BasicHttpResponse();
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
BasicHttpEntity entity = new BasicHttpEntity();
response.setEntity(entity);
ResponseConnControl interceptor = new ResponseConnControl();
@@ -494,7 +495,7 @@
public void testResponseConnControlEntityChunked() throws Exception {
HttpContext context = new HttpExecutionContext(null);
- BasicHttpResponse response = new BasicHttpResponse();
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
BasicHttpEntity entity = new BasicHttpEntity();
entity.setChunked(true);
response.setEntity(entity);
@@ -527,7 +528,7 @@
request.addHeader(new BasicHeader(HTTP.CONN_DIRECTIVE, HTTP.CONN_KEEP_ALIVE));
context.setAttribute(HttpExecutionContext.HTTP_REQUEST, request);
- BasicHttpResponse response = new BasicHttpResponse();
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
StringEntity entity = new StringEntity("whatever");
response.setEntity(entity);
ResponseConnControl interceptor = new ResponseConnControl();
@@ -542,7 +543,7 @@
BasicHttpRequest request = new BasicHttpRequest("GET", "/");
context.setAttribute(HttpExecutionContext.HTTP_REQUEST, request);
- BasicHttpResponse response = new BasicHttpResponse();
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
StringEntity entity = new StringEntity("whatever");
response.setEntity(entity);
ResponseConnControl interceptor = new ResponseConnControl();
@@ -589,7 +590,8 @@
// expected
}
try {
- interceptor.process(new BasicHttpResponse(), null);
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
+ interceptor.process(response, null);
fail("IllegalArgumentException should have been thrown");
} catch (IllegalArgumentException ex) {
// expected
@@ -598,7 +600,7 @@
public void testResponseContentNoEntity() throws Exception {
HttpContext context = new HttpExecutionContext(null);
- BasicHttpResponse response = new BasicHttpResponse();
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
ResponseContent interceptor = new ResponseContent();
interceptor.process(response, context);
Header header = response.getFirstHeader(HTTP.CONTENT_LEN);
@@ -608,7 +610,7 @@
public void testResponseContentStatusNoContent() throws Exception {
HttpContext context = new HttpExecutionContext(null);
- BasicHttpResponse response = new BasicHttpResponse();
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
response.setStatusCode(HttpStatus.SC_NO_CONTENT);
ResponseContent interceptor = new ResponseContent();
interceptor.process(response, context);
@@ -618,7 +620,7 @@
public void testResponseContentStatusResetContent() throws Exception {
HttpContext context = new HttpExecutionContext(null);
- BasicHttpResponse response = new BasicHttpResponse();
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
response.setStatusCode(HttpStatus.SC_RESET_CONTENT);
ResponseContent interceptor = new ResponseContent();
interceptor.process(response, context);
@@ -628,7 +630,7 @@
public void testResponseContentStatusNotModified() throws Exception {
HttpContext context = new HttpExecutionContext(null);
- BasicHttpResponse response = new BasicHttpResponse();
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
response.setStatusCode(HttpStatus.SC_NOT_MODIFIED);
ResponseContent interceptor = new ResponseContent();
interceptor.process(response, context);
@@ -638,7 +640,7 @@
public void testResponseContentEntityChunked() throws Exception {
HttpContext context = new HttpExecutionContext(null);
- BasicHttpResponse response = new BasicHttpResponse();
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
BasicHttpEntity entity = new BasicHttpEntity();
entity.setChunked(true);
response.setEntity(entity);
@@ -653,7 +655,7 @@
public void testResponseContentEntityContentLenghtDelimited() throws Exception {
HttpContext context = new HttpExecutionContext(null);
- BasicHttpResponse response = new BasicHttpResponse();
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
BasicHttpEntity entity = new BasicHttpEntity();
entity.setContentLength (10);
response.setEntity(entity);
@@ -668,7 +670,7 @@
public void testResponseContentEntityUnknownContentLength() throws Exception {
HttpContext context = new HttpExecutionContext(null);
- BasicHttpResponse response = new BasicHttpResponse();
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
BasicHttpEntity entity = new BasicHttpEntity();
response.setEntity(entity);
ResponseContent interceptor = new ResponseContent();
@@ -695,7 +697,7 @@
public void testResponseContentEntityNoContentTypeAndEncoding() throws Exception {
HttpContext context = new HttpExecutionContext(null);
- BasicHttpResponse response = new BasicHttpResponse();
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
BasicHttpEntity entity = new BasicHttpEntity();
response.setEntity(entity);
ResponseContent interceptor = new ResponseContent();
@@ -708,7 +710,7 @@
public void testResponseContentEntityContentTypeAndEncoding() throws Exception {
HttpContext context = new HttpExecutionContext(null);
- BasicHttpResponse response = new BasicHttpResponse();
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
BasicHttpEntity entity = new BasicHttpEntity();
entity.setContentEncoding("whatever");
entity.setContentType("whatever");
@@ -737,7 +739,7 @@
ResponseContent interceptor = new ResponseContent();
HttpContext context = new HttpExecutionContext(null);
try {
- BasicHttpResponse response = new BasicHttpResponse();
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
response.addHeader(new BasicHeader(HTTP.CONTENT_LEN, "10"));
interceptor.process(response, context);
fail("ProtocolException should have been thrown");
@@ -745,7 +747,7 @@
// expected
}
try {
- BasicHttpResponse response = new BasicHttpResponse();
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
response.addHeader(new BasicHeader(HTTP.TRANSFER_ENCODING, "stuff"));
interceptor.process(response, context);
fail("ProtocolException should have been thrown");
@@ -756,7 +758,7 @@
public void testResponseDateGenerated() throws Exception {
HttpContext context = new HttpExecutionContext(null);
- BasicHttpResponse response = new BasicHttpResponse();
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
ResponseDate interceptor = new ResponseDate();
interceptor.process(response, context);
Header h1 = response.getFirstHeader(HTTP.DATE_DIRECTIVE);
@@ -768,7 +770,7 @@
public void testResponseDateNotGenerated() throws Exception {
HttpContext context = new HttpExecutionContext(null);
- BasicHttpResponse response = new BasicHttpResponse();
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
response.setStatusCode(199);
ResponseDate interceptor = new ResponseDate();
interceptor.process(response, context);
@@ -788,7 +790,7 @@
public void testResponseServerGenerated() throws Exception {
HttpContext context = new HttpExecutionContext(null);
- BasicHttpResponse response = new BasicHttpResponse();
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
response.getParams().setParameter(HttpProtocolParams.ORIGIN_SERVER, "some server");
ResponseServer interceptor = new ResponseServer();
interceptor.process(response, context);
@@ -799,7 +801,7 @@
public void testResponseServerNotGenerated() throws Exception {
HttpContext context = new HttpExecutionContext(null);
- BasicHttpResponse response = new BasicHttpResponse();
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
response.getParams().setParameter(HttpProtocolParams.ORIGIN_SERVER, "some server");
response.addHeader(new BasicHeader(HTTP.SERVER_DIRECTIVE, "whatever"));
ResponseServer interceptor = new ResponseServer();
@@ -811,7 +813,7 @@
public void testResponseServerMissing() throws Exception {
HttpContext context = new HttpExecutionContext(null);
- BasicHttpResponse response = new BasicHttpResponse();
+ HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK);
ResponseServer interceptor = new ResponseServer();
interceptor.process(response, context);
Header h1 = response.getFirstHeader(HTTP.SERVER_DIRECTIVE);