You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@camel.apache.org by da...@apache.org on 2008/11/26 12:07:52 UTC
svn commit: r720806 - in /activemq/camel/trunk/components:
camel-http/src/main/java/org/apache/camel/component/http/
camel-jetty/src/test/java/org/apache/camel/component/jetty/
Author: davsclaus
Date: Wed Nov 26 03:07:50 2008
New Revision: 720806
URL: http://svn.apache.org/viewvc?rev=720806&view=rev
Log:
CAMEL-1109: Applied patch with thanks and added a test for it in camel-jetty
Modified:
activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpOperationFailedException.java
activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java
activemq/camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyResponseBodyWhenErrorTest.java
Modified: activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpOperationFailedException.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpOperationFailedException.java?rev=720806&r1=720805&r2=720806&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpOperationFailedException.java (original)
+++ activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpOperationFailedException.java Wed Nov 26 03:07:50 2008
@@ -20,24 +20,27 @@
import org.apache.camel.CamelException;
import org.apache.camel.util.ObjectHelper;
+import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.StatusLine;
public class HttpOperationFailedException extends CamelException {
private final String redirectLocation;
private final int statusCode;
private final StatusLine statusLine;
+ private final Header[] headers;
private final InputStream responseBody;
- public HttpOperationFailedException(int statusCode, StatusLine statusLine, String location, InputStream responseBody) {
+ public HttpOperationFailedException(int statusCode, StatusLine statusLine, String location, Header[] headers, InputStream responseBody) {
super("HTTP operation failed with statusCode: " + statusCode + ", status: " + statusLine + (location != null ? ", redirectLocation: " + location : ""));
this.statusCode = statusCode;
this.statusLine = statusLine;
this.redirectLocation = location;
+ this.headers = headers;
this.responseBody = responseBody;
}
- public HttpOperationFailedException(int statusCode, StatusLine statusLine, InputStream responseBody) {
- this(statusCode, statusLine, null, responseBody);
+ public HttpOperationFailedException(int statusCode, StatusLine statusLine, Header[] headers, InputStream responseBody) {
+ this(statusCode, statusLine, null, headers, responseBody);
}
public boolean isRedirectError() {
@@ -60,9 +63,12 @@
return statusCode;
}
+ public Header[] getHeaders() {
+ return headers;
+ }
+
public InputStream getResponseBody() {
return responseBody;
}
-
}
\ No newline at end of file
Modified: activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java?rev=720806&r1=720805&r2=720806&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java (original)
+++ activemq/camel/trunk/components/camel-http/src/main/java/org/apache/camel/component/http/HttpProducer.java Wed Nov 26 03:07:50 2008
@@ -96,20 +96,21 @@
}
} else {
HttpOperationFailedException exception = null;
+ Header[] headers = method.getResponseHeaders();
InputStream is = extractResponseBody(method);
if (responseCode >= 300 && responseCode < 400) {
String redirectLocation;
Header locationHeader = method.getResponseHeader("location");
if (locationHeader != null) {
redirectLocation = locationHeader.getValue();
- exception = new HttpOperationFailedException(responseCode, method.getStatusLine(), redirectLocation, is);
+ exception = new HttpOperationFailedException(responseCode, method.getStatusLine(), redirectLocation, headers, is);
} else {
// no redirect location
- exception = new HttpOperationFailedException(responseCode, method.getStatusLine(), is);
+ exception = new HttpOperationFailedException(responseCode, method.getStatusLine(), headers, is);
}
} else {
// internal server error (error code 500)
- exception = new HttpOperationFailedException(responseCode, method.getStatusLine(), is);
+ exception = new HttpOperationFailedException(responseCode, method.getStatusLine(), headers, is);
}
if (exception != null) {
Modified: activemq/camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyResponseBodyWhenErrorTest.java
URL: http://svn.apache.org/viewvc/activemq/camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyResponseBodyWhenErrorTest.java?rev=720806&r1=720805&r2=720806&view=diff
==============================================================================
--- activemq/camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyResponseBodyWhenErrorTest.java (original)
+++ activemq/camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/JettyResponseBodyWhenErrorTest.java Wed Nov 26 03:07:50 2008
@@ -38,6 +38,8 @@
String body = context.getTypeConverter().convertTo(String.class, cause.getResponseBody());
assertTrue(body.indexOf("Damm") > -1);
assertTrue(body.indexOf("IllegalArgumentException") > -1);
+ assertNotNull(cause.getHeaders());
+ assertTrue("Should have http header with content type set", cause.getHeaders()[0].getValue().indexOf("text/plain") > -1);
}
}