You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by jd...@apache.org on 2009/04/12 22:08:47 UTC

svn commit: r764318 - /wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketServlet.java

Author: jdonnerstag
Date: Sun Apr 12 20:08:46 2009
New Revision: 764318

URL: http://svn.apache.org/viewvc?rev=764318&view=rev
Log:
fixed WICKET-2185 WicketServlet fallback() code should ignore query string params when resolving resources.
Issue: WICKET-2185

Modified:
    wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketServlet.java

Modified: wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketServlet.java
URL: http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketServlet.java?rev=764318&r1=764317&r2=764318&view=diff
==============================================================================
--- wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketServlet.java (original)
+++ wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WicketServlet.java Sun Apr 12 20:08:46 2009
@@ -29,6 +29,7 @@
 
 import org.apache.wicket.protocol.http.servlet.ServletWebRequest;
 import org.apache.wicket.util.io.Streams;
+import org.apache.wicket.util.string.Strings;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -165,18 +166,20 @@
 	private void fallback(HttpServletRequest request, HttpServletResponse response)
 		throws IOException
 	{
-
-		// The ServletWebRequest is created here to avoid code duplication. The getURL
-		// call doesn't depend on anything wicket specific
+		// The ServletWebRequest is created here to avoid code duplication. The getURL call doesn't
+		// depend on anything wicket specific
 		ServletWebRequest req = new ServletWebRequest(request);
 		String url = req.getURL();
 
-		// Get the relative URL we need for loading the resource from
-		// the servlet context
-		// NOTE: we NEED to put the '/' in front as otherwise some versions
-		// of application servers (e.g. Jetty 5.1.x) will fail for requests
-		// like '/mysubdir/myfile.css'
+		// WICKET-2185: strip of query string
+		if (url.indexOf('?') != -1)
+		{
+			url = Strings.beforeFirst(url, '?');
+		}
 
+		// Get the relative URL we need for loading the resource from the servlet context
+		// NOTE: we NEED to put the '/' in front as otherwise some versions of application servers
+		// (e.g. Jetty 5.1.x) will fail for requests like '/mysubdir/myfile.css'
 		if ((url.length() > 0 && url.charAt(0) != '/') || url.length() == 0)
 		{
 			url = '/' + url;
@@ -185,7 +188,6 @@
 		InputStream stream = getServletContext().getResourceAsStream(url);
 		String mimeType = getServletContext().getMimeType(url);
 
-
 		if (stream == null)
 		{
 			response.sendError(HttpServletResponse.SC_NOT_FOUND);
@@ -193,7 +195,9 @@
 		else
 		{
 			if (mimeType != null)
+			{
 				response.setContentType(mimeType);
+			}
 
 			Streams.copy(stream, response.getOutputStream());
 		}