Author: mgrigorov
Date: Wed Sep 14 10:31:08 2011
New Revision: 1170517

URL: http://svn.apache.org/viewvc?rev=1170517&view=rev
Log:
WICKET-4046 Touch pages only when they are returned from the data stores


Modified:
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/page/PageStoreManager.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/page/RequestAdapter.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/request/handler/PageProvider.java

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/page/PageStoreManager.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/page/PageStoreManager.java?rev=1170517&r1=1170516&r2=1170517&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/page/PageStoreManager.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/page/PageStoreManager.java
 Wed Sep 14 10:31:08 2011
@@ -199,7 +199,7 @@ public class PageStoreManager extends Ab
                 */
                public synchronized void setSessionCache(final 
List<IManageablePage> pages)
                {
-                       this.sessionCache = new 
ArrayList<IManageablePage>(pages);
+                       sessionCache = new ArrayList<IManageablePage>(pages);
                        afterReadObject = null;
                }
 
@@ -313,6 +313,12 @@ public class PageStoreManager extends Ab
                @Override
                protected IManageablePage getPage(int id)
                {
+                       IManageablePage touchedPage = findPage(id);
+                       if (touchedPage != null)
+                       {
+                               return touchedPage;
+                       }
+
                        // try to get session entry for this session
                        SessionEntry entry = getSessionEntry(false);
 

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/page/RequestAdapter.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/page/RequestAdapter.java?rev=1170517&r1=1170516&r2=1170517&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/page/RequestAdapter.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/page/RequestAdapter.java
 Wed Sep 14 10:31:08 2011
@@ -115,7 +115,7 @@ public abstract class RequestAdapter
         * @param id
         * @return null, if not found
         */
-       private IManageablePage findPage(final int id)
+       protected IManageablePage findPage(final int id)
        {
                for (IManageablePage page : touchedPages)
                {

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=1170517&r1=1170516&r2=1170517&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
 Wed Sep 14 10:31:08 2011
@@ -17,7 +17,6 @@
 package org.apache.wicket.request.handler;
 
 import org.apache.wicket.Application;
-import org.apache.wicket.Session;
 import org.apache.wicket.page.IPageManager;
 import org.apache.wicket.protocol.http.PageExpiredException;
 import org.apache.wicket.request.IRequestHandler;
@@ -165,27 +164,11 @@ public class PageProvider implements IPa
                        {
                                throw new PageExpiredException("Page with id '" 
+ pageId + "' has expired.");
                        }
-
-                       touchPageInstance(pageInstance);
                }
                return pageInstance;
        }
 
        /**
-        * Mark the error page as candidate for storing
-        * 
-        * @param page
-        *            the page to store
-        */
-       private void touchPageInstance(IRequestablePage page)
-       {
-               if (Session.exists())
-               {
-                       Session.get().getPageManager().touchPage(page);
-               }
-       }
-
-       /**
         * @see 
org.apache.wicket.request.handler.IPageProvider#getPageParameters()
         */
        public PageParameters getPageParameters()


Reply via email to