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.

Reply via email to