Author: davsclaus
Date: Thu Dec 3 14:37:30 2009
New Revision: 886797
URL: http://svn.apache.org/viewvc?rev=886797&view=rev
Log:
Fixed unit test.
Modified:
camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyContentExchange.java
camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java
camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerConnectionFailureTest.java
Modified:
camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyContentExchange.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyContentExchange.java?rev=886797&r1=886796&r2=886797&view=diff
==============================================================================
---
camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyContentExchange.java
(original)
+++
camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyContentExchange.java
Thu Dec 3 14:37:30 2009
@@ -116,8 +116,9 @@
}
protected int waitForDoneOrFailure() throws InterruptedException {
-
- long timeout = client.getTimeout();
+ // just wait a little longer than Jetty itself to be safe
+ // as this timeout is a failsafe in case for some reason Jetty does
not callback
+ long timeout = client.getTimeout() + 5000;
if (LOG.isTraceEnabled()) {
LOG.trace("Waiting for done or failure with timeout: " + timeout);
@@ -166,9 +167,11 @@
} else if (exchangeState == HttpExchange.STATUS_EXPIRED) {
// we did timeout
exchange.setException(new ExchangeTimedOutException(exchange,
client.getTimeout()));
- } else if (exchangeState == HttpExchange.STATUS_EXCEPTED) {
+ } else {
// some kind of other error
- exchange.setException(new CamelExchangeException("JettyClient
failed with state " + exchangeState, exchange));
+ if (exchange.getException() != null) {
+ exchange.setException(new
CamelExchangeException("JettyClient failed with state " + exchangeState,
exchange));
+ }
}
} finally {
// now invoke callback
@@ -177,11 +180,13 @@
}
protected void doTaskCompleted(Throwable ex) {
- // make sure to lower the latch
- done.countDown();
-
- // some kind of other error
- exchange.setException(new CamelExchangeException("JettyClient failed
cause by: " + ex.getMessage(), exchange, ex));
+ try {
+ // some kind of other error
+ exchange.setException(new CamelExchangeException("JettyClient
failed cause by: " + ex.getMessage(), exchange, ex));
+ } finally {
+ // make sure to lower the latch
+ done.countDown();
+ }
if (callback != null) {
callback.onTaskCompleted(exchange);
Modified:
camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java?rev=886797&r1=886796&r2=886797&view=diff
==============================================================================
---
camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java
(original)
+++
camel/trunk/components/camel-jetty/src/main/java/org/apache/camel/component/jetty/JettyHttpProducer.java
Thu Dec 3 14:37:30 2009
@@ -104,9 +104,13 @@
} else if (exchangeState == HttpExchange.STATUS_EXPIRED) {
// we did timeout
throw new ExchangeTimedOutException(exchange, client.getTimeout());
- } else if (exchangeState == HttpExchange.STATUS_EXCEPTED) {
+ } else {
// some kind of other error
- throw new CamelExchangeException("JettyClient failed with state "
+ exchangeState, exchange);
+ if (exchange.getException() != null) {
+ throw exchange.getException();
+ } else {
+ exchange.setException(new CamelExchangeException("JettyClient
failed with state " + exchangeState, exchange));
+ }
}
}
Modified:
camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerConnectionFailureTest.java
URL:
http://svn.apache.org/viewvc/camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerConnectionFailureTest.java?rev=886797&r1=886796&r2=886797&view=diff
==============================================================================
---
camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerConnectionFailureTest.java
(original)
+++
camel/trunk/components/camel-jetty/src/test/java/org/apache/camel/component/jetty/jettyproducer/JettyHttpProducerConnectionFailureTest.java
Thu Dec 3 14:37:30 2009
@@ -43,7 +43,8 @@
// use another port with no connection
try {
template.requestBody("jetty://http://localhost:9999/myservice",
null, Object.class);
- } catch (CamelExecutionException e) {
+ fail("Should have thrown an exception");
+ } catch (Exception e) {
CamelExchangeException cause =
assertIsInstanceOf(CamelExchangeException.class, e.getCause());
assertIsInstanceOf(ConnectException.class, cause.getCause());
}