Author: jdonnerstag
Date: Tue Apr  7 15:05:11 2009
New Revision: 762807

URL: http://svn.apache.org/viewvc?rev=762807&view=rev
Log:
fix for WICKET-2180 WicketSessionFilter assumes that the WicketFilter has 
already been inited
Issue: WICKET-2180

Modified:
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HttpSessionStore.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/WicketSessionFilter.java

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HttpSessionStore.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HttpSessionStore.java?rev=762807&r1=762806&r2=762807&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HttpSessionStore.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/HttpSessionStore.java
 Tue Apr  7 15:05:11 2009
@@ -170,7 +170,7 @@
         */
        private String getSessionAttributePrefix(final WebRequest request)
        {
-               return application.getSessionAttributePrefix(request);
+               return application.getSessionAttributePrefix(request, null);
        }
 
        /**

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebApplication.java?rev=762807&r1=762806&r2=762807&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/WebApplication.java
 Tue Apr  7 15:05:11 2009
@@ -228,14 +228,42 @@
         *            the request
         * 
         * @return the prefix for storing variables in the actual session
+        * @deprecated since 1.4RC3 please use {...@link 
#getSessionAttributePrefix(WebRequest, String)}
+        *             instead
         */
+       @Deprecated
        public String getSessionAttributePrefix(final WebRequest request)
        {
+               return getSessionAttributePrefix(request, null);
+       }
+
+       /**
+        * Gets the prefix for storing variables in the actual session 
(typically {...@link HttpSession}
+        * for this application instance.
+        * 
+        * @param request
+        *            the request
+        * @param filterName
+        *            If null, than it defaults to the WicketFilter filter 
name. However according to
+        *            the ServletSpec the Filter is not guaranteed to be 
initialized e.g. when
+        *            WicketSessionFilter gets initialized. Thus, though you 
(and WicketSessionFilter)
+        *            can provide a filter name, you must make sure it is the 
same as WicketFilter will
+        *            provide once initialized.
+        * 
+        * @return the prefix for storing variables in the actual session
+        */
+       public String getSessionAttributePrefix(final WebRequest request, 
String filterName)
+       {
                if (sessionAttributePrefix == null)
                {
-                       sessionAttributePrefix = "wicket:" +
-                               
getWicketFilter().getFilterConfig().getFilterName() + ":";
+                       if (filterName == null)
+                       {
+                               // According to the ServletSpec, the filter 
might not yet been initialized
+                               filterName = 
getWicketFilter().getFilterConfig().getFilterName();
+                       }
+                       sessionAttributePrefix = "wicket:" + filterName + ":";
                }
+
                // Namespacing for session attributes is provided by
                // adding the servlet path
                return sessionAttributePrefix;

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/WicketSessionFilter.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/WicketSessionFilter.java?rev=762807&r1=762806&r2=762807&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/WicketSessionFilter.java
 (original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/protocol/http/servlet/WicketSessionFilter.java
 Tue Apr  7 15:05:11 2009
@@ -139,7 +139,8 @@
                }
 
                WebApplication application = 
(WebApplication)Application.get(filterName);
-               sessionKey = application.getSessionAttributePrefix(null) + 
Session.SESSION_ATTRIBUTE_NAME;
+               sessionKey = application.getSessionAttributePrefix(null, 
filterName) +
+                       Session.SESSION_ATTRIBUTE_NAME;
 
                if (log.isDebugEnabled())
                {


Reply via email to