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;


Reply via email to