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