When calling removePage() of DiskPageStore, that ends up calling the method
removePage() of PageWindowManager. That method correctly removes all version
for a page, but it does not adjust the internal indexPointer, causing the
next call to createPageWindow() to throw an ArrayIndexOutOfBoundsException
when trying to allocate the pageWindow.
I (locally) added the following code to removePage(int pageId, int
versionNumber, int ajaxVersionNumber) of PageWindowManager:
if (index == windows.size() - 1)
{
windows.remove(index);
totalSize -= window.filePartSize;
// patch to correct indexPointer on removal
if (indexPointer == index)
indexPointer--;
}
That currently solved the problem for me. I did not dig deep into the
internals of the code, so it might not be the correct patch.
Jan.
--
View this message in context:
http://www.nabble.com/Bug-in-PageWindowManager-%28used-by-DiskPageStore%29-tf4202349.html#a11952786
Sent from the Wicket - Dev mailing list archive at Nabble.com.