When an exception happens while writing/flushing, the exception handling
for Servlet 3.1 based implementation will happen when
WriteListener#onError and AsyncListener#onError events are received
pull/1124/merge
Violeta Georgieva9 years agocommitted byRossen Stoyanchev
@ -103,6 +103,14 @@ public abstract class AbstractListenerWriteFlushProcessor<T> implements Processo
@@ -103,6 +103,14 @@ public abstract class AbstractListenerWriteFlushProcessor<T> implements Processo
@ -167,8 +175,8 @@ public abstract class AbstractListenerWriteFlushProcessor<T> implements Processo
@@ -167,8 +175,8 @@ public abstract class AbstractListenerWriteFlushProcessor<T> implements Processo
@ -162,6 +162,15 @@ public abstract class AbstractListenerWriteProcessor<T> implements Processor<T,
@@ -162,6 +162,15 @@ public abstract class AbstractListenerWriteProcessor<T> implements Processor<T,
@ -276,8 +285,7 @@ public abstract class AbstractListenerWriteProcessor<T> implements Processor<T,
@@ -276,8 +285,7 @@ public abstract class AbstractListenerWriteProcessor<T> implements Processor<T,
@ -196,9 +196,11 @@ public class ServletServerHttpResponse extends AbstractListenerServerHttpRespons
@@ -196,9 +196,11 @@ public class ServletServerHttpResponse extends AbstractListenerServerHttpRespons
bodyFlushProcessor.cancel();
bodyFlushProcessor.onError(ex);
}
if(bodyProcessor!=null){
bodyProcessor.cancel();
bodyProcessor.onError(ex);
ResponseBodyProcessorprocessor=bodyProcessor;
if(processor!=null){
processor.cancel();
processor.onError(ex);
}
}
@ -208,9 +210,11 @@ public class ServletServerHttpResponse extends AbstractListenerServerHttpRespons
@@ -208,9 +210,11 @@ public class ServletServerHttpResponse extends AbstractListenerServerHttpRespons
bodyFlushProcessor.cancel();
bodyFlushProcessor.onComplete();
}
if(bodyProcessor!=null){
bodyProcessor.cancel();
bodyProcessor.onComplete();
ResponseBodyProcessorprocessor=bodyProcessor;
if(processor!=null){
processor.cancel();
processor.onComplete();
}
}
}
@ -220,16 +224,18 @@ public class ServletServerHttpResponse extends AbstractListenerServerHttpRespons
@@ -220,16 +224,18 @@ public class ServletServerHttpResponse extends AbstractListenerServerHttpRespons
@ -229,6 +229,12 @@ public class UndertowServerHttpResponse extends AbstractListenerServerHttpRespon
@@ -229,6 +229,12 @@ public class UndertowServerHttpResponse extends AbstractListenerServerHttpRespon
this.channel.getWriteSetter().set(null);
this.channel.resumeWrites();
}
@Override
protectedvoidwritingFailed(Throwablet){
cancel();
onError(t);
}
}
@ -248,6 +254,12 @@ public class UndertowServerHttpResponse extends AbstractListenerServerHttpRespon
@@ -248,6 +254,12 @@ public class UndertowServerHttpResponse extends AbstractListenerServerHttpRespon