webwork/src/main/webwork/dispatcher CleanupFilter.java,1.1,1.2
[email protected] Wed, 05 Apr 2006 00:50:44 -0700
| Newsgroups | gmane.comp.java.open-symphony.cvs |
|---|---|
| Message-ID | <[email protected]> |
Update of /cvsroot/opensymphony/webwork/src/main/webwork/dispatcher
In directory sc8-pr-cvs1.sourceforge.net:/tmp/cvs-serv25139/src/main/webwork/dispatcher
Modified Files:
CleanupFilter.java
Log Message:
Update Cleanup Filter to only run once. This means that it will work on Orion, which also applies it to include files.
Index: CleanupFilter.java
===================================================================
RCS file: /cvsroot/opensymphony/webwork/src/main/webwork/dispatcher/CleanupFilter.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -d -r1.1 -r1.2
--- CleanupFilter.java 28 May 2004 05:02:55 -0000 1.1
+++ CleanupFilter.java 5 Apr 2006 07:50:34 -0000 1.2
@@ -13,18 +13,27 @@
*/
public class CleanupFilter implements Filter {
public static final String DO_NOT_CLEAN = "webwork.cleanupfilter";
+ private static final String FILTER_ALREADY_RUN_KEY = CleanupFilter.class.getName() + "_run";
private static Log LOG = LogFactory.getLog(ServletDispatcher.class);
public void destroy() {
}
public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) throws IOException, ServletException {
- servletRequest.setAttribute(DO_NOT_CLEAN,Boolean.TRUE);
- filterChain.doFilter(servletRequest,servletResponse);
- GenericDispatcher gd = (GenericDispatcher) servletRequest.getAttribute(ServletDispatcher.GENERIC_DISPATCHER_FOR_CLEANUP);
- if (gd != null) {
- LOG.debug("Cleaning up generic dispatcher.");
- gd.finalizeContext();
+ // ensure the filter is only run one time. This prevents problems on servers such as Orion
+ // which run filters on includes also.
+ if (servletRequest.getAttribute(FILTER_ALREADY_RUN_KEY) != null) {
+ filterChain.doFilter(servletRequest, servletResponse);
+ }
+ else {
+ servletRequest.setAttribute(FILTER_ALREADY_RUN_KEY, new Boolean(true));
+ servletRequest.setAttribute(DO_NOT_CLEAN,Boolean.TRUE);
+ filterChain.doFilter(servletRequest,servletResponse);
+ GenericDispatcher gd = (GenericDispatcher) servletRequest.getAttribute(ServletDispatcher.GENERIC_DISPATCHER_FOR_CLEANUP);
+ if (gd != null) {
+ LOG.debug("Cleaning up generic dispatcher.");
+ gd.finalizeContext();
+ }
}
}
-------------------------------------------------------
This SF.Net email is sponsored by xPML, a groundbreaking scripting language
that extends applications into web and mobile media. Attend the live webcast
and join the prime developer group breaking into this new coding territory!
http://sel.as-us.falkag.net/sel?cmd=lnk&kid=110944&bid=241720&dat=121642