Uploaded image for project: 'WildFly'
  1. WildFly
  2. WFLY-3044

Mojarra's @ViewScoped implementation is not cluster-aware resulting in NotSerializableException

XMLWordPrintable

    • Icon: Bug Bug
    • Resolution: Done
    • Icon: Major Major
    • None
    • 8.0.0.Final
    • JSF
    • None

      The problem is in ViewScopeContextManager, namely

                  getContextMap(facesContext).put(contextual, new ViewScopeContextObject(contextual, creational, name));
      

      probably it needs an artificial ID generated to serve as a key.

      Also the ViewScopeContextObject needs to be serializable as well among other things

      class ViewScopeContextObject {
      

      Issue manifests as

      [Server:server-one] 19:22:41,564 ERROR [org.infinispan.interceptors.InvocationContextInterceptor] (default task-15) ISPN000136: Execution error: org.infinispan.commons.CacheException: java.lang.RuntimeException: Failure to marshal argument(s)  
      [Server:server-one] at org.infinispan.commons.util.Util.rewrapAsCacheException(Util.java:581)  
      ...  
      [Server:server-one] at org.infinispan.transaction.tm.DummyTransaction.notifyAfterCompletion(DummyTransaction.java:263)  
      [Server:server-one] at org.infinispan.transaction.tm.DummyTransaction.runCommitTx(DummyTransaction.java:312)  
      [Server:server-one] at org.infinispan.transaction.tm.DummyTransaction.commit(DummyTransaction.java:69)  
      [Server:server-one] at org.infinispan.transaction.tm.DummyBaseTransactionManager.commit(DummyBaseTransactionManager.java:80)  
      [Server:server-one] at org.infinispan.batch.BatchContainer.resolveTransaction(BatchContainer.java:101)  
      [Server:server-one] at org.infinispan.batch.BatchContainer.endBatch(BatchContainer.java:83)  
      [Server:server-one] at org.infinispan.batch.BatchContainer.endBatch(BatchContainer.java:64)  
      [Server:server-one] at org.infinispan.CacheImpl.endBatch(CacheImpl.java:777)  
      [Server:server-one] at org.infinispan.AbstractDelegatingCache.endBatch(AbstractDelegatingCache.java:53)  
      [Server:server-one] at org.wildfly.clustering.web.infinispan.InfinispanBatcher$1.end(InfinispanBatcher.java:56)  
      [Server:server-one] at org.wildfly.clustering.web.infinispan.InfinispanBatcher$1.close(InfinispanBatcher.java:46)  
      [Server:server-one] at org.wildfly.clustering.web.undertow.session.DistributableSession.requestDone(DistributableSession.java:72)  
      [Server:server-one] at io.undertow.servlet.spec.ServletContextImpl.updateSessionAccessTime(ServletContextImpl.java:704) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]  
      [Server:server-one] at io.undertow.servlet.spec.HttpServletResponseImpl.responseDone(HttpServletResponseImpl.java:522) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]  
      [Server:server-one] at io.undertow.servlet.handlers.ServletInitialHandler.handleFirstRequest(ServletInitialHandler.java:287) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]  
      [Server:server-one] at io.undertow.servlet.handlers.ServletInitialHandler.dispatchRequest(ServletInitialHandler.java:227) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]  
      [Server:server-one] at io.undertow.servlet.handlers.ServletInitialHandler.access$000(ServletInitialHandler.java:73) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]  
      [Server:server-one] at io.undertow.servlet.handlers.ServletInitialHandler$1.handleRequest(ServletInitialHandler.java:146) [undertow-servlet-1.0.0.Final.jar:1.0.0.Final]  
      [Server:server-one] at io.undertow.server.Connectors.executeRootHandler(Connectors.java:168) [undertow-core-1.0.0.Final.jar:1.0.0.Final]  
      [Server:server-one] at io.undertow.server.HttpServerExchange$1.run(HttpServerExchange.java:687) [undertow-core-1.0.0.Final.jar:1.0.0.Final]  
      [Server:server-one] at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [rt.jar:1.7.0_51]  
      [Server:server-one] at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [rt.jar:1.7.0_51]  
      [Server:server-one] at java.lang.Thread.run(Thread.java:744) [rt.jar:1.7.0_51]  
      [Server:server-one] Caused by: java.lang.RuntimeException: Failure to marshal argument(s)  
      [Server:server-one] at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.marshallCall(CommandAwareRpcDispatcher.java:333)  
      [Server:server-one] at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.processSingleCall(CommandAwareRpcDispatcher.java:352)  
      [Server:server-one] at org.infinispan.remoting.transport.jgroups.CommandAwareRpcDispatcher.invokeRemoteCommand(CommandAwareRpcDispatcher.java:167)  
      [Server:server-one] ... 76 more  
      [Server:server-one] Caused by: org.infinispan.commons.marshall.NotSerializableException: org.jboss.weld.bean.ManagedBean  
      [Server:server-one] Caused by: an exception which occurred:  
      [Server:server-one] in object java.util.HashMap@b37422bb  
      [Server:server-one] in object org.jboss.as.clustering.marshalling.SimpleMarshalledValue@b37422bb  
      [Server:server-one] in object org.infinispan.commands.write.PutKeyValueCommand@db517a36  
      [Server:server-one] in object org.infinispan.commands.tx.PrepareCommand@6fa34718  
      

              jaslee@redhat.com Jason Lee
              rhn-engineering-rhusar Radoslav Husar
              Votes:
              1 Vote for this issue
              Watchers:
              8 Start watching this issue

                Created:
                Updated:
                Resolved: