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());
         }


Reply via email to