Author: mgrigorov
Date: Sun Aug 28 17:27:43 2011
New Revision: 1162563

URL: http://svn.apache.org/viewvc?rev=1162563&view=rev
Log:
WICKET-3991 SignInPanel prevents the page being Stateless when signing in with 
the "rember me" facility.
WICKET-3965 A (stateless) page immediately disappears after the first render

Revert the changes for WICKET-3991 and reimplement WICKET-3965. Not the 
stateless hint is set automatically only for usages of 
RequestCycle#setResponsePage(IRequestablePage).

TODO: see how MockPageManager#touchPage() can be fixed too. Currently it stores 
even stateless pages, which is wrong.


Modified:
    wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Component.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/mock/MockPageManager.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/ListenerInterfaceRequestHandler.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/PageProvider.java
    
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_10-2.html
    
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_10-3.html

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Component.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Component.java?rev=1162563&r1=1162562&r2=1162563&view=diff
==============================================================================
--- wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Component.java 
(original)
+++ wicket/trunk/wicket-core/src/main/java/org/apache/wicket/Component.java Sun 
Aug 28 17:27:43 2011
@@ -3286,17 +3286,14 @@ public abstract class Component
        {
                int id = getBehaviorId(behaviour);
                Page page = getPage();
+               PageAndComponentProvider provider = new 
PageAndComponentProvider(page, this);
                IRequestHandler handler;
                if (page.isPageStateless())
                {
-                       PageAndComponentProvider provider = new 
PageAndComponentProvider(page.getPageId(),
-                               page.getPageClass(), page.getPageParameters(), 
page.getRenderCount(),
-                               getPageRelativePath());
                        handler = new 
BookmarkableListenerInterfaceRequestHandler(provider, listener, id);
                }
                else
                {
-                       PageAndComponentProvider provider = new 
PageAndComponentProvider(page, this);
                        handler = new ListenerInterfaceRequestHandler(provider, 
listener, id);
                }
                return getRequestCycle().urlFor(handler);
@@ -3329,17 +3326,14 @@ public abstract class Component
        public final CharSequence urlFor(final RequestListenerInterface 
listener)
        {
                Page page = getPage();
+               PageAndComponentProvider provider = new 
PageAndComponentProvider(page, this);
                IRequestHandler handler;
                if (page.isPageStateless())
                {
-                       PageAndComponentProvider provider = new 
PageAndComponentProvider(page.getPageId(),
-                               page.getPageClass(), page.getPageParameters(), 
page.getRenderCount(),
-                               getPageRelativePath());
                        handler = new 
BookmarkableListenerInterfaceRequestHandler(provider, listener);
                }
                else
                {
-                       PageAndComponentProvider provider = new 
PageAndComponentProvider(page, this);
                        handler = new ListenerInterfaceRequestHandler(provider, 
listener);
                }
                return getRequestCycle().urlFor(handler);

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/mock/MockPageManager.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/mock/MockPageManager.java?rev=1162563&r1=1162562&r2=1162563&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/mock/MockPageManager.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/mock/MockPageManager.java
 Sun Aug 28 17:27:43 2011
@@ -78,7 +78,7 @@ public class MockPageManager implements 
 
        public void touchPage(IManageablePage page)
        {
-               if (page.isPageStateless() == false)
+               if (true || page.isPageStateless() == false)
                {
                        pages.put(page.getPageId(), page);
                }

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java?rev=1162563&r1=1162562&r2=1162563&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/cycle/RequestCycle.java
 Sun Aug 28 17:27:43 2011
@@ -556,6 +556,10 @@ public class RequestCycle implements IRe
         */
        public void setResponsePage(IRequestablePage page)
        {
+               if (page instanceof Page)
+               {
+                       ((Page)page).setStatelessHint(false);
+               }
                scheduleRequestHandlerAfterCurrent(new 
RenderPageRequestHandler(new PageProvider(page),
                        RenderPageRequestHandler.RedirectPolicy.AUTO_REDIRECT));
        }

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/ListenerInterfaceRequestHandler.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/ListenerInterfaceRequestHandler.java?rev=1162563&r1=1162562&r2=1162563&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/ListenerInterfaceRequestHandler.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/ListenerInterfaceRequestHandler.java
 Sun Aug 28 17:27:43 2011
@@ -153,22 +153,11 @@ public class ListenerInterfaceRequestHan
                        if (isAjax == false && 
listenerInterface.isRenderPageAfterInvocation())
                        {
                                // schedule page render after current request 
handler is done. this can be
-                               // overridden
-                               // during invocation of listener
+                               // overridden during invocation of listener
                                // method (i.e. by calling 
RequestCycle#setResponsePage)
-                               final IPageProvider pageProvider;
-                               final RedirectPolicy policy;
-                               if (page.isPageStateless())
-                               {
-                                       policy = RedirectPolicy.NEVER_REDIRECT;
-                                       pageProvider = new 
PageProvider(page.getPageId(), page.getClass(),
-                                               page.getPageParameters(), 
page.getRenderCount());
-                               }
-                               else
-                               {
-                                       policy = RedirectPolicy.AUTO_REDIRECT;
-                                       pageProvider = new PageProvider(page);
-                               }
+                               final IPageProvider pageProvider = new 
PageProvider(page);
+                               final RedirectPolicy policy = 
page.isPageStateless()
+                                       ? RedirectPolicy.NEVER_REDIRECT : 
RedirectPolicy.AUTO_REDIRECT;
 
                                
requestCycle.scheduleRequestHandlerAfterCurrent(new RenderPageRequestHandler(
                                        pageProvider, policy));

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/PageProvider.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/PageProvider.java?rev=1162563&r1=1162562&r2=1162563&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/PageProvider.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/PageProvider.java
 Sun Aug 28 17:27:43 2011
@@ -17,7 +17,6 @@
 package org.apache.wicket.request.handler;
 
 import org.apache.wicket.Application;
-import org.apache.wicket.Page;
 import org.apache.wicket.Session;
 import org.apache.wicket.page.IPageManager;
 import org.apache.wicket.protocol.http.PageExpiredException;
@@ -151,10 +150,6 @@ public class PageProvider implements IPa
                pageInstance = page;
                pageId = page.getPageId();
                renderCount = page.getRenderCount();
-               if (pageInstance instanceof Page)
-               {
-                       ((Page)pageInstance).setStatelessHint(false);
-               }
        }
 
        /**

Modified: 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_10-2.html
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_10-2.html?rev=1162563&r1=1162562&r2=1162563&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_10-2.html
 (original)
+++ 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_10-2.html
 Sun Aug 28 17:27:43 2011
@@ -1,5 +1,8 @@
 <html xmlns:wicket>
 <body>
-  
+  <wicket:enclosure child="input">
+    <input wicket:id="input" type="checkbox" name="input"/>
+    <span wicket:id="label"></span>
+  </wicket:enclosure>
 </body>
 </html>

Modified: 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_10-3.html
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_10-3.html?rev=1162563&r1=1162562&r2=1162563&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_10-3.html
 (original)
+++ 
wicket/trunk/wicket-core/src/test/java/org/apache/wicket/markup/html/internal/EnclosurePageExpectedResult_10-3.html
 Sun Aug 28 17:27:43 2011
@@ -2,7 +2,7 @@
 <body>
   <wicket:enclosure child="input">
     <input wicket:id="input" type="checkbox" name="input"/>
-    
+    <span wicket:id="label"></span>
   </wicket:enclosure>
 </body>
 </html>


Reply via email to