This discussion is archived
2 Replies Latest reply: Jun 5, 2012 9:49 AM by 186148 RSS

Serialization error when using Jheadstart LOV's

186148 Newbie
Currently Being Moderated
I am using Jheadstart 11.1.1.4.26 and JDev 11.1.1.5

I have 2 applications, One of them uses JHeadstart LOV's and drop downs throught and has no errors. The other application gets a serialization error on the task flow at runtime if I use a JHeadstart LOV. If I use all ADF Model LOV's it is happy.

I have spent hours comparing the 2 applications looking for what is causing the serialization error on the one app but not the other. I was under the impression that upgrading to the latest jheadstart fixed this problem on the good app. Upgrading has not fixed the other one though.

Can anyone shed some light on this for me?


Thanks,
Jim

<SessionBasedScopeMap> <writeScopeMap> ADFc: Scope object serialization failed (object not serializable), scope='pageFlowScope[WEB-INF/adfc-config-CgRefCodesDescriptor2.xml#CgRefCodesDescriptor2TaskFlow]', objectKey='jhsLovPopup', objectType='oracle.jheadstart.controller.jsf.bean.UIComponentBinder'.
<SessionBasedScopeMap> <writeScopeMap>
java.io.NotSerializableException: oracle.jheadstart.controller.jsf.bean.UIComponentBinder
     at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)
     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
     at oracle.adfinternal.controller.util.Utils.verifySerializable(Utils.java:341)
     at oracle.adfinternal.controller.state.SessionBasedScopeMap.writeScopeMap(SessionBasedScopeMap.java:122)
     at oracle.adfinternal.controller.state.PageFlowScope.writeObject(PageFlowScope.java:156)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:597)
     at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
     at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
     at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
     at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
     at java.util.concurrent.ConcurrentHashMap.writeObject(ConcurrentHashMap.java:1247)
     at sun.reflect.GeneratedMethodAccessor249.invoke(Unknown Source)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:597)
     at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
     at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
     at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
     at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
     at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
     at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
     at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
     at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
     at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
     at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
     at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
     at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
     at java.util.Hashtable.writeObject(Hashtable.java:824)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:597)
     at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
     at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
     at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
     at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
     at weblogic.servlet.internal.session.SessionData.writeExternal(SessionData.java:1095)
     at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1429)
     at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1398)
     at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
     at weblogic.servlet.internal.session.FileSessionContext.sync(FileSessionContext.java:407)
     at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.syncSession(ServletRequestImpl.java:2860)
     at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.syncSession(ServletRequestImpl.java:2835)
     at weblogic.servlet.internal.ServletResponseImpl$1.run(ServletResponseImpl.java:1485)
     at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
     at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
     at weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:1479)
     at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1462)
     at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
     at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
<SessionBasedScopeMap> <writeScopeMap> ADFc: Scope object serialization failed (object not serializable), scope='pageFlowScope[WEB-INF/adfc-config-CgRefCodesDescriptor2.xml#CgRefCodesDescriptor2TaskFlow]', objectKey='jhsLovPopup', objectType='oracle.jheadstart.controller.jsf.bean.UIComponentBinder'.
<SessionBasedScopeMap> <writeScopeMap>
java.io.NotSerializableException: oracle.jheadstart.controller.jsf.bean.UIComponentBinder
     at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1164)
     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
     at oracle.adfinternal.controller.util.Utils.verifySerializable(Utils.java:341)
     at oracle.adfinternal.controller.state.SessionBasedScopeMap.writeScopeMap(SessionBasedScopeMap.java:122)
     at oracle.adfinternal.controller.state.PageFlowScope.writeObject(PageFlowScope.java:156)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:597)
     at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
     at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
     at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
     at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
     at java.util.concurrent.ConcurrentHashMap.writeObject(ConcurrentHashMap.java:1247)
     at sun.reflect.GeneratedMethodAccessor249.invoke(Unknown Source)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:597)
     at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
     at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
     at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
     at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
     at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
     at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
     at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
     at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
     at java.io.ObjectOutputStream.defaultWriteFields(ObjectOutputStream.java:1518)
     at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1483)
     at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
     at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
     at java.util.Hashtable.writeObject(Hashtable.java:824)
     at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
     at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
     at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
     at java.lang.reflect.Method.invoke(Method.java:597)
     at java.io.ObjectStreamClass.invokeWriteObject(ObjectStreamClass.java:945)
     at java.io.ObjectOutputStream.writeSerialData(ObjectOutputStream.java:1469)
     at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1400)
     at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
     at weblogic.servlet.internal.session.SessionData.writeExternal(SessionData.java:1095)
     at java.io.ObjectOutputStream.writeExternalData(ObjectOutputStream.java:1429)
     at java.io.ObjectOutputStream.writeOrdinaryObject(ObjectOutputStream.java:1398)
     at java.io.ObjectOutputStream.writeObject0(ObjectOutputStream.java:1158)
     at java.io.ObjectOutputStream.writeObject(ObjectOutputStream.java:330)
     at weblogic.servlet.internal.session.FileSessionContext.sync(FileSessionContext.java:407)
     at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.syncSession(ServletRequestImpl.java:2860)
     at weblogic.servlet.internal.ServletRequestImpl$SessionHelper.syncSession(ServletRequestImpl.java:2835)
     at weblogic.servlet.internal.ServletResponseImpl$1.run(ServletResponseImpl.java:1485)
     at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
     at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
     at weblogic.servlet.internal.ServletResponseImpl.send(ServletResponseImpl.java:1479)
     at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1462)
     at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
     at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
  • 1. Re: Serialization error when using Jheadstart LOV's
    Steven Davelaar Employee ACE
    Currently Being Moderated
    Jim,

    This is quite strange, the component binder class has the UI component defined as transient, so it should not serialize it.
    Have you enabed serialization because you are running in a cluster? If so, are you running Weblogic? Weblogic can be configured to do in-memory session replication which might solve your problem alltogether.

    What settings did you make in web.xml and weblogic.xml for failover?

    Steven.
  • 2. Re: Serialization error when using Jheadstart LOV's
    186148 Newbie
    Currently Being Moderated
    Thanks Stephen, You jarred my memory. It was the weblogic.xml settings. In the application without the serialization error I had commented out some persistence settings. When I did the same with the problem application the serialization error went away.


    <?xml version = '1.0' encoding = 'UTF-8'?>
    <weblogic-web-app xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.bea.com/ns/weblogic/weblogic-web-app http://www.bea.com/ns/weblogic/weblogic-web-app/1.0/weblogic-web-app.xsd" xmlns="http://www.bea.com/ns/weblogic/weblogic-web-app">
    <!--
    If you change this file, make sure to change it's counterpart in src/main/deployment/weblogic.xml
    -->
    <!-- Comment out persistent store to fix serialization problem with JHS Lov's
    <session-descriptor>
    <persistent-store-type>file</persistent-store-type>
    <persistent-store-dir>/tmp</persistent-store-dir>
    </session-descriptor>
    -->
    </weblogic-web-app>

Legend

  • Correct Answers - 10 points
  • Helpful Answers - 5 points