]
Paul Ferraro edited comment on WFLY-6315 at 4/28/16 11:07 AM:
--------------------------------------------------------------
"Our test code stored the session object created in the previous request, and use the
session Id to perform session invalidation."
"Because Servlet API do not have standard API to lookup the corresponding session by
session Id, so step 2 will use a hash map to store the session object."
It is fundamentally unsafe to retain a reference to an HttpSession instance outside the
context of a request (or once a response has been committed). The container is permitted
to passivate/activate or expire a session outside of the scope of a request - thus your
HttpSession references are not guaranteed to be valid/functional. For this reason (among
many others)
was
explicitly deprecated.
Is there a reason why you are not using WildFly's single-sign on implementation? All
of this logic (e.g. invalidating associated sessions on logout) is handled for you.
was (Author: pferraro):
"Our test code stored the session object created in the previous request, and use the
session Id to perform session invalidation."
"Because Servlet API do not have standard API to lookup the corresponding session by
session Id, so step 2 will use a hash map to store the session object."
It is fundamentally unsafe to retain a reference to an HttpSession instance outside the
context of a request (or once a response has been committed). The container is permitted
to passivate/activate or expire a session outside of the scope of a request - thus your
HttpSession references are not guaranteed to be valid. For this reason (among many
others)
was
explicitly deprecated.
Is there a reason why you are not using WildFly's single-sign on implementation? All
of this logic (e.g. invalidating associated sessions on logout) is handled for you.
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.