Hi Scott,

I shorted the session-timeout down to 3 minutes for the ROOT application 
and I was able to recreate the problem each time I let my session expire 
beyond the three minutes.  It looks like a ClassCastException was thrown 
for every application class that was in the HTTP session.

I had to switch to the Java serializer for persistent sessions because I 
was running into a problem with the hessian serializer.  The hessian 
serializer was throwing org.hibernate.LazyInitializationException when 
it tried to de-serialize my hibernate enabled classes that were in the 
session.

I am concerned about going into production with this bug, especially 
with the Go2marine Web site.  Any suggestions on how to work around this 
issue until Caucho can resolve it?

Thanks,
Keith

On 04/04/2011 11:55 AM, Scott Ferguson wrote:
> On 04/04/2011 11:39 AM, Keith Fetterman wrote:
>> I am wondering if this problem is related to the HTTP session timing
>> out.  In the ROOT web application, we have the session time out set to
>> 70 minutes:
>>
>> WEB-INF/web.xml
> Possibly. I've filed it as a bug.
>
> The Java deserializer requires a classloader handler for proper
> deserialization. It's possible that it's not properly handled in some
> contexts.
>
> -- Scott
>
>>> <session-config>
>>> <session-timeout>70</session-timeout>
>>> </session-config>
>> I received another ClassNotFoundException from the
>> EnvironmentClassLoader after 30 minutes, which is the default session
>> timeout for most Web apps.
>>
>>
>> On 04/04/2011 11:19 AM, Keith Fetterman wrote:
>>> 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
>>>>>
>
>
> _______________________________________________
> resin-interest mailing list
> resin-interest@caucho.com
> http://maillist.caucho.com/mailman/listinfo/resin-interest

-- 
-----------------------------------------------------------------
Keith Fetterman                        Direct: 206-319-9434
Mariner Supply, Inc.                   206-780-5670
http://www.go2marine.com               kfetter...@go2marine.com

http://www.boatersline.com




_______________________________________________
resin-interest mailing list
resin-interest@caucho.com
http://maillist.caucho.com/mailman/listinfo/resin-interest

Reply via email to