[
https://issues.apache.org/jira/browse/WICKET-5507?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Jamie Maher updated WICKET-5507:
--------------------------------
Description:
Summary:
Don't use Tomcat versions 5.5.10 - 5.5.15 with Wicket 6, these versions of
Tomcat will not cleanup the page filestore after sessions are invalidated.
Details:
I upgraded an application running on an older version of Tomcat 5.5.12 to
Wicket 6 and the WicketApplication-filestore page store no longer cleaned
itself up anymore when sessions expired.
This would have eventually caused the server to run out of disk space if left
long enough.
I tracked the cause of the Sessions not being cleaned up to the following:
An illegal state exception is thrown in the specified versions of Tomcat 5.5
when the session.getId() is called in the HttpSessionStore.
Apparently this is due to Tomcat invalidating the session before notifying all
of the SessionBindingListeners and an implementation of a draft servlet spec to
throw an IllegalStateException.
The exception occurs in the cleanup code:
HttpSessionStore$SessionBindingListener.valueUnbound(HttpSessionStore.java:465)
where it throws an illegal state exception when checking the "getId()" method
of the Session.
Tomcat versions 5.5.10 - 5.5.15 apparently implemented a portion in the draft
of the servlet spec which specified getId() to throw an illegal state exception
if the session was already invalidated.
(see https://issues.apache.org/bugzilla/show_bug.cgi?id=36994 for details)
This getId() ISE portion of the servlet spec was removed in the final servlet
spec version because of the problems it caused in lots of cleanup code.
Not really expecting Wicket to implement a fix, but I thought I would document
this behavior in case anyone else happens to still run an older Tomcat 5.5
server with an affected version.
was:
I upgraded an application running on an older version of Tomcat 5.5.12 to
Wicket 6 and the WicketApplication-filestore page store no longer cleaned
itself up anymore when sessions expired.
This would have eventually caused the server to run out of disk space if left
long enough.
I tracked the cause of the Sessions not being cleaned up to the following:
An illegal state exception is thrown in the specified versions of Tomcat 5.5
when the session.getId() is called in the HttpSessionStore.
Apparently this is due to Tomcat invalidating the session before notifying all
of the SessionBindingListeners and an implementation of a draft servlet spec to
throw an IllegalStateException.
The exception occurs in the cleanup code:
HttpSessionStore$SessionBindingListener.valueUnbound(HttpSessionStore.java:465)
where it throws an illegal state exception when checking the "getId()" method
of the Session.
Tomcat versions 5.5.10 - 5.5.15 apparently implemented a portion in the draft
of the servlet spec which specified getId() to throw an illegal state exception
if the session was already invalidated.
(see https://issues.apache.org/bugzilla/show_bug.cgi?id=36994 for details)
This getId() ISE portion of the servlet spec was removed in the final servlet
spec version because of the problems it caused in lots of cleanup code.
Not really expecting Wicket to implement a fix, but I thought I would document
this behavior in case anyone else happens to still run an older Tomcat 5.5
server with an affected version.
> Tomcat (version 5.5.10 to 5.5.15) fail to cleanup filestore in Wicket 6
> -----------------------------------------------------------------------
>
> Key: WICKET-5507
> URL: https://issues.apache.org/jira/browse/WICKET-5507
> Project: Wicket
> Issue Type: Bug
> Components: wicket
> Affects Versions: 6.0.0
> Environment: Any version of Tomcat 5.5 from Tomcat 5.5.10 through
> 5.5.15 and Wicket 6.x
> Reporter: Jamie Maher
> Priority: Trivial
> Labels: documentation
>
> Summary:
> Don't use Tomcat versions 5.5.10 - 5.5.15 with Wicket 6, these versions of
> Tomcat will not cleanup the page filestore after sessions are invalidated.
> Details:
> I upgraded an application running on an older version of Tomcat 5.5.12 to
> Wicket 6 and the WicketApplication-filestore page store no longer cleaned
> itself up anymore when sessions expired.
> This would have eventually caused the server to run out of disk space if left
> long enough.
> I tracked the cause of the Sessions not being cleaned up to the following:
> An illegal state exception is thrown in the specified versions of Tomcat 5.5
> when the session.getId() is called in the HttpSessionStore.
> Apparently this is due to Tomcat invalidating the session before notifying
> all of the SessionBindingListeners and an implementation of a draft servlet
> spec to throw an IllegalStateException.
> The exception occurs in the cleanup code:
> HttpSessionStore$SessionBindingListener.valueUnbound(HttpSessionStore.java:465)
>
> where it throws an illegal state exception when checking the "getId()" method
> of the Session.
> Tomcat versions 5.5.10 - 5.5.15 apparently implemented a portion in the draft
> of the servlet spec which specified getId() to throw an illegal state
> exception if the session was already invalidated.
> (see https://issues.apache.org/bugzilla/show_bug.cgi?id=36994 for details)
> This getId() ISE portion of the servlet spec was removed in the final servlet
> spec version because of the problems it caused in lots of cleanup code.
> Not really expecting Wicket to implement a fix, but I thought I would
> document this behavior in case anyone else happens to still run an older
> Tomcat 5.5 server with an affected version.
--
This message was sent by Atlassian JIRA
(v6.1.5#6160)