Radoslav Husar created WFLY-3044:
------------------------------------
Summary: Mojarra's @ViewScoped implementation is not cluster-aware
resulting in NotSerializableException
Key: WFLY-3044
URL:
https://issues.jboss.org/browse/WFLY-3044
Project: WildFly
Issue Type: Bug
Security Level: Public (Everyone can see)
Components: JSF
Affects Versions: 8.0.0.Final
Reporter: Radoslav Husar
Assignee: Stan Silvert
Priority: Critical
Fix For: 8.0.0.Final
The problem is in ViewScopeContextManager, namely
{code}
getContextMap(facesContext).put(contextual, new
ViewScopeContextObject(contextual, creational, name));
{code}
probably it needs an artificial ID generated to serve as a key.
Also the ViewScopeContextObject needs to be serializable as well among other things
{code}
class ViewScopeContextObject {
{code}
Issue manifests as
{noformat}[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
{noformat}
--
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