Mantis Bugtracker
  

Viewing Issue Simple Details Jump to Notes ] View Advanced ] Issue History ] Print ]
ID Category Severity Reproducibility Date Submitted Last Update
0004475 [Resin] minor always 04-04-11 11:25 04-04-11 14:28
Reporter ferg View Status public  
Assigned To ferg
Priority normal Resolution fixed  
Status closed   Product Version 4.0.16
Summary 0004475: Java deserialization classloader
Description (rep by Keith Fetterman)

This problem seems to be more pervasive in Resin 4.0.16 pro. I am now
seeing other application classes that the Resin EnvironmentClassLoader
is trying to load but it can't find them. I am getting the error
"java.lang.ClassNotFoundException" because the
"EnvironmentClassLoader[resin-system:]" is trying to load it. In our
resin.xml file, I have the application classes being loaded at at the
Host level.

Resin was started at 9:55 AM this morning. Since then, I have been
testing our Website including checking out, which would require
"com.marinersupply.common.store.struts.form.checkout.CheckoutCustomerInfoForm"
class to be loaded. Then at 10:37 AM, resin throws the error:

> > [11-04-04 10:37:46.336] {http://*:8082-23} [^] WARNING
> > com.caucho.server.session.SessionImpl
> > com.caucho.vfs.IOExceptionWrapper: java.lang.ClassNotFoundException:
> > com.marinersupply.common.store.struts.form.checkout.CheckoutCustomerInfoForm
> > in EnvironmentClassLoader[resin-system:]
It looks like the error is occurring when resin is either serializing or
deserializing the session. Is the EnvironmentClassLoader above the host
class loader and if so, why is trying to load application classes? Is
this a bug in resin 4.0.16?


> > [11-04-04 10:37:46.336] {http://*:8082-23} [^] WARNING
> > com.caucho.server.session.SessionImpl
> > com.caucho.vfs.IOExceptionWrapper: java.lang.ClassNotFoundException:
> > com.marinersupply.common.store.struts.form.checkout.CheckoutCustomerInfoForm
> > in EnvironmentClassLoader[resin-system:]
> > at
> > com.caucho.vfs.IOExceptionWrapper.create(IOExceptionWrapper.java:64)
> > at
> > com.caucho.server.session.SessionImpl.load(SessionImpl.java:706)
> > at
> > com.caucho.server.session.SessionImpl.load(SessionImpl.java:642)
> > at
> > com.caucho.server.session.SessionManager.createSession(SessionManager.java:1332)
> > at
> > com.caucho.server.http.AbstractCauchoRequest.createSession(AbstractCauchoRequest.java:255)
> > at
> > com.caucho.server.http.AbstractCauchoRequest.getSession(AbstractCauchoRequest.java:198)
> > at
> > com.caucho.server.http.AbstractCauchoRequest.finishRequest(AbstractCauchoRequest.java:613)
> > at
> > com.caucho.server.http.HttpServletRequestImpl.finishRequest(HttpServletRequestImpl.java:1961)
> > at
> > com.caucho.server.http.AbstractHttpRequest.finishRequest(AbstractHttpRequest.java:1725)
> > at
> > com.caucho.server.http.HttpRequest.finishRequest(HttpRequest.java:1268)
> > at
> > com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:813)
> > at
> > com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:730)
> > at
> > com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:689)
> > at
> > com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:669)
> > at
> > com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:617)
> > at
> > com.caucho.network.listen.AcceptTask.doTask(AcceptTask.java:104)
> > at
> > com.caucho.network.listen.ConnectionReadTask.runThread(ConnectionReadTask.java:98)
> > at
> > com.caucho.network.listen.ConnectionReadTask.run(ConnectionReadTask.java:81)
> > at
> > com.caucho.network.listen.AcceptTask.run(AcceptTask.java:67)
> > at
> > com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:164)
> > at
> > com.caucho.env.thread.ResinThread.run(ResinThread.java:130)
> > Caused by:
> > java.lang.ClassNotFoundException:
> > com.marinersupply.common.store.struts.form.checkout.CheckoutCustomerInfoForm
> > in EnvironmentClassLoader[resin-system:]
> > at
> > com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1382)
> > at
> > com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1358)
> > at
> > java.lang.Class.forName0(Native Method)
> > at
> > java.lang.Class.forName(Class.java:247)
> > at
> > com.caucho.server.session.JavaSessionDeserializer$ContextObjectInputStream.resolveClass(JavaSessionDeserializer.java:105)
> > at
> > java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1574)
> > at
> > java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)
> > at
> > java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731)
> > at
> > java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
> > at
> > java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
> > at
> > com.caucho.server.session.JavaSessionDeserializer.readObject(JavaSessionDeserializer.java:70)
> > at
> > com.caucho.server.session.SessionImpl.load(SessionImpl.java:686)
> > ... 19 more
> >




On 03/30/2011 05:49 PM, Keith Fetterman wrote:
> > Today, I discovered when I stopped and then started resin (4.0.16), I
> > received a "java.lang.ClassNotFoundException" exception being thrown by
> > the "com.caucho.loader.DynamicClassLoader.loadClass" when I accessed the
> > home page of my Web site. The ClassNotFoundException is caused by resin
> > trying to load one of our application classes that was stored in the
> > HTTP session and was persisted. We have our application classes being
> > loaded at the host level class loader. Why is resin trying to load the
> > class via the EnvironmentClassLoader? Is this a bug in resin 4.0.16?
> >
> > We switched from using hessian to java serialization because hessian
> > serialization was trying to lazy load our hibernate objects that were in
> > the HTTP session. I don't know if this makes a difference.
> >
> > Please help if you can.
> >
> > The stack trace is below.
> >
>> >> [11-03-30 17:06:10.723] {http://*:8082-16} [^] WARNING
>> >> com.caucho.server.session.SessionImpl
>> >> com.caucho.vfs.IOExceptionWrapper: java.lang.ClassNotFoundException:
>> >> com.marinersupply.bean.CustomerBean in
>> >> EnvironmentClassLoader[resin-system:]
>> >> at
>> >> com.caucho.vfs.IOExceptionWrapper.create(IOExceptionWrapper.java:64)
>> >> at
>> >> com.caucho.server.session.SessionImpl.load(SessionImpl.java:706)
>> >> at
>> >> com.caucho.server.session.SessionImpl.load(SessionImpl.java:642)
>> >> at
>> >> com.caucho.server.session.SessionManager.createSession(SessionManager.java:1332)
>> >> at
>> >> com.caucho.server.http.AbstractCauchoRequest.createSession(AbstractCauchoRequest.java:255)
>> >> at
>> >> com.caucho.server.http.AbstractCauchoRequest.getSession(AbstractCauchoRequest.java:198)
>> >> at
>> >> com.caucho.server.http.AbstractCauchoRequest.finishRequest(AbstractCauchoRequest.java:613)
>> >> at
>> >> com.caucho.server.http.HttpServletRequestImpl.finishRequest(HttpServletRequestImpl.java:1961)
>> >> at
>> >> com.caucho.server.http.AbstractHttpRequest.finishRequest(AbstractHttpRequest.java:1725)
>> >> at
>> >> com.caucho.server.http.HttpRequest.finishRequest(HttpRequest.java:1268)
>> >> at
>> >> com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:813)
>> >> at
>> >> com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:730)
>> >> at
>> >> com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:689)
>> >> at
>> >> com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:669)
>> >> at
>> >> com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:617)
>> >> at
>> >> com.caucho.network.listen.AcceptTask.doTask(AcceptTask.java:104)
>> >> at
>> >> com.caucho.network.listen.ConnectionReadTask.runThread(ConnectionReadTask.java:98)
>> >> at
>> >> com.caucho.network.listen.ConnectionReadTask.run(ConnectionReadTask.java:81)
>> >> at
>> >> com.caucho.network.listen.AcceptTask.run(AcceptTask.java:67)
>> >> at
>> >> com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:164)
>> >> at
>> >> com.caucho.env.thread.ResinThread.run(ResinThread.java:130)
>> >> Caused by:
>> >> java.lang.ClassNotFoundException: com.marinersupply.bean.CustomerBean
>> >> in EnvironmentClassLoader[resin-system:]
>> >> at
>> >> com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1382)
>> >> at
>> >> com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1358)
>> >> at
>> >> java.lang.Class.forName0(Native Method)
>> >> at
>> >> java.lang.Class.forName(Class.java:247)
>> >> at
>> >> com.caucho.server.session.JavaSessionDeserializer$ContextObjectInputStream.resolveClass(JavaSessionDeserializer.java:105)
>> >> at
>> >> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1574)
>> >> at
>> >> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)
>> >> at
>> >> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731)
>> >> at
>> >> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
>> >> at
>> >> java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
>> >> at
>> >> com.caucho.server.session.JavaSessionDeserializer.readObject(JavaSessionDeserializer.java:70)
>> >> at
>> >> com.caucho.server.session.SessionImpl.load(SessionImpl.java:686)
>> >> ... 19 more
>> >>
>> >> [11-03-30 17:06:10.741] {http://*:8082-15} [^] WARNING
>> >> com.caucho.server.session.SessionImpl
>> >> com.caucho.vfs.IOExceptionWrapper: java.lang.ClassNotFoundException:
>> >> com.marinersupply.bean.CustomerBean in
>> >> EnvironmentClassLoader[resin-system:]
>> >> at
>> >> com.caucho.vfs.IOExceptionWrapper.create(IOExceptionWrapper.java:64)
>> >> at
>> >> com.caucho.server.session.SessionImpl.load(SessionImpl.java:706)
>> >> at
>> >> com.caucho.server.session.SessionImpl.load(SessionImpl.java:642)
>> >> at
>> >> com.caucho.server.session.SessionManager.createSession(SessionManager.java:1332)
>> >> at
>> >> com.caucho.server.http.AbstractCauchoRequest.createSession(AbstractCauchoRequest.java:255)
>> >> at
>> >> com.caucho.server.http.AbstractCauchoRequest.getSession(AbstractCauchoRequest.java:198)
>> >> at
>> >> com.caucho.server.http.AbstractCauchoRequest.finishRequest(AbstractCauchoRequest.java:613)
>> >> at
>> >> com.caucho.server.http.HttpServletRequestImpl.finishRequest(HttpServletRequestImpl.java:1961)
>> >> at
>> >> com.caucho.server.http.AbstractHttpRequest.finishRequest(AbstractHttpRequest.java:1725)
>> >> at
>> >> com.caucho.server.http.HttpRequest.finishRequest(HttpRequest.java:1268)
>> >> at
>> >> com.caucho.server.http.HttpRequest.handleRequest(HttpRequest.java:813)
>> >> at
>> >> com.caucho.network.listen.TcpSocketLink.dispatchRequest(TcpSocketLink.java:730)
>> >> at
>> >> com.caucho.network.listen.TcpSocketLink.handleRequest(TcpSocketLink.java:689)
>> >> at
>> >> com.caucho.network.listen.TcpSocketLink.handleRequestsImpl(TcpSocketLink.java:669)
>> >> at
>> >> com.caucho.network.listen.TcpSocketLink.handleRequests(TcpSocketLink.java:617)
>> >> at
>> >> com.caucho.network.listen.KeepaliveRequestTask.doTask(KeepaliveRequestTask.java:73)
>> >> at
>> >> com.caucho.network.listen.ConnectionReadTask.runThread(ConnectionReadTask.java:98)
>> >> at
>> >> com.caucho.network.listen.ConnectionReadTask.run(ConnectionReadTask.java:81)
>> >> at
>> >> com.caucho.network.listen.KeepaliveRequestTask.run(KeepaliveRequestTask.java:60)
>> >> at
>> >> com.caucho.env.thread.ResinThread.runTasks(ResinThread.java:164)
>> >> at
>> >> com.caucho.env.thread.ResinThread.run(ResinThread.java:130)
>> >> Caused by:
>> >> java.lang.ClassNotFoundException: com.marinersupply.bean.CustomerBean
>> >> in EnvironmentClassLoader[resin-system:]
>> >> at
>> >> com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1382)
>> >> at
>> >> com.caucho.loader.DynamicClassLoader.loadClass(DynamicClassLoader.java:1358)
>> >> at
>> >> java.lang.Class.forName0(Native Method)
>> >> at
>> >> java.lang.Class.forName(Class.java:247)
>> >> at
>> >> com.caucho.server.session.JavaSessionDeserializer$ContextObjectInputStream.resolveClass(JavaSessionDeserializer.java:105)
>> >> at
>> >> java.io.ObjectInputStream.readNonProxyDesc(ObjectInputStream.java:1574)
>> >> at
>> >> java.io.ObjectInputStream.readClassDesc(ObjectInputStream.java:1495)
>> >> at
>> >> java.io.ObjectInputStream.readOrdinaryObject(ObjectInputStream.java:1731)
>> >> at
>> >> java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1328)
>> >> at
>> >> java.io.ObjectInputStream.readObject(ObjectInputStream.java:350)
>> >> at
>> >> com.caucho.server.session.JavaSessionDeserializer.readObject(JavaSessionDeserializer.java:70)
>> >> at
>> >> com.caucho.server.session.SessionImpl.load(SessionImpl.java:686)
>> >> ... 19 more
>> >>
Additional Information
Attached Files

- Relationships

- Notes
(0005147)
ferg
04-04-11 14:28

server/0b22
 

- Issue History
Date Modified Username Field Change
04-04-11 11:25 ferg New Issue
04-04-11 14:28 ferg Note Added: 0005147
04-04-11 14:28 ferg Assigned To  => ferg
04-04-11 14:28 ferg Status new => closed
04-04-11 14:28 ferg Resolution open => fixed
04-04-11 14:28 ferg version  => 4.0.16
04-04-11 14:28 ferg Fixed in Version  => 4.0.17


Mantis 1.0.0rc3[^]
Copyright © 2000 - 2005 Mantis Group
29 total queries executed.
26 unique queries executed.
Powered by Mantis Bugtracker