[jboss-jira] [JBoss JIRA] Created: (JBAS-6040) Ensure correct TCCL is set before accessing clustered web session cache

Brian Stansberry (JIRA) jira-events at lists.jboss.org
Mon Oct 6 08:43:21 EDT 2008


Ensure correct TCCL is set before accessing clustered web session cache
-----------------------------------------------------------------------

                 Key: JBAS-6040
                 URL: https://jira.jboss.org/jira/browse/JBAS-6040
             Project: JBoss Application Server
          Issue Type: Bug
      Security Level: Public (Everyone can see)
          Components: Clustering, Web (Tomcat) service
    Affects Versions: JBossAS-5.0.0.CR2
            Reporter: Brian Stansberry
            Assignee: Brian Stansberry
             Fix For: JBossAS-5.0.0.GA


JBoss Web is accessing the session manager very early in the request cycle, before the TCCL is set.  This leads to issues like the following.  Initial workaround will be to set the TCCL in JBossCacheManager before accessing JBoss Cache.

[JBoss] 10:54:25,457 ERROR [CoyoteAdapter] An exception or error occurred in the container during the request processing
[JBoss] org.jboss.cache.CacheException: java.lang.ClassNotFoundException: org.jboss.web.tomcat.service.session.distributedcache.spi.DistributableSessionTimestamp
[JBoss]     at org.jboss.cache.interceptors.InterceptorChain.invoke(InterceptorChain.java:227)
[JBoss]     at org.jboss.cache.invocation.CacheInvocationDelegate.getData(CacheInvocationDelegate.java:500)
[JBoss]     at org.jboss.ha.cachemanager.CacheManagerManagedCache.getData(CacheManagerManagedCache.java:179)
[JBoss]     at org.jboss.web.tomcat.service.session.distributedcache.impl.jbc.JBossCacheWrapper.getData(JBossCacheWrapper.java:55)
[JBoss]     at org.jboss.web.tomcat.service.session.distributedcache.impl.jbc.JBossCacheService.loadSession(JBossCacheService.java:331)
[JBoss]     at org.jboss.web.tomcat.service.session.JBossCacheManager.loadSession(JBossCacheManager.java:1460)
[JBoss]     at org.jboss.web.tomcat.service.session.JBossCacheManager.findSession(JBossCacheManager.java:492)
[JBoss]     at org.apache.catalina.connector.Request.isRequestedSessionIdValid(Request.java:2160)
[JBoss]     at org.apache.catalina.connector.CoyoteAdapter.parseSessionCookiesId(CoyoteAdapter.java:626)
[JBoss]     at org.apache.catalina.connector.CoyoteAdapter.postParseRequest(CoyoteAdapter.java:551)
[JBoss]     at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:322)
[JBoss]     at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:437)
[JBoss]     at org.apache.coyote.ajp.AjpProtocol$AjpConnectionHandler.process(AjpProtocol.java:384)
[JBoss]     at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
[JBoss]     at java.lang.Thread.run(Thread.java:619)
[JBoss] Caused by: java.lang.ClassNotFoundException: org.jboss.web.tomcat.service.session.distributedcache.spi.DistributableSessionTimestamp
[JBoss]     at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
[JBoss]     at java.security.AccessController.doPrivileged(Native Method)
[JBoss]     at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
[JBoss]     at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
[JBoss]     at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
[JBoss]     at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
[JBoss]     at java.lang.Class.forName0(Native Method)
[JBoss]     at java.lang.Class.forName(Class.java:247)
[JBoss]     at org.jboss.util.stream.MarshalledValueInputStream.resolveClass(MarshalledValueInputStream.java:81)
[JBoss]     at java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1575)
[JBoss]     at java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1496)
[JBoss]     at java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1732)
[JBoss]     at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1329)
[JBoss]     at java.io.ObjectInputStream.readObject(ObjectInputStream.java:351)
[JBoss]     at org.jboss.cache.marshall.CacheMarshaller200.unmarshallObject(CacheMarshaller200.java:549)
[JBoss]     at org.jboss.cache.marshall.CacheMarshaller200.populateFromStream(CacheMarshaller200.java:759)
[JBoss]     at org.jboss.cache.marshall.CacheMarshaller200.unmarshallHashMap(CacheMarshaller200.java:722)
[JBoss]     at org.jboss.cache.marshall.CacheMarshaller200.unmarshallObject(CacheMarshaller200.java:580)
[JBoss]     at org.jboss.cache.marshall.CacheMarshaller200.unmarshallObject(CacheMarshaller200.java:522)
[JBoss]     at org.jboss.cache.marshall.CacheMarshaller200.objectFromObjectStream(CacheMarshaller200.java:140)
[JBoss]     at org.jboss.cache.marshall.VersionAwareMarshaller.objectFromObjectStream(VersionAwareMarshaller.java:326)
[JBoss]     at org.jboss.cache.loader.FileCacheLoader.doUnmarshall(FileCacheLoader.java:478)
[JBoss]     at org.jboss.cache.loader.AbstractCacheLoader.regionAwareUnmarshall(AbstractCacheLoader.java:216)
[JBoss]     at org.jboss.cache.loader.FileCacheLoader.loadAttributes(FileCacheLoader.java:431)
[JBoss]     at org.jboss.cache.loader.FileCacheLoader.get(FileCacheLoader.java:201)
[JBoss]     at org.jboss.cache.interceptors.CacheLoaderInterceptor.loadData(CacheLoaderInterceptor.java:563)
[JBoss]     at org.jboss.cache.interceptors.CacheLoaderInterceptor.loadNode(CacheLoaderInterceptor.java:490)
[JBoss]     at org.jboss.cache.interceptors.CacheLoaderInterceptor.loadIfNeeded(CacheLoaderInterceptor.java:304)
[JBoss]     at org.jboss.cache.interceptors.CacheLoaderInterceptor.visitGetDataMapCommand(CacheLoaderInterceptor.java:181)
[JBoss]     at org.jboss.cache.commands.read.GetDataMapCommand.acceptVisitor(GetDataMapCommand.java:45)
[JBoss]     at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
[JBoss]     at org.jboss.cache.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:157)
[JBoss]     at org.jboss.cache.interceptors.base.PostProcessingCommandInterceptor.handleGetDataMapCommand(PostProcessingCommandInterceptor.java:213)
[JBoss]     at org.jboss.cache.interceptors.base.PostProcessingCommandInterceptor.visitGetDataMapCommand(PostProcessingCommandInterceptor.java:203)
[JBoss]     at org.jboss.cache.commands.read.GetDataMapCommand.acceptVisitor(GetDataMapCommand.java:45)
[JBoss]     at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
[JBoss]     at org.jboss.cache.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:157)
[JBoss]     at org.jboss.cache.commands.AbstractVisitor.visitGetDataMapCommand(AbstractVisitor.java:79)
[JBoss]     at org.jboss.cache.commands.read.GetDataMapCommand.acceptVisitor(GetDataMapCommand.java:45)
[JBoss]     at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
[JBoss]     at org.jboss.cache.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:157)
[JBoss]     at org.jboss.cache.commands.AbstractVisitor.visitGetDataMapCommand(AbstractVisitor.java:79)
[JBoss]     at org.jboss.cache.commands.read.GetDataMapCommand.acceptVisitor(GetDataMapCommand.java:45)
[JBoss]     at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
[JBoss]     at org.jboss.cache.interceptors.TxInterceptor.attachGtxAndPassUpChain(TxInterceptor.java:266)
[JBoss]     at org.jboss.cache.interceptors.TxInterceptor.handleDefault(TxInterceptor.java:253)
[JBoss]     at org.jboss.cache.commands.AbstractVisitor.visitGetDataMapCommand(AbstractVisitor.java:79)
[JBoss]     at org.jboss.cache.commands.read.GetDataMapCommand.acceptVisitor(GetDataMapCommand.java:45)
[JBoss]     at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
[JBoss]     at org.jboss.cache.interceptors.base.CommandInterceptor.handleDefault(CommandInterceptor.java:157)
[JBoss]     at org.jboss.cache.commands.AbstractVisitor.visitGetDataMapCommand(AbstractVisitor.java:79)
[JBoss]     at org.jboss.cache.commands.read.GetDataMapCommand.acceptVisitor(GetDataMapCommand.java:45)
[JBoss]     at org.jboss.cache.interceptors.base.CommandInterceptor.invokeNextInterceptor(CommandInterceptor.java:142)
[JBoss]     at org.jboss.cache.interceptors.InvocationContextInterceptor.handleAll(InvocationContextInterceptor.java:155)
[JBoss]     at org.jboss.cache.interceptors.InvocationContextInterceptor.handleDefault(InvocationContextInterceptor.java:108)
[JBoss]     at org.jboss.cache.commands.AbstractVisitor.visitGetDataMapCommand(AbstractVisitor.java:79)
[JBoss]     at org.jboss.cache.commands.read.GetDataMapCommand.acceptVisitor(GetDataMapCommand.java:45)
[JBoss]     at org.jboss.cache.interceptors.InterceptorChain.invoke(InterceptorChain.java:215)
[JBoss]     ... 14 more




-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: https://jira.jboss.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        



More information about the jboss-jira mailing list