Hi. I'm using JDeveloper 12.2.1.4. The application in question was written in 11g (11.1.2.4.0) and upgraded to 12.2.1.4 via 12.1.3.0.0 (as per recommended upgrade path).
I have a table component based on a read-only view object where a number of the attributes are defined with Number format masks in the UI Hints configuration. These numeric attributes (of varying types - like Long and BigDecimal) are then nicely formatted in the table cells when displayed.
However, when testing with Application Module Pooling switched off, when a value is entered in the table filter facet for any of these attributes, a passivation error occurs as follows:
oracle.jbo.JboException: JBO-29000: Unexpected exception caught: java.lang.ClassCastException, msg=java.lang.Long cannot be cast to java.lang.String
at oracle.jbo.server.Serializer.passivate(Serializer.java:274)
at oracle.jbo.server.DBSerializer.passivateRootAM(DBSerializer.java:298)
at oracle.jbo.server.DBSerializer.passivateRootAM(DBSerializer.java:271)
at oracle.jbo.server.ApplicationModuleImpl.passivateStateInternal(ApplicationModuleImpl.java:6604)
at oracle.jbo.server.ApplicationModuleImpl.passivateState(ApplicationModuleImpl.java:6471)
at com.cognition.model.cognition_model_view.CognitionViewAMImpl.passivateState(CognitionViewAMImpl.java:4254)
at oracle.jbo.server.ApplicationPoolMessageHandler.doPoolMessage(ApplicationPoolMessageHandler.java:395)
at oracle.jbo.server.ApplicationModuleImpl.doPoolMessage(ApplicationModuleImpl.java:10013)
at oracle.jbo.common.ampool.ApplicationPoolImpl.sendPoolMessage(ApplicationPoolImpl.java:4618)
at oracle.jbo.common.ampool.ApplicationPoolImpl.doManagedCheckin(ApplicationPoolImpl.java:2791)
at oracle.jbo.common.ampool.ApplicationPoolImpl.releaseApplicationModule(ApplicationPoolImpl.java:1547)
at oracle.jbo.common.ampool.SessionCookieImpl.releaseApplicationModule(SessionCookieImpl.java:863)
at oracle.jbo.common.ampool.SessionCookieImpl.releaseApplicationModule(SessionCookieImpl.java:783)
at oracle.adf.model.bc4j.DCJboDataControl.releaseApplicationModule(DCJboDataControl.java:2616)
at oracle.adf.model.bc4j.DCJboDataControl.endRequest(DCJboDataControl.java:2306)
at oracle.adf.model.dcframe.DataControlFrameImpl.endRequestInternal(DataControlFrameImpl.java:830)
at oracle.adf.model.dcframe.DataControlFrameImpl.endRequestInternal(DataControlFrameImpl.java:785)
at oracle.adf.model.dcframe.DataControlFrameImpl.endRequestInternal(DataControlFrameImpl.java:785)
at oracle.adf.model.dcframe.DataControlFrameImpl.endRequest(DataControlFrameImpl.java:725)
at oracle.adf.model.BindingContext.endRequest(BindingContext.java:2744)
at oracle.adf.model.BindingRequestHandler.invokeEndRequest(BindingRequestHandler.java:476)
at oracle.adf.model.BindingRequestHandler.endRequest(BindingRequestHandler.java:345)
at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:217)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:105)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain$1.call(TrinidadFilterImpl.java:591)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain$1.call(TrinidadFilterImpl.java:587)
at org.apache.myfaces.trinidad.context.ExternalContextPropagator.processInScope(ExternalContextPropagator.java:216)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:596)
at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:91)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain$1.call(TrinidadFilterImpl.java:591)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain$1.call(TrinidadFilterImpl.java:587)
at org.apache.myfaces.trinidad.context.ExternalContextPropagator.processInScope(ExternalContextPropagator.java:216)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:596)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$1.call(TrinidadFilterImpl.java:372)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$1.call(TrinidadFilterImpl.java:368)
at org.apache.myfaces.trinidad.context.ExternalContextPropagator.processInScope(ExternalContextPropagator.java:216)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:383)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:241)
at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:101)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:169)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
at oracle.security.jps.ee.http.JpsAbsFilter$3.run(JpsAbsFilter.java:175)
at java.security.AccessController.doPrivileged(Native Method)
at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:315)
at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:650)
at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:112)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilterInternal(JpsAbsFilter.java:293)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:150)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:94)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:248)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
at oracle.jrf.servlet.ExtensibleGlobalFilter.doFilter(ExtensibleGlobalFilter.java:92)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:32)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3797)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3763)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:344)
at weblogic.security.service.SecurityManager.runAsForUserCode(SecurityManager.java:197)
at weblogic.servlet.provider.WlsSecurityProvider.runAsForUserCode(WlsSecurityProvider.java:203)
at weblogic.servlet.provider.WlsSubjectHandle.run(WlsSubjectHandle.java:71)
at weblogic.servlet.internal.WebAppServletContext.doSecuredExecute(WebAppServletContext.java:2451)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2299)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2277)
at weblogic.servlet.internal.ServletRequestImpl.runInternal(ServletRequestImpl.java:1720)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1680)
at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:272)
at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:352)
at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:337)
at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:57)
at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)
at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:655)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:420)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:360)
Caused by: java.lang.ClassCastException: java.lang.Long cannot be cast to java.lang.String
at oracle.jbo.ViewCriteria.passivateElementProperties(ViewCriteria.java:3854)
at oracle.jbo.ViewCriteria.passivate(ViewCriteria.java:3768)
at oracle.jbo.server.ViewCriteriaManagerImpl.passivateViewCriterias(ViewCriteriaManagerImpl.java:456)
at oracle.jbo.server.ViewObjectImpl.doPassivateSettings(ViewObjectImpl.java:23102)
at oracle.jbo.server.ApplicationModuleImpl.passivateVOs(ApplicationModuleImpl.java:8641)
at oracle.jbo.server.ApplicationModuleImpl.doPassivateState(ApplicationModuleImpl.java:8399)
at oracle.jbo.server.ApplicationModuleImpl.doPassivateAMState(ApplicationModuleImpl.java:8384)
at oracle.jbo.server.Serializer.passivate(Serializer.java:244)
... 76 more
## Detail 0 ##
This error does not occur in 11g. Nor does it occur in a 12c OCI environment (on a stand-alone Weblogic server running the same application code).
If I remove the UI Hints formatting from any of these attributes, the problem no longer occurs.
Can someone point me in the right direction here please? I've tried to find some bug reference for this but have not found anything so far.
Thanks for your help.