Author: knopp
Date: Fri Aug 3 10:31:38 2007
New Revision: 562529
URL: http://svn.apache.org/viewvc?view=rev&rev=562529
Log:
WICKET-736 bugfix
Modified:
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/pagestore/PageWindowManager.java
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/pagestore/PageWindowManagerTest.java
Modified:
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/pagestore/PageWindowManager.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/pagestore/PageWindowManager.java?view=diff&rev=562529&r1=562528&r2=562529
==============================================================================
---
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/pagestore/PageWindowManager.java
(original)
+++
wicket/trunk/jdk-1.4/wicket/src/main/java/org/apache/wicket/protocol/http/pagestore/PageWindowManager.java
Fri Aug 3 10:31:38 2007
@@ -54,7 +54,7 @@
}
// list of PageWindowInternal objects
- private List /* <PageWindowInternal> */windows = new ArrayList();
+ private final List /* <PageWindowInternal> */windows = new ArrayList();
// map from page id to list of pagewindow indices (refering to the
windows
// list) - to improve searching speed
@@ -127,7 +127,8 @@
else if (versionNumber == -1)
{
// we need to find last recently stored page window -
that is page
- // window with index closest to the left of the
indexPointer or farthest
+ // window with index closest to the left of the
indexPointer or
+ // farthest
// to the right.
for (Iterator i = indices.iterator(); i.hasNext();)
{
@@ -137,9 +138,9 @@
if (window.pageId == pageId)
{
if ((result == -1) || /**/
- (currentIndex <= indexPointer
&& result > indexPointer) || /**/
- (currentIndex > result &&
currentIndex <= indexPointer) || /**/
- (currentIndex > result &&
result > indexPointer))
+ (currentIndex <= indexPointer && result
> indexPointer) || /**/
+ (currentIndex > result && currentIndex
<= indexPointer) || /**/
+ (currentIndex > result && result >
indexPointer))
{
result = currentIndex;
}
@@ -155,8 +156,8 @@
int currentIndex =
((Integer)i.next()).intValue();
PageWindowInternal window =
(PageWindowInternal)windows.get(currentIndex);
- if (window.pageId == pageId &&
window.versionNumber == versionNumber &&
- window.ajaxVersionNumber >
lastAjaxVersion)
+ if (window.pageId == pageId &&
window.versionNumber == versionNumber &&
+ window.ajaxVersionNumber >
lastAjaxVersion)
{
result = currentIndex;
lastAjaxVersion =
window.ajaxVersionNumber;
@@ -513,6 +514,10 @@
{
windows.remove(index);
totalSize -= window.filePartSize;
+ if (indexPointer == index)
+ {
+ --indexPointer;
+ }
}
else
{
Modified:
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/pagestore/PageWindowManagerTest.java
URL:
http://svn.apache.org/viewvc/wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/pagestore/PageWindowManagerTest.java?view=diff&rev=562529&r1=562528&r2=562529
==============================================================================
---
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/pagestore/PageWindowManagerTest.java
(original)
+++
wicket/trunk/jdk-1.4/wicket/src/test/java/org/apache/wicket/protocol/http/pagestore/PageWindowManagerTest.java
Fri Aug 3 10:31:38 2007
@@ -28,137 +28,142 @@
/**
*
*/
- public void testAddRemove()
+ public void testAddRemove()
{
PageWindowManager manager = new PageWindowManager(300);
PageWindow window;
-
+
window = manager.createPageWindow(1, 1, 1, 50);
assertWindow(window, 1, 1, 1, 0, 50);
-
+
window = manager.createPageWindow(1, 1, 2, 40);
assertWindow(window, 1, 1, 2, 50, 40);
-
+
assertEquals(manager.getTotalSize(), 90);
-
+
window = manager.createPageWindow(1, 1, 2, 30);
assertWindow(window, 1, 1, 2, 50, 30);
assertEquals(manager.getTotalSize(), 80);
-
+
manager.removePage(1, 1, 2);
assertEquals(manager.getTotalSize(), 50);
+
+ window = manager.createPageWindow(1, 1, 3, 30);
+ assertWindow(window, 1, 1, 3, 50, 30);
+ assertEquals(manager.getTotalSize(), 80);
}
-
+
/**
*
*/
- public void testPageWindowCycle()
+ public void testPageWindowCycle()
{
PageWindowManager manager = new PageWindowManager(100);
PageWindow window;
-
+
window = manager.createPageWindow(1, 1, 1, 30);
-
+
window = manager.createPageWindow(1, 1, 2, 30);
-
+
window = manager.createPageWindow(1, 1, 3, 30);
-
+
assertWindow(window, 1, 1, 3, 60, 30);
-
+
window = manager.createPageWindow(1, 1, 4, 30);
-
+
assertWindow(window, 1, 1, 4, 90, 30);
-
+
// should start at the beginging
-
+
window = manager.createPageWindow(1, 1, 5, 20);
-
+
assertWindow(window, 1, 1, 5, 0, 20);
-
+
assertNull(manager.getPageWindow(1, 1, 1));
-
+
window = manager.getPageWindow(1, 1, 2);
assertWindow(window, 1, 1, 2, 30, 30);
-
+
window = manager.createPageWindow(1, 1, 6, 10);
assertWindow(window, 1, 1, 6, 20, 10);
-
+
window = manager.getPageWindow(1, 1, 2);
assertWindow(window, 1, 1, 2, 30, 30);
window = manager.createPageWindow(1, 1, 6, 30);
assertWindow(window, 1, 1, 6, 20, 30);
-
+
assertNull(manager.getPageWindow(1, 1, 2));
assertNotNull(manager.getPageWindow(1, 1, 3));
-
+
window = manager.createPageWindow(1, 1, 6, 60);
assertWindow(window, 1, 1, 6, 20, 60);
-
+
assertNull(manager.getPageWindow(1, 1, 3));
-
+
window = manager.createPageWindow(1, 1, 7, 20);
assertWindow(window, 1, 1, 7, 80, 20);
-
+
assertNotNull(manager.getPageWindow(1, 1, 7));
-
+
// should start at the beginning again
-
+
window = manager.createPageWindow(1, 1, 8, 10);
assertWindow(window, 1, 1, 8, 0, 10);
-
+
assertNull(manager.getPageWindow(1, 1, 5));
assertNotNull(manager.getPageWindow(1, 1, 6));
-
+
window = manager.createPageWindow(1, 1, 9, 20);
assertWindow(window, 1, 1, 9, 10, 20);
-
+
assertNull(manager.getPageWindow(1, 1, 6));
assertNotNull(manager.getPageWindow(1, 1, 7));
-
+
window = manager.createPageWindow(1, 1, 10, 20);
assertWindow(window, 1, 1, 10, 30, 20);
-
+
assertNull(manager.getPageWindow(1, 1, 6));
assertNotNull(manager.getPageWindow(1, 1, 7));
-
- // make sure when replacing a page that's not last the old
"instance" is not valid anymore
-
+
+ // make sure when replacing a page that's not last the old
"instance" is
+ // not valid anymore
+
manager.createPageWindow(1, 1, 8, 10);
-
+
window = manager.getPageWindow(1, 1, 8);
assertWindow(window, 1, 1, 8, 50, 10);
-
+
}
-
+
/**
*
*/
- public void testLastVersions()
+ public void testLastVersions()
{
PageWindowManager manager = new PageWindowManager(100);
PageWindow window;
manager.createPageWindow(1, 1, 1, 10);
-
+
manager.createPageWindow(1, 1, 2, 10);
-
+
manager.createPageWindow(1, 1, 3, 10);
-
+
window = manager.getPageWindow(1, -1, -1);
-
+
assertWindow(window, 1, 1, 3);
manager.createPageWindow(1, 1, 2, 10);
-
+
window = manager.getPageWindow(1, -1, -1);
assertWindow(window, 1, 1, 2);
-
+
manager.createPageWindow(1, 1, 4, 60);
-
+
window = manager.getPageWindow(1, -1, -1);
assertWindow(window, 1, 1, 4);
-
+
manager.createPageWindow(2, 1, 1, 20);
window = manager.getPageWindow(1, -1, -1);
@@ -166,25 +171,27 @@
manager.createPageWindow(1, 1, 5, 60);
manager.createPageWindow(3, 1, 1, 20);
-
+
window = manager.getPageWindow(1, -1, -1);
assertWindow(window, 1, 1, 5);
}
-
- private void assertWindow(PageWindow window, int pageId, int
versionNumber, int ajaxVersionNumber,
- int filePartOffset, int filePartSize)
+
+ private void assertWindow(PageWindow window, int pageId, int
versionNumber,
+ int ajaxVersionNumber, int filePartOffset, int
filePartSize)
{
assertTrue(window.getPageId() == pageId &&
window.getVersionNumber() == versionNumber &&
- window.getAjaxVersionNumber() ==
ajaxVersionNumber && window.getFilePartOffset() == filePartOffset &&
- window.getFilePartSize() == filePartSize);
+ window.getAjaxVersionNumber() ==
ajaxVersionNumber &&
+ window.getFilePartOffset() == filePartOffset &&
+ window.getFilePartSize() == filePartSize);
}
- private void assertWindow(PageWindow window, int pageId, int
versionNumber, int ajaxVersionNumber)
+ private void assertWindow(PageWindow window, int pageId, int
versionNumber,
+ int ajaxVersionNumber)
{
assertTrue(window.getPageId() == pageId &&
window.getVersionNumber() == versionNumber &&
- window.getAjaxVersionNumber() ==
ajaxVersionNumber);
-
+ window.getAjaxVersionNumber() ==
ajaxVersionNumber);
+
}
}