Author: sergeyb
Date: Fri Feb  8 21:56:18 2013
New Revision: 1444252

URL: http://svn.apache.org/r1444252
Log:
[CXF-4817] Making sure unmapped exception is reported correctly

Modified:
    
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSInvoker.java
    
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/AsyncResponseImpl.java
    
cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookContinuationStore.java

Modified: 
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSInvoker.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSInvoker.java?rev=1444252&r1=1444251&r2=1444252&view=diff
==============================================================================
--- 
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSInvoker.java
 (original)
+++ 
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/JAXRSInvoker.java
 Fri Feb  8 21:56:18 2013
@@ -125,8 +125,8 @@ public class JAXRSInvoker extends Abstra
                 return handleFault(new Fault((Throwable)asyncObj), 
                                    exchange.getInMessage(), null, null);
             } catch (Fault ex) {
-                ar.reset();
-                throw ex;
+                ar.setUnmappedThrowable(ex.getCause());
+                return new MessageContentsList(Response.serverError().build());
             }
         } else {
             return new MessageContentsList(asyncObj);

Modified: 
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/AsyncResponseImpl.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/AsyncResponseImpl.java?rev=1444252&r1=1444251&r2=1444252&view=diff
==============================================================================
--- 
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/AsyncResponseImpl.java
 (original)
+++ 
cxf/trunk/rt/frontend/jaxrs/src/main/java/org/apache/cxf/jaxrs/impl/AsyncResponseImpl.java
 Fri Feb  8 21:56:18 2013
@@ -48,6 +48,7 @@ public class AsyncResponseImpl implement
     private TimeoutHandler timeoutHandler;
     
     private CompletionCallback completionCallback;
+    private Throwable unmappedThrowable;
     
     public AsyncResponseImpl(Message inMessage) {
         inMessage.put(AsyncResponse.class, this);
@@ -191,7 +192,7 @@ public class AsyncResponseImpl implement
     public void onComplete() {
         done = true;
         if (completionCallback != null) {
-            completionCallback.onComplete(null);
+            completionCallback.onComplete(unmappedThrowable);
         }
     }
 
@@ -247,6 +248,9 @@ public class AsyncResponseImpl implement
         initContinuation();
     }
     
+    public void setUnmappedThrowable(Throwable t) {
+        unmappedThrowable = t;
+    }
     public void reset() {
         cont.reset();
     }

Modified: 
cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookContinuationStore.java
URL: 
http://svn.apache.org/viewvc/cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookContinuationStore.java?rev=1444252&r1=1444251&r2=1444252&view=diff
==============================================================================
--- 
cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookContinuationStore.java
 (original)
+++ 
cxf/trunk/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/BookContinuationStore.java
 Fri Feb  8 21:56:18 2013
@@ -206,7 +206,7 @@ public class BookContinuationStore {
 
         @Override
         public void onComplete(Throwable throwable) {
-            System.out.println("CompletionCallback: onComplete");
+            System.out.println("CompletionCallback: onComplete, throwable: " + 
throwable);
         }
         
     }


Reply via email to