Github user bitstorm commented on the issue:
https://github.com/apache/wicket/pull/233
I agree about the use of a normal boolean, but I'm not sure I've understood
your idea about ThreadLocal. What I would like to do is to prevent race
conditions inside storeTouchedPages. I would do it using synchronized on entry
object:
```
protected void storeTouchedPages(final List<IManageablePage> touchedPages)
{
if (!touchedPages.isEmpty())
{
SessionEntry entry = getSessionEntry(true);
synchronized (entry)
{
entry.setSessionCache(touchedPages);
for (IManageablePage page : touchedPages)
{
// WICKET-5103 use the same sessionId as used
in SessionEntry#getPage()
pageStore.storePage(entry.sessionId, page);
}
entry.updating.set(true);
setSessionAttribute(getAttributeName(), entry);
}
}
}
```
In this way two possible concurrent requests for the same session would
execute storeTouchedPages one at a time.
---