]
Sammy Chu commented on WFLY-6315:
---------------------------------
Finally we accessed {{SessionManager}} by casting {{ServletContext}} to
{{io.undertow.servlet.spec.ServletContextImpl}} to access the {{Deployment}} and finally
got the {{SessionManager}}.
After that, we found {{SessionManager.getSession(sessionId).invalidate(null)}} is not
working. Tracing code and found it returned {{DistributableImmutableSession}} which not
responding on any session change (ref:
)
to workaround such issue and marked TODO flag to remove this hack after Wildfly 8.2, but
seems still needed till now... (WFLY-3345, KEYCLOAK-733)
Using that hack, we managed to make our SSO & SLO solution works now!
But we found some strange: after invalidating a session, the data stored in the session
attributes being erased, but seems the session id is still valid. Meaning if the user
revisit our system with the previous invalidated session Id as the JSESSIONID cookie,
Wildfly still consider the session is valid (no another
{{HttpSessionListener.sessionCreated()}} being called). This buggy behaviour only occurred
in clustering, standalone-full without <distributable /> tag works correctly.
session.invalidate() behaviour not conform Servlet specification in
HA profile
------------------------------------------------------------------------------
Key: WFLY-6315
URL:
https://issues.jboss.org/browse/WFLY-6315
Project: WildFly
Issue Type: Bug
Components: Clustering
Affects Versions: 10.0.0.Final
Environment: Wildfly 8.2.1-Final
JDK 1.8.0_66-b17
Windows & Linux
Reporter: Sammy Chu
Assignee: Paul Ferraro
Priority: Blocker
Attachments: session-invalidate-noreplication.war,
session-invalidate-noreplication.war, session-invalidate-replication-attribute.war,
session-invalidate-replication-attribute.war, session-invalidate-replication-session.war,
session-invalidate-replication-session.war
We suspected that calling session.invalidate() on an already invalidated session with
replication-granularity set to "ATTRIBUTE" will throw a NullPointerException,
but from the specification it should throw an IllegalStateException instead.
Stack trace as below:
{noformat}
13:12:35,554 ERROR [io.undertow.request] (default task-32) UT005023: Exception handling
request to /<our system url>: java.lang.NullPointerException
at
org.wildfly.clustering.web.infinispan.session.fine.FineSessionFactory$1.invoke(FineSessionFactory.java:103)
at
org.wildfly.clustering.web.infinispan.session.fine.FineSessionFactory$1.invoke(FineSessionFactory.java:100)
at
org.jboss.as.clustering.infinispan.invoker.SimpleCacheInvoker.invoke(SimpleCacheInvoker.java:34)
at
org.jboss.as.clustering.infinispan.invoker.RetryingCacheInvoker.invoke(RetryingCacheInvoker.java:87)
at
org.wildfly.clustering.web.infinispan.session.fine.FineSessionFactory.remove(FineSessionFactory.java:109)
at
org.wildfly.clustering.web.infinispan.session.fine.FineSessionFactory.remove(FineSessionFactory.java:53)
at
org.wildfly.clustering.web.infinispan.session.InfinispanSession.invalidate(InfinispanSession.java:74)
at
org.wildfly.clustering.web.infinispan.session.InfinispanSessionManager$SchedulableSession.invalidate(InfinispanSessionManager.java:359)
at
org.wildfly.clustering.web.undertow.session.DistributableSession.invalidate(DistributableSession.java:140)
at io.undertow.servlet.spec.HttpSessionImpl.invalidate(HttpSessionImpl.java:199)
[undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
... // our application code, just calling "session.invalidate()"
{noformat}
We also enclosed the simplified samples to reproduce this issue
(session-invalidate-noreplication.war, session-invalidate-replication-attribute.war,
session-invalidate-replication-session.war). In general they are the same except the
replication-granularity (in jboss-web.xml => replication-granularity) settings.
# session-invalidate-noreplication.war and session-invalidate-replication-session.war
works correctly as they are throwing IllegalStateException.
# session-invalidate-replication-attribute.war is buggy because it throw
NullPointerException instead.
For more information, please refer to
https://developer.jboss.org/message/947295
*Updated in 2016-04-27*
Test again in Wildfly 8.2.1.Final, Wildfly 10.0.0.Final and Wildfly 10.1.0.Final-SNAPSHOT
(master branch), with HA profile (2 nodes in same machine), with my updated WARs, detail
as below:
*Wildfly 8.2.1.Final*:
* session-invalidate-noreplication.war - throwing IllegalStateException in the index.jsp
(line 62), which is expected, detail stacktrace as below:
{noformat}
15:42:56,424 INFO [stdout] (default task-9) {} session.invalidate() throw
IllegalStateException, but it is intended!!!
15:42:56,424 ERROR [stderr] (default task-9) {} java.lang.IllegalStateException:
UT000021: Session already invalidated
15:42:56,424 ERROR [stderr] (default task-9) {} at
io.undertow.server.session.InMemorySessionManager$SessionImpl.invalidate(InMemorySessionManager.java:415)
15:42:56,425 ERROR [stderr] (default task-9) {} at
io.undertow.server.session.InMemorySessionManager$SessionImpl.invalidate(InMemorySessionManager.java:404)
15:42:56,425 ERROR [stderr] (default task-9) {} at
io.undertow.servlet.spec.HttpSessionImpl.invalidate(HttpSessionImpl.java:199)
15:42:56,425 ERROR [stderr] (default task-9) {} at
org.apache.jsp.index_jsp._jspService(index_jsp.java:62)
15:42:56,425 ERROR [stderr] (default task-9) {} at
org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:69)
15:42:56,425 ERROR [stderr] (default task-9) {} at
javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
15:42:56,426 ERROR [stderr] (default task-9) {} at
org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:366)
15:42:56,426 ERROR [stderr] (default task-9) {} at
org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:326)
15:42:56,426 ERROR [stderr] (default task-9) {} at
org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259)
15:42:56,426 ERROR [stderr] (default task-9) {} at
javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
15:42:56,426 ERROR [stderr] (default task-9) {} at
io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:86)
15:42:56,426 ERROR [stderr] (default task-9) {} at
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:130)
15:42:56,426 ERROR [stderr] (default task-9) {} at
com.jboss.test.StoreSessionFilter.doFilter(StoreSessionFilter.java:72)
15:42:56,426 ERROR [stderr] (default task-9) {} at
io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)
15:42:56,427 ERROR [stderr] (default task-9) {} at
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)
15:42:56,427 ERROR [stderr] (default task-9) {} at
io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85)
15:42:56,427 ERROR [stderr] (default task-9) {} at
io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
15:42:56,427 ERROR [stderr] (default task-9) {} at
io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
15:42:56,427 ERROR [stderr] (default task-9) {} at
org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
15:42:56,427 ERROR [stderr] (default task-9) {} at
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
15:42:56,427 ERROR [stderr] (default task-9) {} at
io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
15:42:56,427 ERROR [stderr] (default task-9) {} at
io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
15:42:56,428 ERROR [stderr] (default task-9) {} at
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
15:42:56,428 ERROR [stderr] (default task-9) {} at
io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
15:42:56,428 ERROR [stderr] (default task-9) {} at
io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
15:42:56,428 ERROR [stderr] (default task-9) {} at
io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58)
15:42:56,428 ERROR [stderr] (default task-9) {} at
io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70)
15:42:56,428 ERROR [stderr] (default task-9) {} at
io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76)
15:42:56,428 ERROR [stderr] (default task-9) {} at
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
15:42:56,428 ERROR [stderr] (default task-9) {} at
org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
15:42:56,429 ERROR [stderr] (default task-9) {} at
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
15:42:56,429 ERROR [stderr] (default task-9) {} at
io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
15:42:56,429 ERROR [stderr] (default task-9) {} at
io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:261)
15:42:56,429 ERROR [stderr] (default task-9) {} at
io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:248)
15:42:56,429 ERROR [stderr] (default task-9) {} at
io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:77)
15:42:56,429 ERROR [stderr] (default task-9) {} at
io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:167)
15:42:56,429 ERROR [stderr] (default task-9) {} at
io.undertow.server.Connectors.executeRootHandler(Connectors.java:199)
15:42:56,429 ERROR [stderr] (default task-9) {} at
io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:761)
15:42:56,430 ERROR [stderr] (default task-9) {} at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
15:42:56,430 ERROR [stderr] (default task-9) {} at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
15:42:56,430 ERROR [stderr] (default task-9) {} at
java.lang.Thread.run(Thread.java:745)
{noformat}
* session-invalidate-replication-session.war - do *NOT* throw IllegalStateException when
invalidating an already invalidated session, which is incorrect. My test just print:
{noformat}
15:38:38,568 ERROR [stderr] (default task-4) {} Should not reach here!!! That means
session.invalidate() do NOT throw IllegalStateException
{noformat}
* session-invalidate-replication-attribute.war - throwing NullPointerException in the
index.jsp (line 62), which is incorrect. Detail stacktrace as below:
{noformat}
15:38:57,894 ERROR [io.undertow.request] (default task-6) {} UT005023: Exception handling
request to /session-invalidate-replication-attribute/index.jsp:
org.apache.jasper.JasperException: JBWEB004038: An exception occurred processing JSP page
/index.jsp at line 7
4: <%
5: if (request.getParameter("logout") != null) {
6: try {
7: session.invalidate(); // invalidate the invalidated session
8: System.err.println("Should not reach here!!! That means session.invalidate()
do NOT throw IllegalStateException");
9: } catch (IllegalStateException e) {
10: // expected to throw IllegalStateException when invalidate a invalidated session
Stacktrace:
at
org.apache.jasper.servlet.JspServletWrapper.handleJspException(JspServletWrapper.java:494)
[jastow-1.0.0.Final.jar:1.0.0.Final]
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:408)
[jastow-1.0.0.Final.jar:1.0.0.Final]
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:326)
[jastow-1.0.0.Final.jar:1.0.0.Final]
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:259)
[jastow-1.0.0.Final.jar:1.0.0.Final]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
[jboss-servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final]
at io.undertow.servlet.handlers.ServletHandler.handleRequest(ServletHandler.java:86)
[undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
at
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:130)
[undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
at com.jboss.test.StoreSessionFilter.doFilter(StoreSessionFilter.java:72) [classes:]
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)
[undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
at
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:132)
[undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:85)
[undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
at
io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
[undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
at
io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
[undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
at
org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]
at
io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
[undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
at
io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
[undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]
at
io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]
at
io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
[undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
at
io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:58)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]
at
io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:70)
[undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
at
io.undertow.security.handlers.SecurityInitialHandler.handleRequest(SecurityInitialHandler.java:76)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]
at
org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]
at
io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:261)
[undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
at
io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:248)
[undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
at
io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:77)
[undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
at
io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:167)
[undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:199)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:761)
[undertow-core-1.1.8.Final.jar:1.1.8.Final]
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
[rt.jar:1.8.0_92]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
[rt.jar:1.8.0_92]
at java.lang.Thread.run(Thread.java:745) [rt.jar:1.8.0_92]
Caused by: java.lang.NullPointerException
at
org.wildfly.clustering.web.infinispan.session.fine.FineSessionFactory$1.invoke(FineSessionFactory.java:103)
at
org.wildfly.clustering.web.infinispan.session.fine.FineSessionFactory$1.invoke(FineSessionFactory.java:100)
at
org.jboss.as.clustering.infinispan.invoker.SimpleCacheInvoker.invoke(SimpleCacheInvoker.java:34)
at
org.jboss.as.clustering.infinispan.invoker.RetryingCacheInvoker.invoke(RetryingCacheInvoker.java:87)
at
org.wildfly.clustering.web.infinispan.session.fine.FineSessionFactory.remove(FineSessionFactory.java:109)
at
org.wildfly.clustering.web.infinispan.session.fine.FineSessionFactory.remove(FineSessionFactory.java:53)
at
org.wildfly.clustering.web.infinispan.session.InfinispanSession.invalidate(InfinispanSession.java:74)
at
org.wildfly.clustering.web.infinispan.session.InfinispanSessionManager$SchedulableSession.invalidate(InfinispanSessionManager.java:359)
at
org.wildfly.clustering.web.undertow.session.DistributableSession.invalidate(DistributableSession.java:140)
at io.undertow.servlet.spec.HttpSessionImpl.invalidate(HttpSessionImpl.java:199)
[undertow-servlet-1.1.8.Final.jar:1.1.8.Final]
at org.apache.jsp.index_jsp._jspService(index_jsp.java:62)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:69)
[jastow-1.0.0.Final.jar:1.0.0.Final]
at javax.servlet.http.HttpServlet.service(HttpServlet.java:790)
[jboss-servlet-api_3.1_spec-1.0.0.Final.jar:1.0.0.Final]
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:366)
[jastow-1.0.0.Final.jar:1.0.0.Final]
... 34 more
{noformat}
*Wildfly-10.0.0.Final:*
* session-invalidate-noreplication.war - same as Wildfly 8 to throw IllegalStateException
which is intended.
* session-invalidate-replication-session.war - throwing IllegalStateException in the
filter!!! (Yes, in the filter, NOT in the index.jsp!!!) which is incorrect. Detail as
below:
{noformat}
16:00:28,742 ERROR [org.infinispan.interceptors.InvocationContextInterceptor] (default
task-5) {} ISPN000136: Error executing command GetKeyValueCommand, writing keys []:
java.lang.IllegalStateException: Transaction DummyTransaction{xid=DummyXid{id=5},
status=3} is not in a valid state to be invoking cache operations on.
at org.infinispan.interceptors.TxInterceptor.enlist(TxInterceptor.java:394)
at org.infinispan.interceptors.TxInterceptor.enlistIfNeeded(TxInterceptor.java:350)
at
org.infinispan.interceptors.TxInterceptor.enlistReadAndInvokeNext(TxInterceptor.java:344)
at
org.infinispan.interceptors.TxInterceptor.visitGetKeyValueCommand(TxInterceptor.java:330)
at
org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
at
org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:113)
at
org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:85)
at
org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
at
org.infinispan.statetransfer.StateTransferInterceptor.handleTopologyAffectedCommand(StateTransferInterceptor.java:405)
at
org.infinispan.statetransfer.StateTransferInterceptor.handleDefault(StateTransferInterceptor.java:390)
at
org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:85)
at
org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
at
org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:107)
at
org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:76)
at
org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:85)
at
org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)
at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:336)
at org.infinispan.cache.impl.CacheImpl.get(CacheImpl.java:411)
at org.infinispan.cache.impl.CacheImpl.get(CacheImpl.java:403)
at
org.infinispan.cache.impl.AbstractDelegatingCache.get(AbstractDelegatingCache.java:286)
at
org.wildfly.clustering.server.registry.CacheRegistry.getEntry(CacheRegistry.java:128)
at
org.wildfly.clustering.web.infinispan.session.InfinispanRouteLocator.locate(InfinispanRouteLocator.java:58)
at
org.wildfly.clustering.web.undertow.session.DistributableSessionIdentifierCodec.encode(DistributableSessionIdentifierCodec.java:48)
at
org.wildfly.extension.undertow.session.CodecSessionConfig.clearSession(CodecSessionConfig.java:51)
at
io.undertow.servlet.spec.ServletContextImpl$ServletContextSessionConfig.clearSession(ServletContextImpl.java:985)
at
org.wildfly.clustering.web.undertow.session.DistributableSession.invalidate(DistributableSession.java:184)
at io.undertow.servlet.spec.HttpSessionImpl.invalidate(HttpSessionImpl.java:199)
at com.jboss.test.StoreSessionFilter.doFilter(StoreSessionFilter.java:58)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)
at
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
at
io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
at io.undertow.jsp.JspFileHandler.handleRequest(JspFileHandler.java:32)
at
io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
at
org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at
io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
at
io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at
io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
at
io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
at
io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
at
io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
at
io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
at
io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at
org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at
io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:284)
at
io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:263)
at
io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
at
io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:174)
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:793)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
16:00:28,743 ERROR [com.jboss.test.StoreSessionFilter] (default task-5) {} Transaction
DummyTransaction{xid=DummyXid{id=5}, status=3} is not in a valid state to be invoking
cache operations on.: java.lang.IllegalStateException: Transaction
DummyTransaction{xid=DummyXid{id=5}, status=3} is not in a valid state to be invoking
cache operations on.
at org.infinispan.interceptors.TxInterceptor.enlist(TxInterceptor.java:394)
at org.infinispan.interceptors.TxInterceptor.enlistIfNeeded(TxInterceptor.java:350)
at
org.infinispan.interceptors.TxInterceptor.enlistReadAndInvokeNext(TxInterceptor.java:344)
at
org.infinispan.interceptors.TxInterceptor.visitGetKeyValueCommand(TxInterceptor.java:330)
at
org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
at
org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:113)
at
org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:85)
at
org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
at
org.infinispan.statetransfer.StateTransferInterceptor.handleTopologyAffectedCommand(StateTransferInterceptor.java:405)
at
org.infinispan.statetransfer.StateTransferInterceptor.handleDefault(StateTransferInterceptor.java:390)
at
org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:85)
at
org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)
at
org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:99)
at
org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:107)
at
org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:76)
at
org.infinispan.commands.AbstractVisitor.visitGetKeyValueCommand(AbstractVisitor.java:85)
at
org.infinispan.commands.read.GetKeyValueCommand.acceptVisitor(GetKeyValueCommand.java:40)
at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:336)
at org.infinispan.cache.impl.CacheImpl.get(CacheImpl.java:411)
at org.infinispan.cache.impl.CacheImpl.get(CacheImpl.java:403)
at
org.infinispan.cache.impl.AbstractDelegatingCache.get(AbstractDelegatingCache.java:286)
at
org.wildfly.clustering.server.registry.CacheRegistry.getEntry(CacheRegistry.java:128)
at
org.wildfly.clustering.web.infinispan.session.InfinispanRouteLocator.locate(InfinispanRouteLocator.java:58)
at
org.wildfly.clustering.web.undertow.session.DistributableSessionIdentifierCodec.encode(DistributableSessionIdentifierCodec.java:48)
at
org.wildfly.extension.undertow.session.CodecSessionConfig.clearSession(CodecSessionConfig.java:51)
at
io.undertow.servlet.spec.ServletContextImpl$ServletContextSessionConfig.clearSession(ServletContextImpl.java:985)
at
org.wildfly.clustering.web.undertow.session.DistributableSession.invalidate(DistributableSession.java:184)
at io.undertow.servlet.spec.HttpSessionImpl.invalidate(HttpSessionImpl.java:199)
at com.jboss.test.StoreSessionFilter.doFilter(StoreSessionFilter.java:58)
at io.undertow.servlet.core.ManagedFilter.doFilter(ManagedFilter.java:60)
at
io.undertow.servlet.handlers.FilterHandler$FilterChainImpl.doFilter(FilterHandler.java:131)
at io.undertow.servlet.handlers.FilterHandler.handleRequest(FilterHandler.java:84)
at
io.undertow.servlet.handlers.security.ServletSecurityRoleHandler.handleRequest(ServletSecurityRoleHandler.java:62)
at io.undertow.jsp.JspFileHandler.handleRequest(JspFileHandler.java:32)
at
io.undertow.servlet.handlers.ServletDispatchingHandler.handleRequest(ServletDispatchingHandler.java:36)
at
org.wildfly.extension.undertow.security.SecurityContextAssociationHandler.handleRequest(SecurityContextAssociationHandler.java:78)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at
io.undertow.servlet.handlers.security.SSLInformationAssociationHandler.handleRequest(SSLInformationAssociationHandler.java:131)
at
io.undertow.servlet.handlers.security.ServletAuthenticationCallHandler.handleRequest(ServletAuthenticationCallHandler.java:57)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at
io.undertow.security.handlers.AbstractConfidentialityHandler.handleRequest(AbstractConfidentialityHandler.java:46)
at
io.undertow.servlet.handlers.security.ServletConfidentialityConstraintHandler.handleRequest(ServletConfidentialityConstraintHandler.java:64)
at
io.undertow.security.handlers.AuthenticationMechanismsHandler.handleRequest(AuthenticationMechanismsHandler.java:60)
at
io.undertow.servlet.handlers.security.CachedAuthenticatedSessionHandler.handleRequest(CachedAuthenticatedSessionHandler.java:77)
at
io.undertow.security.handlers.NotificationReceiverHandler.handleRequest(NotificationReceiverHandler.java:50)
at
io.undertow.security.handlers.AbstractSecurityContextAssociationHandler.handleRequest(AbstractSecurityContextAssociationHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at
org.wildfly.extension.undertow.security.jacc.JACCContextIdHandler.handleRequest(JACCContextIdHandler.java:61)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at io.undertow.server.handlers.PredicateHandler.handleRequest(PredicateHandler.java:43)
at
io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:284)
at
io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:263)
at
io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:81)
at
io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:174)
at io.undertow.server.Connectors.executeRootHandler(Connectors.java:202)
at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:793)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1142)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:617)
at java.lang.Thread.run(Thread.java:745)
16:00:28,745 ERROR [stderr] (default task-5) {} Should not reach here!!! That means
session.invalidate() do NOT throw IllegalStateException
{noformat}
* session-invalidate-replication-session.war - same behaviour as
session-invalidate-replication-attribute.war as in Wildfly 10.0.0.Final, which throw
exception in filter and do NOT throw exception in index.jsp, which is incorrect.
*Wildfly 10.1.0.Final-SNAPSHOT*:
those 3 cases behaviour identical as Wildfly 10.0.0.Final.