users@glassfish.java.net

RE: Re: NotSerializableException: com.sun.gjc.spi.ConnectionHolder

From: Todd Patrick <Todd.Patrick_at_dtn.com>
Date: Fri, 23 Feb 2007 09:36:07 -0600

Jagadish:

Correct on all accounts!

Thank you for helping me with this.

--Todd

 

-----Original Message-----
From: Jagadish.Ramu_at_Sun.COM [mailto:Jagadish.Ramu_at_Sun.COM]
Sent: Friday, February 23, 2007 9:33 AM
To: users_at_glassfish.dev.java.net
Subject: Re: NotSerializableException: com.sun.gjc.spi.ConnectionHolder

Hi Todd,

Looking at the log, a connection object is stored in session variable.

During app. unload, web-container tries to persist the session variable
"customerSearch" which holds a connection reference.

Avoid storing connection objects in session variables.
or Mark the connection reference variable as transient and create a new
conn when needed.
eg:
encapsulate connection,
getConnection(){
        if(con==null){
                con = getNewCon();
        }
        return con;
}

Thanks,
-Jagadish

On Wed, 2007-02-21 at 10:11 -0600, Todd Patrick wrote:
> In my server.log, I am returning the following exception:
>
> java.io.NotSerializableException: com.sun.gjc.spi.ConnectionHolder
>
> I have not a clue on what to even look at to troubleshoot this, do I
> need to mark my DataSource type object as transient? (Wild Guess)
>
> Thanks,
>
> --Todd
>
>
>
> [#|2007-02-21T09:59:40.071-0600|INFO|sun-appserver-pe9.0|org.apache.ca
> ta
> lina.session.ManagerBase|_ThreadID=22;_ThreadName=httpWorkerThread-484
> 8- 4;|Cannot serialize session attribute customerSearch for session
> e4fbfd5d060501dbe77de1c2ca6e
> java.io.NotSerializableException: com.sun.gjc.spi.ConnectionHolder
> at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1156)
> at
> java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:
> 15
> 09)
> at
>
java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1474)
> at
> java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java
> :1
> 392)
> at
> java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1150)
> at
> java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:326)
> at
>
org.apache.catalina.session.StandardSession.writeObject(StandardSession.
> java:1853)
> at
> org.apache.catalina.session.StandardSession.writeObjectData(StandardSe
> ss
> ion.java:1040)
> at
> org.apache.catalina.session.StandardManager.doUnload(StandardManager.j
> av
> a:580)
> at
>
org.apache.catalina.session.StandardManager.unload(StandardManager.java:
> 505)
> at
> org.apache.catalina.session.StandardManager.stop(StandardManager.java:
> 75
> 0)
> at
>
org.apache.catalina.core.StandardContext.stop(StandardContext.java:4876)
> at
> org.apache.catalina.core.ContainerBase.removeChild(ContainerBase.java:
> 96
> 2)
> at
> com.sun.enterprise.web.WebContainer.unloadWebModule(WebContainer.java:
> 22
> 45)
> at
> com.sun.enterprise.web.WebContainer.unloadWebModule(WebContainer.java:
> 21
> 63)
> at
> com.sun.enterprise.server.TomcatApplicationLoader.unload(TomcatApplica
> ti
> onLoader.java:179)
> at
> com.sun.enterprise.server.ApplicationManager.applicationUndeployed(App
> li
> cationManager.java:511)
> at
> com.sun.enterprise.server.ApplicationManager.applicationUndeployed(App
> li
> cationManager.java:437)
> at
> com.sun.enterprise.server.ApplicationManager.applicationDisabled(Appli
> ca
> tionManager.java:807)
> at
> com.sun.enterprise.admin.event.AdminEventMulticaster.invokeApplication
> De
> ployEventListener(AdminEventMulticaster.java:916)
> at
> com.sun.enterprise.admin.event.AdminEventMulticaster.handleApplication
> De
> ployEvent(AdminEventMulticaster.java:892)
> at
> com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(Admi
> nE
> ventMulticaster.java:445)
> at
> com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(Ad
> mi
> nEventMulticaster.java:160)
> at
> com.sun.enterprise.admin.server.core.AdminNotificationHelper.sendNotif
> ic
> ation(AdminNotificationHelper.java:128)
> at
> com.sun.enterprise.admin.server.core.ConfigInterceptor.postInvoke(Conf
> ig
> Interceptor.java:109)
> at
> com.sun.enterprise.admin.util.proxy.ProxyClass.invoke(ProxyClass.java:
> 97
> )
> at $Proxy1.invoke(Unknown Source)
> at
> com.sun.enterprise.admin.server.core.jmx.SunoneInterceptor.invoke(Suno
> ne
> Interceptor.java:297)
> at
> com.sun.enterprise.admin.jmx.remote.server.callers.InvokeCaller.call(I
> nv
> okeCaller.java:56)
> at
> com.sun.enterprise.admin.jmx.remote.server.MBeanServerRequestHandler.h
> an
> dle(MBeanServerRequestHandler.java:142)
> at
> com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorS
> er
> vlet.processRequest(RemoteJmxConnectorServlet.java:109)
> at
> com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorS
> er
> vlet.doPost(RemoteJmxConnectorServlet.java:180)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:727)
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:820)
> at
> org.apache.catalina.core.ApplicationFilterChain.servletService(Applica
> ti
> onFilterChain.java:397)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperVa
> lv
> e.java:278)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.ja
> va
> :566)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java
> :5
> 36)
> at
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardC
> on
> textValve.java:240)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextVa
> lv
> e.java:179)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.ja
> va
> :566)
> at
> com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.ja
> va
> :182)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.ja
> va
> :566)
> at
> com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipel
> in
> e.java:120)
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
> at
>
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.
> java:137)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.ja
> va
> :566)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java
> :5
> 36)
> at
> org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:939)
> at
>
org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:239)
> at
> com.sun.enterprise.web.connector.grizzly.ProcessorTask.invokeAdapter(P
> ro
> cessorTask.java:667)
> at
> com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlock
> ed
> (ProcessorTask.java:574)
> at
> com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(Process
> or
> Task.java:844)
> at
> com.sun.enterprise.web.connector.grizzly.ReadTask.executeProcessorTask
> (R
> eadTask.java:287)
> at
> com.sun.enterprise.web.connector.grizzly.ReadTask.doTask(ReadTask.java
> :2
> 12)
> at
>
com.sun.enterprise.web.connector.grizzly.TaskBase.run(TaskBase.java:252)
> at
> com.sun.enterprise.web.connector.grizzly.WorkerThread.run(WorkerThread
> .j
> ava:75)
> -----------------------------------------
> NOTICE: This email message is for the sole use of the intended
> recipient(s)
> and may contain confidential and privileged information. Any
> unauthorized use, disclosure or distribution is prohibited. If you are

> not the intended recipient, please contact the sender by reply email
> and destroy all copies of the original message.
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
> For additional commands, e-mail: users-help_at_glassfish.dev.java.net
>

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe_at_glassfish.dev.java.net
For additional commands, e-mail: users-help_at_glassfish.dev.java.net