[jboss-jira] [JBoss JIRA] (WFLY-2213) UnsupportedOperationException in wildfly clustering web disrupts appliction access permanently

Paul Ferraro (JIRA) jira-events at lists.jboss.org
Wed Oct 23 12:10:02 EDT 2013


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

Paul Ferraro edited comment on WFLY-2213 at 10/23/13 12:10 PM:
---------------------------------------------------------------

Looking at the com.sun.faces.application.view.ViewScopeContextManager source, I see that it is attempting to remove session attributes in the sessionDestroyed callback.  While I don't quite see the point to removing session attributes on a session that is about to be destroyed, there is nothing in the spec that prohibits this, so perhaps these can become a no-op instead of throwing an UnsupportedOperationException.
                
      was (Author: pferraro):
    Looking at the com.sun.faces.application.view.ViewScopeContextManager source, I see that it is attempting to remove session attributes in the sessionDestroyed callback.  While I don't see the point to removing session attributes on a session that is about to be destroyed, there is nothing in the spec that prohibits this, so perhaps these can become a no-op instead of throwing an UnsupportedOperationException.
                  
> UnsupportedOperationException in wildfly clustering web disrupts appliction access permanently
> ----------------------------------------------------------------------------------------------
>
>                 Key: WFLY-2213
>                 URL: https://issues.jboss.org/browse/WFLY-2213
>             Project: WildFly
>          Issue Type: Bug
>      Security Level: Public(Everyone can see) 
>          Components: Clustering, Web (Undertow)
>    Affects Versions: 8.0.0.Beta1
>            Reporter: Thomas Frühbeck
>            Assignee: Paul Ferraro
>              Labels: cluster, session, timeout, web
>
> a <distributable> struts application is working correctly, after session timeout an UnsupportedOperationException permanently prohibits access to the application.
> I cannot find any possibility to access the app again else than redeploy the application.
> 2013-10-03 14:55:48,311 ERROR [org.infinispan.interceptors.InvocationContextInterceptor] (default task-10) ISPN000136: Execution error: org.infinispan.commons.CacheException: Caught exception [java.lang.Unsuppor
> tedOperationException] while invoking method [public void org.wildfly.clustering.web.infinispan.session.InfinispanSessionManager.removed(org.infinispan.notifications.cachelistener.event.CacheEntryRemovedEvent)] 
> on listener instance: org.wildfly.clustering.web.infinispan.session.InfinispanSessionManager at 56af236c
>         at org.infinispan.notifications.AbstractListenerImpl$ListenerInvocation$1.run(AbstractListenerImpl.java:209)
>         at org.infinispan.util.concurrent.WithinThreadExecutor.execute(WithinThreadExecutor.java:22)
>         at org.infinispan.notifications.AbstractListenerImpl$ListenerInvocation.invoke(AbstractListenerImpl.java:228)
>         at org.infinispan.notifications.AbstractListenerImpl$ListenerInvocation.invoke(AbstractListenerImpl.java:191)
>         at org.infinispan.notifications.cachelistener.CacheNotifierImpl.notifyCacheEntryRemoved(CacheNotifierImpl.java:181)
>         at org.infinispan.commands.write.RemoveCommand.notify(RemoveCommand.java:98)
>         at org.infinispan.commands.write.RemoveCommand.performRemove(RemoveCommand.java:207)
>         at org.infinispan.commands.write.RemoveCommand.perform(RemoveCommand.java:90)
>         at org.infinispan.interceptors.CallInterceptor.handleDefault(CallInterceptor.java:91)
>         at org.infinispan.commands.AbstractVisitor.visitRemoveCommand(AbstractVisitor.java:37)
>         at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:51)
>         at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)
>         at org.infinispan.interceptors.distribution.TxDistributionInterceptor.handleTxWriteCommand(TxDistributionInterceptor.java:268)
>         at org.infinispan.interceptors.distribution.TxDistributionInterceptor.visitRemoveCommand(TxDistributionInterceptor.java:77)
>         at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:51)
>         at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)
>         at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:112)
>         at org.infinispan.commands.AbstractVisitor.visitRemoveCommand(AbstractVisitor.java:37)
>         at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:51)
>         at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)
>         at org.infinispan.interceptors.CacheLoaderInterceptor.visitRemoveCommand(CacheLoaderInterceptor.java:133)
>         at org.infinispan.interceptors.ActivationInterceptor.visitRemoveCommand(ActivationInterceptor.java:60)
>         at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:51)
>         at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)
>         at org.infinispan.interceptors.EntryWrappingInterceptor.invokeNextAndApplyChanges(EntryWrappingInterceptor.java:292)
>         at org.infinispan.interceptors.EntryWrappingInterceptor.setSkipRemoteGetsAndInvokeNextForDataCommand(EntryWrappingInterceptor.java:372)
>         at org.infinispan.interceptors.EntryWrappingInterceptor.visitRemoveCommand(EntryWrappingInterceptor.java:205)
>         at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:51)
>         at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)
>         at org.infinispan.interceptors.locking.PessimisticLockingInterceptor.visitRemoveCommand(PessimisticLockingInterceptor.java:142)
>         at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:51)
>         at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)
>         at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:112)
>         at org.infinispan.commands.AbstractVisitor.visitRemoveCommand(AbstractVisitor.java:37)
>         at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:51)
>         at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)
>         at org.infinispan.interceptors.TxInterceptor.enlistWriteAndInvokeNext(TxInterceptor.java:247)
>         at org.infinispan.interceptors.TxInterceptor.visitRemoveCommand(TxInterceptor.java:188)
>         at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:51)
>         at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)
>         at org.infinispan.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:112)
>         at org.infinispan.commands.AbstractVisitor.visitRemoveCommand(AbstractVisitor.java:37)
>         at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:51)
>         at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)
>         at org.infinispan.statetransfer.StateTransferInterceptor.handleNonTxWriteCommand(StateTransferInterceptor.java:193)
>         at org.infinispan.statetransfer.StateTransferInterceptor.visitRemoveCommand(StateTransferInterceptor.java:143)
>         at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:51)
>         at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)
>         at org.infinispan.interceptors.CacheMgmtInterceptor.visitRemoveCommand(CacheMgmtInterceptor.java:166)
>         at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:51)
>         at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)
>         at org.infinispan.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:106)
>         at org.infinispan.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:70)
>         at org.infinispan.commands.AbstractVisitor.visitRemoveCommand(AbstractVisitor.java:37)
>         at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:51)
>         at org.infinispan.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:98)
>         at org.infinispan.interceptors.BatchingInterceptor.handleDefault(BatchingInterceptor.java:64)
>         at org.infinispan.commands.AbstractVisitor.visitRemoveCommand(AbstractVisitor.java:37)
>         at org.infinispan.commands.write.RemoveCommand.acceptVisitor(RemoveCommand.java:51)
>         at org.infinispan.interceptors.InterceptorChain.invoke(InterceptorChain.java:321)
>         at org.infinispan.CacheImpl.executeCommandAndCommitIfNeeded(CacheImpl.java:1298)
>         at org.infinispan.CacheImpl.removeInternal(CacheImpl.java:400)
>         at org.infinispan.CacheImpl.remove(CacheImpl.java:393)
>         at org.infinispan.DecoratedCache.remove(DecoratedCache.java:406)
>         at org.infinispan.AbstractDelegatingCache.remove(AbstractDelegatingCache.java:281)
>         at org.wildfly.clustering.web.infinispan.Remover$RemoveOperation.invoke(Remover.java:50)
>         at org.jboss.as.clustering.infinispan.invoker.SimpleCacheInvoker.invoke(SimpleCacheInvoker.java:34)
>         at org.jboss.as.clustering.infinispan.invoker.RetryingCacheInvoker.invoke(RetryingCacheInvoker.java:82)
>         at org.wildfly.clustering.web.infinispan.session.coarse.CoarseSessionFactory.remove(CoarseSessionFactory.java:116)
>         at org.wildfly.clustering.web.infinispan.session.coarse.CoarseSessionFactory.remove(CoarseSessionFactory.java:54)
>         at org.wildfly.clustering.web.infinispan.session.InfinispanSession.invalidate(InfinispanSession.java:74)
>         at org.wildfly.clustering.web.infinispan.session.InfinispanSessionManager.findSession(InfinispanSessionManager.java:218)
>         at org.wildfly.clustering.web.undertow.session.SessionManagerAdapter.getSession(SessionManagerAdapter.java:124)
>         at io.undertow.servlet.spec.ServletContextImpl.getSession(ServletContextImpl.java:674) [undertow-servlet-1.0.0.Beta15-SNAPSHOT.jar:1.0.0.Beta17-SNAPSHOT]
>         at io.undertow.servlet.spec.ServletContextImpl.updateSessionAccessTime(ServletContextImpl.java:688) [undertow-servlet-1.0.0.Beta15-SNAPSHOT.jar:1.0.0.Beta17-SNAPSHOT]
>         at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpServletResponseImpl.java:505) [undertow-servlet-1.0.0.Beta15-SNAPSHOT.jar:1.0.0.Beta17-SNAPSHOT]
>         at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:255) [undertow-servlet-1.0.0.Beta15-SNAPSHOT.jar:1.0.0.Beta17-SNAPSHOT]
>         at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:202) [undertow-servlet-1.0.0.Beta15-SNAPSHOT.jar:1.0.0.Beta17-SNAPSHOT]
>         at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:69) [undertow-servlet-1.0.0.Beta15-SNAPSHOT.jar:1.0.0.Beta17-SNAPSHOT]
>         at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:136) [undertow-servlet-1.0.0.Beta15-SNAPSHOT.jar:1.0.0.Beta17-SNAPSHOT]
>         at io.undertow.server.HttpHandlers.executeRootHandler(HttpHandlers.java:36) [undertow-core-1.0.0.Beta15-SNAPSHOT.jar:1.0.0.Beta15-SNAPSHOT]
>         at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:614) [undertow-core-1.0.0.Beta15-SNAPSHOT.jar:1.0.0.Beta15-SNAPSHOT]
>         at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_25]
>         at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_25]
>         at java.lang.Thread.run(Thread.java:724) [rt.jar:1.7.0_25]
> Caused by: java.lang.UnsupportedOperationException
>         at org.wildfly.clustering.web.session.ImmutableHttpSessionAdapter.removeAttribute(ImmutableHttpSessionAdapter.java:90)
>         at com.sun.faces.application.view.ViewScopeContextManager.sessionDestroyed(ViewScopeContextManager.java:298) [jsf-impl-2.2.3-jbossorg-1.jar:]
>         at com.sun.faces.application.view.ViewScopeManager.sessionDestroyed(ViewScopeManager.java:348) [jsf-impl-2.2.3-jbossorg-1.jar:]
>         at com.sun.faces.application.WebappLifecycleListener.sessionDestroyed(WebappLifecycleListener.java:176) [jsf-impl-2.2.3-jbossorg-1.jar:]
>         at com.sun.faces.config.ConfigureListener.sessionDestroyed(ConfigureListener.java:368) [jsf-impl-2.2.3-jbossorg-1.jar:]
>         at io.undertow.servlet.core.ApplicationListeners.sessionDestroyed(ApplicationListeners.java:264) [undertow-servlet-1.0.0.Beta15-SNAPSHOT.jar:1.0.0.Beta17-SNAPSHOT]
>         at org.wildfly.clustering.web.undertow.session.SessionContextAdapter$1.sessionDestroyed(SessionContextAdapter.java:60)
>         at org.wildfly.clustering.web.infinispan.session.InfinispanSessionManager.removed(InfinispanSessionManager.java:297)
>         at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [rt.jar:1.7.0_25]
>         at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) [rt.jar:1.7.0_25]
>         at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) [rt.jar:1.7.0_25]
>         at java.lang.reflect.Method.invoke(Method.java:606) [rt.jar:1.7.0_25]
>         at org.infinispan.notifications.AbstractListenerImpl$ListenerInvocation$1.run(AbstractListenerImpl.java:205)
>         ... 84 more

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira



More information about the jboss-jira mailing list