package com.revolsys.ui.web.servlet;
import java.io.IOException;
import javax.servlet.FilterChain;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.filter.OncePerRequestFilter;
import com.revolsys.ui.web.utils.HttpServletUtils;
public class SavedRequestFilter extends OncePerRequestFilter {
@Override
protected void doFilterInternal(final HttpServletRequest request,
final HttpServletResponse response, final FilterChain filterChain)
throws ServletException, IOException {
final HttpServletRequest savedRequest = HttpServletUtils.getRequest();
final HttpServletResponse savedResponse = HttpServletUtils.getResponse();
try {
HttpServletUtils.setRequestAndResponse(request, response);
filterChain.doFilter(request, response);
} finally {
if (savedRequest == null) {
HttpServletUtils.clearRequestAndResponse();
} else {
HttpServletUtils.setRequestAndResponse(savedRequest, savedResponse);
}
}
}
}