Author: mgrigorov
Date: Wed Jul  6 11:34:13 2011
New Revision: 1143351

URL: http://svn.apache.org/viewvc?rev=1143351&view=rev
Log:
WICKET-3865 Create a debug page with which the developer can browse the disk 
data store

* Fix the logic for getting the last N page windows from the data store.
* Make some methods protected so they can be used by the debugging data store.


Modified:
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/DiskDataStore.java
    
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/PageWindowManager.java

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/DiskDataStore.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/DiskDataStore.java?rev=1143351&r1=1143350&r2=1143351&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/DiskDataStore.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/DiskDataStore.java
 Wed Jul  6 11:34:13 2011
@@ -177,7 +177,7 @@ public class DiskDataStore implements ID
         * @param create
         * @return the session entry
         */
-       private SessionEntry getSessionEntry(final String sessionId, final 
boolean create)
+       protected SessionEntry getSessionEntry(final String sessionId, final 
boolean create)
        {
                if (!create)
                {
@@ -275,7 +275,7 @@ public class DiskDataStore implements ID
                        this.sessionId = sessionId;
                }
 
-               private PageWindowManager getManager()
+               public PageWindowManager getManager()
                {
                        if (manager == null)
                        {

Modified: 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/PageWindowManager.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/PageWindowManager.java?rev=1143351&r1=1143350&r2=1143351&view=diff
==============================================================================
--- 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/PageWindowManager.java
 (original)
+++ 
wicket/trunk/wicket-core/src/main/java/org/apache/wicket/pageStore/PageWindowManager.java
 Wed Jul  6 11:34:13 2011
@@ -431,6 +431,8 @@ public class PageWindowManager implement
        public synchronized List<PageWindow> getLastPageWindows(int count)
        {
                List<PageWindow> result = new ArrayList<PageWindow>();
+
+               // start from current index to 0
                int currentIndex = indexPointer;
 
                do
@@ -440,16 +442,20 @@ public class PageWindowManager implement
                                break;
                        }
 
-                       PageWindowInternal window = windows.get(currentIndex);
-                       if (window.pageId != -1)
+                       if (currentIndex < windows.size())
                        {
-                               result.add(new PageWindow(window));
+                               PageWindowInternal window = 
windows.get(currentIndex);
+                               if (window.pageId != -1)
+                               {
+                                       result.add(new PageWindow(window));
+                               }
                        }
 
                        --currentIndex;
                        if (currentIndex == -1)
                        {
-                               currentIndex = result.size() - 1;
+                               // rewind to the last entry and collect all 
entries until current index
+                               currentIndex = windows.size() - 1;
                        }
                }
                while (result.size() < count && currentIndex != indexPointer);


Reply via email to