[
https://issues.jboss.org/browse/AS7-799?page=com.atlassian.jira.plugin.sy...
]
Remy Maucherat commented on AS7-799:
------------------------------------
The code is using a straight ObjectInputStream, which uses some latestUserDefinedLoader()
magic trick to get the classloader. Session persistence is now disabled by default, and
this could have been caused by the context CL binding which was a bit off (causing a leak
issue), so I'll wait to see if it still happens.
Wrong Classloader Used When Deserializing Persisted Sessions
------------------------------------------------------------
Key: AS7-799
URL:
https://issues.jboss.org/browse/AS7-799
Project: Application Server 7
Issue Type: Bug
Components: Web
Affects Versions: 7.0.0.Beta3
Reporter: Benjamin Browning
Assignee: Remy Maucherat
The org.jboss.as.web:main module's classloader is being used when deserializing
persisted sessions instead of the deployment's classloader. This leads to errors like
the one below when any classes are referenced in the session that aren't in the
dependency list of org/jboss/as/web/main/module.xml.
21:02:50,824 ERROR [org.apache.catalina.session.ManagerBase] (MSC service thread 1-1)
ClassNotFoundException while loading persisted sessions: java.lang.ClassNotFoundException:
org.jboss.weld.context.conversation.ConversationIdGenerator from [Module
"org.jboss.as.web:main" from local module loader @32b0bad7 (roots:
/Users/bbrowning/src/torquebox/integration-tests/target/integ-dist/jboss/modules)]:
java.lang.ClassNotFoundException:
org.jboss.weld.context.conversation.ConversationIdGenerator from [Module
"org.jboss.as.web:main" from local module loader @32b0bad7 (roots:
/Users/bbrowning/src/torquebox/integration-tests/target/integ-dist/jboss/modules)]
at org.jboss.modules.ModuleClassLoader.findClass(ModuleClassLoader.java:184)
[:1.0.0.Beta17]
at
org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:357)
[:1.0.0.Beta17]
at
org.jboss.modules.ConcurrentClassLoader.performLoadClassChecked(ConcurrentClassLoader.java:329)
[:1.0.0.Beta17]
at
org.jboss.modules.ConcurrentClassLoader.performLoadClass(ConcurrentClassLoader.java:306)
[:1.0.0.Beta17]
at org.jboss.modules.ConcurrentClassLoader.loadClass(ConcurrentClassLoader.java:100)
[:1.0.0.Beta17]
at java.lang.Class.forName0(Native Method) [:1.6.0_24]
at java.lang.Class.forName(Class.java:247) [:1.6.0_24]
at java.io.ObjectInputStream.resolveClass(ObjectInputStream.java:603) [:1.6.0_24]
at
org.apache.catalina.util.CustomObjectInputStream.resolveClass(CustomObjectInputStream.java:78)
[jbossweb-7.0.0.Beta11.jar:7.0.0.Beta3]
at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1574) [:1.6.0_24]
at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495) [:1.6.0_24]
at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731) [:1.6.0_24]
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328) [:1.6.0_24]
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:350) [:1.6.0_24]
at org.apache.catalina.session.StandardSession.readObject(StandardSession.java:1429)
[jbossweb-7.0.0.Beta11.jar:7.0.0.Beta3]
at org.apache.catalina.session.StandardSession.readObjectData(StandardSession.java:934)
[jbossweb-7.0.0.Beta11.jar:7.0.0.Beta3]
at org.apache.catalina.session.StandardManager.doLoad(StandardManager.java:395)
[jbossweb-7.0.0.Beta11.jar:7.0.0.Beta3]
at org.apache.catalina.session.StandardManager.load(StandardManager.java:322)
[jbossweb-7.0.0.Beta11.jar:7.0.0.Beta3]
at org.apache.catalina.session.StandardManager.start(StandardManager.java:633)
[jbossweb-7.0.0.Beta11.jar:7.0.0.Beta3]
at org.apache.catalina.core.ContainerBase.setManager(ContainerBase.java:459)
[jbossweb-7.0.0.Beta11.jar:7.0.0.Beta3]
at org.apache.catalina.core.StandardContext.start(StandardContext.java:3776)
[jbossweb-7.0.0.Beta11.jar:7.0.0.Beta3]
at org.jboss.as.web.deployment.WebDeploymentService.start(WebDeploymentService.java:61)
[jboss-as-web-7.0.0.Beta3.jar:7.0.0.Beta3]
at
org.jboss.msc.service.ServiceControllerImpl$StartTask.run(ServiceControllerImpl.java:1675)
at java.util.concurrent.ThreadPoolExecutor$Worker.runTask(ThreadPoolExecutor.java:886)
[:1.6.0_24]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:908)
[:1.6.0_24]
at java.lang.Thread.run(Thread.java:680) [:1.6.0_24]
--
This message is automatically generated by JIRA.
For more information on JIRA, see:
http://www.atlassian.com/software/jira