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.
|