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 2010/08/31 22:54:13 UTC

svn commit: r991324 - /cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java

Author: sergeyb
Date: Tue Aug 31 20:54:13 2010
New Revision: 991324

URL: http://svn.apache.org/viewvc?rev=991324&view=rev
Log:
[CXF-2961] Applying a patch on behalf of Peter Easton, thanks

Modified:
    cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java

Modified: cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java
URL: http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java?rev=991324&r1=991323&r2=991324&view=diff
==============================================================================
--- cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java (original)
+++ cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/client/WebClient.java Tue Aug 31 20:54:13 2010
@@ -598,6 +598,7 @@ public class WebClient extends AbstractC
 
     protected Response doChainedInvocation(String httpMethod, 
         MultivaluedMap<String, String> headers, Object body, Class<?> responseClass, Type genericType) {
+        Throwable primaryError = null;
         
         URI uri = getCurrentURI();
         Message m = createMessage(httpMethod, headers, uri);
@@ -613,12 +614,18 @@ public class WebClient extends AbstractC
         
         try {
             m.getInterceptorChain().doIntercept(m);
+            primaryError = m.getExchange().get(Exception.class);
         } catch (Throwable ex) {
-            // we'd like a user to get the whole Response anyway if needed
+            primaryError = ex;
         }
+
         
         // TODO : this needs to be done in an inbound chain instead
         HttpURLConnection connect = (HttpURLConnection)m.get(HTTPConduit.KEY_HTTP_CONNECTION);
+        if (connect == null && primaryError != null) {
+            /** do we have a pre-connect error ? */
+            throw new WebApplicationException(primaryError);
+        }
         return handleResponse(connect, m, responseClass, genericType);
     }