@@ -339,11 +339,13 @@ public interface DefaultContext extends Context {
339339 return setResponseHeader (name , RFC1123 .format (Instant .ofEpochMilli (value .getTime ())));
340340 }
341341
342- @ Override @ Nonnull default Context setResponseHeader (@ Nonnull String name , @ Nonnull Instant value ) {
342+ @ Override @ Nonnull
343+ default Context setResponseHeader (@ Nonnull String name , @ Nonnull Instant value ) {
343344 return setResponseHeader (name , RFC1123 .format (value ));
344345 }
345346
346- @ Override @ Nonnull default Context setResponseHeader (@ Nonnull String name , @ Nonnull Object value ) {
347+ @ Override @ Nonnull
348+ default Context setResponseHeader (@ Nonnull String name , @ Nonnull Object value ) {
347349 if (value instanceof Date ) {
348350 return setResponseHeader (name , (Date ) value );
349351 }
@@ -390,7 +392,8 @@ public interface DefaultContext extends Context {
390392 return responseStream (consumer );
391393 }
392394
393- @ Override default @ Nonnull Context responseStream (@ Nonnull SneakyThrows .Consumer <OutputStream > consumer )
395+ @ Override default @ Nonnull Context responseStream (
396+ @ Nonnull SneakyThrows .Consumer <OutputStream > consumer )
394397 throws Exception {
395398 try (OutputStream out = responseStream ()) {
396399 consumer .accept (out );
@@ -406,7 +409,8 @@ public interface DefaultContext extends Context {
406409 return responseWriter (contentType , contentType .getCharset ());
407410 }
408411
409- @ Override default @ Nonnull Context responseWriter (@ Nonnull SneakyThrows .Consumer <PrintWriter > consumer )
412+ @ Override default @ Nonnull Context responseWriter (
413+ @ Nonnull SneakyThrows .Consumer <PrintWriter > consumer )
410414 throws Exception {
411415 return responseWriter (MediaType .text , consumer );
412416 }
@@ -416,7 +420,8 @@ public interface DefaultContext extends Context {
416420 return responseWriter (contentType , contentType .getCharset (), consumer );
417421 }
418422
419- @ Override default @ Nonnull Context responseWriter (@ Nonnull MediaType contentType , @ Nullable Charset charset ,
423+ @ Override default @ Nonnull Context responseWriter (@ Nonnull MediaType contentType ,
424+ @ Nullable Charset charset ,
420425 @ Nonnull SneakyThrows .Consumer <PrintWriter > consumer ) throws Exception {
421426 try (PrintWriter writer = responseWriter (contentType , charset )) {
422427 consumer .accept (writer );
@@ -428,7 +433,8 @@ public interface DefaultContext extends Context {
428433 return sendRedirect (StatusCode .FOUND , location );
429434 }
430435
431- @ Override default @ Nonnull Context sendRedirect (@ Nonnull StatusCode redirect , @ Nonnull String location ) {
436+ @ Override default @ Nonnull Context sendRedirect (@ Nonnull StatusCode redirect ,
437+ @ Nonnull String location ) {
432438 setResponseHeader ("location" , location );
433439 return send (redirect );
434440 }
@@ -474,21 +480,25 @@ public interface DefaultContext extends Context {
474480 * @param statusCode Status code.
475481 * @return This context.
476482 */
477- @ Override @ Nonnull default Context sendError (@ Nonnull Throwable cause , @ Nonnull StatusCode statusCode ) {
483+ @ Override @ Nonnull default Context sendError (@ Nonnull Throwable cause ,
484+ @ Nonnull StatusCode statusCode ) {
478485 Router router = getRouter ();
479486 if (isResponseStarted ()) {
480487 router .getLog ().error (ErrorHandler .errorMessage (this , statusCode ), cause );
481488 } else {
482489 try {
490+ if (getResetHeadersOnError ()) {
491+ removeResponseHeaders ();
492+ }
483493 router .getErrorHandler ().apply (this , cause , statusCode );
484494 } catch (Exception x ) {
485495 router .getLog ()
486496 .error ("error handler resulted in exception {} {}" , getMethod (), pathString (), x );
487497 }
488- /** rethrow fatal exceptions: */
489- if ( SneakyThrows . isFatal ( cause )) {
490- throw SneakyThrows .propagate (cause );
491- }
498+ }
499+ /** rethrow fatal exceptions: */
500+ if ( SneakyThrows .isFatal (cause )) {
501+ throw SneakyThrows . propagate ( cause );
492502 }
493503 return this ;
494504 }
0 commit comments