ErrorWrapperResponse Class — spring-boot Architecture
Architecture documentation for the ErrorWrapperResponse class in ErrorPageFilter.java from the spring-boot codebase.
Entity Profile
Relationship Graph
Source Code
core/spring-boot/src/main/java/org/springframework/boot/web/servlet/support/ErrorPageFilter.java lines 311–378
private static class ErrorWrapperResponse extends HttpServletResponseWrapper {
private int status;
private @Nullable String message;
private boolean hasErrorToSend;
ErrorWrapperResponse(HttpServletResponse response) {
super(response);
}
@Override
public void sendError(int status) {
sendError(status, null);
}
@Override
public void sendError(int status, @Nullable String message) {
this.status = status;
this.message = message;
this.hasErrorToSend = true;
// Do not call super because the container may prevent us from handling the
// error ourselves
}
@Override
public int getStatus() {
if (this.hasErrorToSend) {
return this.status;
}
// If there was no error we need to trust the wrapped response
return super.getStatus();
}
@Override
public void flushBuffer() throws IOException {
sendErrorIfNecessary();
super.flushBuffer();
}
private void sendErrorIfNecessary() throws IOException {
if (this.hasErrorToSend && !isCommitted()) {
((HttpServletResponse) getResponse()).sendError(this.status, this.message);
}
}
@Nullable String getMessage() {
return this.message;
}
boolean hasErrorToSend() {
return this.hasErrorToSend;
}
@Override
public PrintWriter getWriter() throws IOException {
sendErrorIfNecessary();
return super.getWriter();
}
@Override
public ServletOutputStream getOutputStream() throws IOException {
sendErrorIfNecessary();
return super.getOutputStream();
}
}
Domain
Source
Analyze Your Own Codebase
Get architecture documentation, dependency graphs, and domain analysis for your codebase in minutes.
Try Supermodel Free