[
https://issues.apache.org/jira/browse/WICKET-1773?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12628333#action_12628333
]
Jan Kriesten commented on WICKET-1773:
--------------------------------------
Behavior is reproducable when sessions are invalidated not within wicket but
e.g. Spring Security.
It turns out that DiskPageStore#unbind calls flushPagesToSaveList() which again
tries to write to the no longer existing SessionStore.
Just clearing the list of pages instead of trying to write them solves the
problem:
---8<---
public void unbind(String sessionId)
{
SessionEntry entry =
(SessionEntry)sessionIdToEntryMap.remove(sessionId);
if (entry != null)
{
if (isSynchronous())
{
entry.unbind();
}
else
{
List pages = getPagesToSaveList(sessionId);
if( pages!=null )
pages.clear();
entry.unbind();
pagesToSaveAll.remove(sessionId);
}
}
}
---8<---
> DiskPageStore-FileNotFoundException
> -----------------------------------
>
> Key: WICKET-1773
> URL: https://issues.apache.org/jira/browse/WICKET-1773
> Project: Wicket
> Issue Type: Bug
> Components: wicket
> Affects Versions: 1.3.4
> Reporter: Jan Kriesten
> Assignee: Matej Knopp
> Fix For: 1.3.5
>
>
> With the current 1.3-Snapshot, I encounter problems with DiskPageStore:
> ---8<---
> 09:30:43.151 ERROR [.wicket.protocol.http.pagestore.DiskPageStore] - Error
> flushing page
> java.lang.RuntimeException: java.io.FileNotFoundException:
> /usr/local/www/services/local.silberlicht.de/html/WEB-INF/tmp/Silberlicht-filestore/abcgm_hyTIaiqgnqDNmUr/pm-null
> (No such file or directory)
> at
> org.apache.wicket.protocol.http.pagestore.FileChannelPool.newFileChannel(FileChannelPool.java:104)
> at
> org.apache.wicket.protocol.http.pagestore.FileChannelPool.getFileChannel(FileChannelPool.java:171)
> at
> org.apache.wicket.protocol.http.pagestore.DiskPageStore$SessionEntry.savePage(DiskPageStore.java:241)
> at
> org.apache.wicket.protocol.http.pagestore.DiskPageStore.flushPagesToSaveList(DiskPageStore.java:891)
> at
> org.apache.wicket.protocol.http.pagestore.DiskPageStore$PageSavingThread.run(DiskPageStore.java:961)
> at java.lang.Thread.run(Thread.java:613)
> Caused by: java.io.FileNotFoundException:
> /usr/local/www/services/local.silberlicht.de/html/WEB-INF/tmp/Silberlicht-filestore/abcgm_hyTIaiqgnqDNmUr/pm-null
> (No such file or directory)
> at java.io.RandomAccessFile.open(Native Method)
> at java.io.RandomAccessFile.<init>(RandomAccessFile.java:212)
> at
> org.apache.wicket.protocol.http.pagestore.FileChannelPool.newFileChannel(FileChannelPool.java:99)
> ... 5 common frames omitted
> ---8<---
> The path
> /usr/local/www/services/local.silberlicht.de/html/WEB-INF/tmp/Silberlicht-filestore/
> actually exists and has the proper rights - so creation of temporary
> directories/files should be possible (actually, the directory was created by
> the wicket app).
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.