[CXF-6833] Making sure a reported exception is not ignored

Project: http://git-wip-us.apache.org/repos/asf/cxf/repo
Commit: http://git-wip-us.apache.org/repos/asf/cxf/commit/7fcd84b1
Tree: http://git-wip-us.apache.org/repos/asf/cxf/tree/7fcd84b1
Diff: http://git-wip-us.apache.org/repos/asf/cxf/diff/7fcd84b1

Branch: refs/heads/master-jaxrs-2.1
Commit: 7fcd84b1f82a203917a5269a2c0c10a0d5b6f877
Parents: e40c28f
Author: Sergey Beryozkin <[email protected]>
Authored: Fri Apr 29 16:14:20 2016 +0100
Committer: Sergey Beryozkin <[email protected]>
Committed: Fri Apr 29 16:14:20 2016 +0100

----------------------------------------------------------------------
 .../cxf/systest/jaxrs/reactive/ObservableWriter.java      | 10 +++++++---
 1 file changed, 7 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cxf/blob/7fcd84b1/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/reactive/ObservableWriter.java
----------------------------------------------------------------------
diff --git 
a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/reactive/ObservableWriter.java
 
b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/reactive/ObservableWriter.java
index 88b7e49..198f9b7 100644
--- 
a/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/reactive/ObservableWriter.java
+++ 
b/systests/jaxrs/src/test/java/org/apache/cxf/systest/jaxrs/reactive/ObservableWriter.java
@@ -54,7 +54,8 @@ public class ObservableWriter<T> implements 
MessageBodyWriter<Observable<T>> {
     public void writeTo(Observable<T> obs, Class<?> cls, Type t, Annotation[] 
anns, MediaType mt,
                         MultivaluedMap<String, Object> headers, OutputStream 
os)
                             throws IOException, WebApplicationException {
-        obs.subscribe(value -> writeToOutputStream(value, anns, mt, headers, 
os));   
+        obs.subscribe(value -> writeToOutputStream(value, anns, mt, headers, 
os),
+            throwable -> throwError(throwable));   
     }
 
     private void writeToOutputStream(T value,
@@ -66,14 +67,17 @@ public class ObservableWriter<T> implements 
MessageBodyWriter<Observable<T>> {
         MessageBodyWriter<T> writer = 
             
(MessageBodyWriter<T>)providers.getMessageBodyWriter(value.getClass(), 
value.getClass(), anns, mt);
         if (writer == null) {
-            throw ExceptionUtils.toInternalServerErrorException(null, null);
+            throwError(null);
         }
     
         try {
             writer.writeTo(value, value.getClass(), value.getClass(), anns, 
mt, headers, os);    
         } catch (IOException ex) {
-            throw ExceptionUtils.toInternalServerErrorException(ex, null);
+            throwError(ex);
         }
     }
     
+    private static void throwError(Throwable cause) {
+        throw ExceptionUtils.toInternalServerErrorException(cause, null);
+    }
 }

Reply via email to