Mantis - Resin
Viewing Issue Advanced Details
4254 minor always 10-08-10 17:03 10-13-10 12:48
ferg  
ferg  
urgent  
closed 4.0.9  
fixed  
none    
none 4.0.12  
0004254: session/hessian classloader issue 4.0.9
(rep by Steven Nicholai)



I?ve added the following logger to resin.xml

 

   <logger name=?com.caucho.hessian.io.SerializerFactory? level=?finer?/>

 

We?re seeing these errors when the browser is left alone for 45+ minutes (much longer than the 30 minute session timeout.)

 

[10-10-06 22:30:56.192] {http://*:8080-9} [^] Hessian/Burlap: 'org.springframework.security.context.SecurityContextImpl' is an unknown class in EnvironmentClassLoader[system:]:

                                          java.lang.ClassNotFoundException: org.springframework.security.context.SecurityContextImpl in EnvironmentClassLoader[system:]

[10-10-06 22:30:56.203] {http://*:8080-9} [^] java.lang.ClassNotFoundException: org.springframework.security.context.SecurityContextImpl in EnvironmentClassLoader[system:]

                                                at com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1358)

                                                at com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1334)

                                                at java.lang.Class.forName0(Native Method)

                                                at java.lang.Class.forName(Class.java:247)

                                                at com.caucho.hessian.io.SerializerFactory.getDeserializer(SerializerFactory.java:666)

                                                at com.caucho.hessian.io.SerializerFactory.getObjectDeserializer(SerializerFactory.java:577)

                                                at com.caucho.hessian.io.SerializerFactory.getObjectDeserializer(SerializerFactory.java:553)

                                                at com.caucho.hessian.io.Hessian2Input.readObjectDefinition(Hessian2Input.java:2154)

                                                at com.caucho.hessian.io.Hessian2Input.readObject(Hessian2Input.java:2091)

                                                at com.caucho.server.session.HessianSessionDeserializer.readObject(HessianSessionDeserializer.java:71)

                                                at com.caucho.server.session.SessionImpl.load(SessionImpl.java:653)

                                                at com.caucho.server.session.SessionImpl.load(SessionImpl.java:609)

                                                at com.caucho.server.session.SessionManager.createSession(SessionManager.java:1298)

                                                at com.caucho.server.http.AbstractCauchoRequest.createSession(AbstractCauchoRequest.java:253)

                                                at com.caucho.server.http.AbstractCauchoRequest.getSession(AbstractCauchoRequest.java:196)

                                                at com.caucho.server.http.AbstractCauchoRequest.finishRequest(AbstractCauchoRequest.java:589)

                                                at com.caucho.server.http.HttpServletRequestImpl.finishRequest(HttpServletRequestImpl.java:1949)

                                                at com.caucho.server.http.AbstractHttpRequest.finishRequest(AbstractHttpRequest.java:1749)

                                                at com.caucho.server.http.HttpRequest.finishRequest(HttpRequest.java:1254)

                                                at com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:810)

                                                at com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:662)

                                                at com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:625)

                                                at com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:576)

                                                at com.caucho.network.listen.TcpSocketLink$AcceptTask.doTask(TcpSocketLink.java:1157)

                                                at com.caucho.network.listen.TcpSocketLink$ConnectionReadTask.runThread(TcpSocketLink.java:1092)

                                                at com.caucho.network.listen.TcpSocketLink$AcceptTask.run(TcpSocketLink.java:1124)

                                                at com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:169)

                                                at com.caucho.env.thread.ResinThread.run(ResinThread.java:126)

 

It seems that resin is trying to reconstitute the timedout session using the system classloader rather than the webapp classloader, which fails.

 

Any hints for debugging classloader issues in resin?

 

Notes
(0004791)
ferg   
10-13-10 12:48   
server/01u3