Author: jcompagner
Date: Mon Feb 2 09:31:17 2009
New Revision: 739951
URL: http://svn.apache.org/viewvc?rev=739951&view=rev
Log:
fix for shared resources and url encrypting strategy. RequestCycle is needed
for this
Modified:
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java
Modified:
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java
URL:
http://svn.apache.org/viewvc/wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java?rev=739951&r1=739950&r2=739951&view=diff
==============================================================================
---
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java
(original)
+++
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WebRequestCycle.java
Mon Feb 2 09:31:17 2009
@@ -285,4 +285,10 @@
return super.isRedirect();
}
}
+
+ void unset()
+ {
+ set(null);
+ }
+
}
Modified:
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java
URL:
http://svn.apache.org/viewvc/wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java?rev=739951&r1=739950&r2=739951&view=diff
==============================================================================
---
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java
(original)
+++
wicket/branches/wicket-1.3.x/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/WicketFilter.java
Mon Feb 2 09:31:17 2009
@@ -44,6 +44,7 @@
import org.apache.wicket.protocol.http.portlet.FilterRequestContext;
import org.apache.wicket.protocol.http.portlet.WicketFilterPortletContext;
import org.apache.wicket.protocol.http.request.WebRequestCodingStrategy;
+import org.apache.wicket.request.RequestParameters;
import org.apache.wicket.session.ISessionStore;
import org.apache.wicket.settings.IRequestCycleSettings;
import org.apache.wicket.util.resource.IResourceStream;
@@ -943,6 +944,7 @@
final String resourceReferenceKey =
pathInfo.substring(WebRequestCodingStrategy.RESOURCES_PATH_PREFIX.length());
Resource resource = null;
+ WebRequestCycle requestCycle = null;
boolean externalCall = !Application.exists();
try
@@ -964,12 +966,25 @@
checkCharacterEncoding(servletRequest);
final WebRequest request =
webApplication.newWebRequest(servletRequest);
+ WebResponse response = new
WebResponse();
+ // create a request cycle if not
already there.
+ if (RequestCycle.get() == null)
+ {
+ requestCycle =
(WebRequestCycle)webApplication.newRequestCycle(request,
+ response);
+ }
// make the session available.
- Session.findOrCreate(request, new
WebResponse());
+ Session.findOrCreate(request, response);
+ // decode the parameters so that shared
resource params are also decoded
+ // a request cycle is then needed. (see
above)
+ RequestParameters rp =
RequestCycle.get()
+ .getProcessor()
+ .getRequestCodingStrategy()
+ .decode(request);
// Set parameters from servlet request
-
resource.setParameters(request.getParameterMap());
+
resource.setParameters(rp.getParameters());
// Get resource stream
IResourceStream stream =
resource.getResourceStream();
@@ -1010,6 +1025,14 @@
{
Session.unset();
}
+
+ if (requestCycle != null)
+ {
+ // TODO should this really be called...
only unset it for now. detach does a lot
+ // external things (for example session)
+ // requestCycle.detach();
+ requestCycle.unset();
+ }
}
}
return -1;