users@glassfish.java.net

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

From: Jagadish Prasath Ramu <Jagadish.Ramu_at_Sun.COM>
Date: Fri, 23 Feb 2007 21:02:33 +0530

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.cata
> lina.session.ManagerBase|_ThreadID=22;_ThreadName=httpWorkerThread-4848-
> 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(StandardSess
> ion.java:1040)
> at
> org.apache.catalina.session.StandardManager.doUnload(StandardManager.jav
> 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(TomcatApplicati
> onLoader.java:179)
> at
> com.sun.enterprise.server.ApplicationManager.applicationUndeployed(Appli
> cationManager.java:511)
> at
> com.sun.enterprise.server.ApplicationManager.applicationUndeployed(Appli
> cationManager.java:437)
> at
> com.sun.enterprise.server.ApplicationManager.applicationDisabled(Applica
> tionManager.java:807)
> at
> com.sun.enterprise.admin.event.AdminEventMulticaster.invokeApplicationDe
> ployEventListener(AdminEventMulticaster.java:916)
> at
> com.sun.enterprise.admin.event.AdminEventMulticaster.handleApplicationDe
> ployEvent(AdminEventMulticaster.java:892)
> at
> com.sun.enterprise.admin.event.AdminEventMulticaster.processEvent(AdminE
> ventMulticaster.java:445)
> at
> com.sun.enterprise.admin.event.AdminEventMulticaster.multicastEvent(Admi
> nEventMulticaster.java:160)
> at
> com.sun.enterprise.admin.server.core.AdminNotificationHelper.sendNotific
> ation(AdminNotificationHelper.java:128)
> at
> com.sun.enterprise.admin.server.core.ConfigInterceptor.postInvoke(Config
> 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(Sunone
> Interceptor.java:297)
> at
> com.sun.enterprise.admin.jmx.remote.server.callers.InvokeCaller.call(Inv
> okeCaller.java:56)
> at
> com.sun.enterprise.admin.jmx.remote.server.MBeanServerRequestHandler.han
> dle(MBeanServerRequestHandler.java:142)
> at
> com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorSer
> vlet.processRequest(RemoteJmxConnectorServlet.java:109)
> at
> com.sun.enterprise.admin.jmx.remote.server.servlet.RemoteJmxConnectorSer
> 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(Applicati
> onFilterChain.java:397)
> at
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValv
> e.java:278)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java
> :566)
> at
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:5
> 36)
> at
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardCon
> textValve.java:240)
> at
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValv
> e.java:179)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java
> :566)
> at
> com.sun.enterprise.web.WebPipeline.invoke(WebPipeline.java:73)
> at
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java
> :182)
> at
> org.apache.catalina.core.StandardPipeline.doInvoke(StandardPipeline.java
> :566)
> at
> com.sun.enterprise.web.VirtualServerPipeline.invoke(VirtualServerPipelin
> 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.java
> :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(Pro
> cessorTask.java:667)
> at
> com.sun.enterprise.web.connector.grizzly.ProcessorTask.processNonBlocked
> (ProcessorTask.java:574)
> at
> com.sun.enterprise.web.connector.grizzly.ProcessorTask.process(Processor
> 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
>