From: <fg...@us...> - 2011-05-20 15:05:04
|
Revision: 3466 http://openutils.svn.sourceforge.net/openutils/?rev=3466&view=rev Author: fgiust Date: 2011-05-20 15:04:57 +0000 (Fri, 20 May 2011) Log Message: ----------- avoid calling the stripes filter before calling init() Modified Paths: -------------- trunk/openutils-mgnlstripes/src/main/java/it/openutils/magnoliastripes/StripesMagnoliaFilter.java Modified: trunk/openutils-mgnlstripes/src/main/java/it/openutils/magnoliastripes/StripesMagnoliaFilter.java =================================================================== --- trunk/openutils-mgnlstripes/src/main/java/it/openutils/magnoliastripes/StripesMagnoliaFilter.java 2011-05-19 12:56:53 UTC (rev 3465) +++ trunk/openutils-mgnlstripes/src/main/java/it/openutils/magnoliastripes/StripesMagnoliaFilter.java 2011-05-20 15:04:57 UTC (rev 3466) @@ -34,12 +34,16 @@ import info.magnolia.voting.Voter; import info.magnolia.voting.Voting; +import java.io.IOException; import java.util.ArrayList; import java.util.Collection; import java.util.regex.Pattern; +import javax.servlet.FilterChain; import javax.servlet.FilterConfig; import javax.servlet.ServletException; +import javax.servlet.ServletRequest; +import javax.servlet.ServletResponse; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; @@ -70,6 +74,8 @@ private WebContainerResources webContainerResources = Components.getSingleton(WebContainerResources.class); + private boolean initdone; + /** * {@inheritDoc} */ @@ -78,9 +84,28 @@ { super.init(filterConfig); filterConfig.getServletContext().setAttribute(Configuration.class.getName(), getInstanceConfiguration()); + initdone = true; } /** + * {@inheritDoc} + */ + @Override + public void doFilter(ServletRequest servletRequest, ServletResponse servletResponse, FilterChain filterChain) + throws IOException, ServletException + { + if (initdone) + { + super.doFilter(servletRequest, servletResponse, filterChain); + } + else + { + // not yet ready + filterChain.doFilter(servletRequest, servletResponse); + } + } + + /** * Wraps the HttpServletRequest with a StripesServletRequest. This is done to ensure that any form posts that * contain file uploads get handled appropriately. * @param servletRequest the HttpServletRequest handed to the dispatcher by the container @@ -135,9 +160,13 @@ DispatchRule dispatchRule = getDispatchRules().getDispatchRule(ServletUtils.getDispatcherType(request)); if (toMagnoliaResource && dispatchRule.isToMagnoliaResources()) + { return true; + } if (toWebContainerResource && dispatchRule.isToWebContainerResources()) + { return true; + } return false; } @@ -145,11 +174,14 @@ { Voting voting = Voting.HIGHEST_LEVEL; if (voting.vote(bypasses, request) > 0) + { return true; + } return false; } + @Override public void destroy() { // nothing to do here This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |