[jboss-jira] [JBoss JIRA] (WFLY-10661) IllegalMonitorStateException if session invalidated after redirect

Paul Ferraro (JIRA) issues at jboss.org
Thu Jul 5 10:55:00 EDT 2018


    [ https://issues.jboss.org/browse/WFLY-10661?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13601572#comment-13601572 ] 

Paul Ferraro commented on WFLY-10661:
-------------------------------------

To clarify, the lifecycle of an Undertow session does not extend beyond commitment of the response (which closes the session), hence the exception.
We should detect this condition, and throw an ISE containing a more descriptive message instead.

> IllegalMonitorStateException if session invalidated after redirect
> ------------------------------------------------------------------
>
>                 Key: WFLY-10661
>                 URL: https://issues.jboss.org/browse/WFLY-10661
>             Project: WildFly
>          Issue Type: Bug
>          Components: Clustering
>         Environment: EAP 7.1.3
>            Reporter: Aaron Ogburn
>            Assignee: Paul Ferraro
>            Priority: Minor
>         Attachments: undertow1374.war
>
>
> response.sendRedirect unlocks the session.  So attempting session.invalidate after any sendRedirect throws an IllegalMonitorStateException when it attempts to unlock it again:
> {code}
> 16:35:11,267 INFO  [stdout] (default task-1) --------------------------->StampedLock.unlock java.util.concurrent.locks.StampedLock at 2a03fe4a[Unlocked] 257
> 16:35:11,267 INFO  [stdout] (default task-1) java.util.concurrent.locks.StampedLock.unlock(StampedLock.java:603)
> 16:35:11,267 INFO  [stdout] (default task-1) org.wildfly.clustering.web.undertow.session.DistributableSessionManager.lambda$getSessionCloseTask$1(DistributableSessionManager.java:103)
> 16:35:11,267 INFO  [stdout] (default task-1) org.wildfly.clustering.web.undertow.session.DistributableSession.requestDone(DistributableSession.java:96)
> 16:35:11,267 INFO  [stdout] (default task-1) io.undertow.servlet.spec.ServletContextImpl.updateSessionAccessTime(ServletContextImpl.java:860)
> 16:35:11,267 INFO  [stdout] (default task-1) io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpServletResponseImpl.java:572)
> 16:35:11,267 INFO  [stdout] (default task-1) io.undertow.servlet.spec.HttpServletResponseImpl.sendRedirect(HttpServletResponseImpl.java:203)
> 16:35:11,267 INFO  [stdout] (default task-1) org.apache.jsp.hi_jsp._jspService(hi_jsp.java:136)
> ...
> Caused by: java.lang.IllegalMonitorStateException
> 	at java.util.concurrent.locks.StampedLock.unlock(StampedLock.java:609)
> 	at org.wildfly.clustering.web.undertow.session.DistributableSessionManager.lambda$getSessionCloseTask$1(DistributableSessionManager.java:103)
> 	at org.wildfly.clustering.web.undertow.session.DistributableSession.invalidate(DistributableSession.java:218)
> 	at io.undertow.servlet.spec.HttpSessionImpl.invalidate(HttpSessionImpl.java:198)
> 	at org.apache.jsp.hi_jsp._jspService(hi_jsp.java:137)
> 	at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
> 	at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
> 	at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:433)
> {code}



--
This message was sent by Atlassian JIRA
(v7.5.0#75005)


More information about the jboss-jira mailing list