Dear all,
When running my ADF application (Jdeveloper 11.1.1.6) with AM pooling switched off to test passivation/activation I run into an ArrayIndexOutOfBoundsException error each time I attempt to select a record to update.
The error msg is
oracle.jbo.JboException: JBO-29000: Unexpected exception caught: java.lang.ArrayIndexOutOfBoundsException, msg=31
at oracle.jbo.server.Serializer.passivate(Serializer.java:251)
at oracle.jbo.server.DBSerializer.passivateRootAM(DBSerializer.java:290)
at oracle.jbo.server.DBSerializer.passivateRootAM(DBSerializer.java:267)
at oracle.jbo.server.ApplicationModuleImpl.passivateStateInternal(ApplicationModuleImpl.java:6007)
at oracle.jbo.server.ApplicationModuleImpl.passivateState(ApplicationModuleImpl.java:5877)
at oracle.jbo.server.ApplicationPoolMessageHandler.doPoolMessage(ApplicationPoolMessageHandler.java:386)
at oracle.jbo.server.ApplicationModuleImpl.doPoolMessage(ApplicationModuleImpl.java:9084)
at oracle.jbo.common.ampool.ApplicationPoolImpl.sendPoolMessage(ApplicationPoolImpl.java:4607)
at oracle.jbo.common.ampool.ApplicationPoolImpl.doManagedCheckin(ApplicationPoolImpl.java:2821)
at oracle.jbo.common.ampool.ApplicationPoolImpl.releaseApplicationModule(ApplicationPoolImpl.java:1626)
at oracle.jbo.common.ampool.SessionCookieImpl.releaseApplicationModule(SessionCookieImpl.java:824)
at oracle.jbo.common.ampool.SessionCookieImpl.releaseApplicationModule(SessionCookieImpl.java:744)
at oracle.adf.model.bc4j.DCJboDataControl.releaseApplicationModule(DCJboDataControl.java:2487)
at oracle.adf.model.bc4j.DCJboDataControl.endRequest(DCJboDataControl.java:2137)
at oracle.adf.model.dcframe.DataControlFrameImpl.endRequestInternal(DataControlFrameImpl.java:770)
at oracle.adf.model.dcframe.DataControlFrameImpl.endRequest(DataControlFrameImpl.java:642)
at oracle.adf.model.BindingContext.endRequest(BindingContext.java:1995)
at oracle.adf.model.BindingRequestHandler.invokeEndRequest(BindingRequestHandler.java:394)
at oracle.adf.model.BindingRequestHandler.endRequest(BindingRequestHandler.java:307)
at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:210)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at hmdclinical.pulse.view.PulseAuthenticationFilter.doFilter(PulseAuthenticationFilter.java:263)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
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:442)
at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:119)
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:442)
at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:103)
at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:171)
at oracle.security.jps.ee.http.JpsFilter.doFilter(JpsFilter.java:71)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.dms.servlet.DMSServletFilter.doFilter(DMSServletFilter.java:139)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.RequestEventsFilter.doFilter(RequestEventsFilter.java:27)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.wrapRun(WebAppServletContext.java:3715)
at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3681)
at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:321)
at weblogic.security.service.SecurityManager.runAs(SecurityManager.java:120)
at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2277)
at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2183)
at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1454)
at weblogic.work.ExecuteThread.execute(ExecuteThread.java:209)
at weblogic.work.ExecuteThread.run(ExecuteThread.java:178)
Caused by: java.lang.ArrayIndexOutOfBoundsException: 31
at oracle.jbo.server.ViewRowStorage.getCachedCalcAttributeValue(ViewRowStorage.java:1699)
at oracle.jbo.server.ViewRowImpl.renderAttributeInXMLElement(ViewRowImpl.java:4520)
at oracle.jbo.server.ViewObjectImpl.passivateTransients(ViewObjectImpl.java:18424)
at oracle.jbo.server.ViewObjectImpl.passivateTransients(ViewObjectImpl.java:18347)
at oracle.jbo.server.ViewObjectImpl.passivateState(ViewObjectImpl.java:18085)
at oracle.jbo.server.ViewObjectImpl.passivateState(ViewObjectImpl.java:18024)
at oracle.jbo.server.ViewObjectImpl.doPassivateSettings(ViewObjectImpl.java:20125)
at oracle.jbo.server.ApplicationModuleImpl.passivateVOs(ApplicationModuleImpl.java:7818)
at oracle.jbo.server.ApplicationModuleImpl.doPassivateState(ApplicationModuleImpl.java:7625)
at oracle.jbo.server.ApplicationModuleImpl.doPassivateState(ApplicationModuleImpl.java:7656)
at oracle.jbo.server.ApplicationModuleImpl.doPassivateAMState(ApplicationModuleImpl.java:7612)
at oracle.jbo.server.Serializer.passivate(Serializer.java:222)
... 59 more
## Detail 0 ##
java.lang.ArrayIndexOutOfBoundsException: 31
at oracle.jbo.server.ViewRowStorage.getCachedCalcAttributeValue(ViewRowStorage.java:1699)
at oracle.jbo.server.ViewRowImpl.renderAttributeInXMLElement(ViewRowImpl.java:4520)
at oracle.jbo.server.ViewObjectImpl.passivateTransients(ViewObjectImpl.java:18424)
at oracle.jbo.server.ViewObjectImpl.passivateTransients(ViewObjectImpl.java:18347)
at oracle.jbo.server.ViewObjectImpl.passivateState(ViewObjectImpl.java:18085)
at oracle.jbo.server.ViewObjectImpl.passivateState(ViewObjectImpl.java:18024)
at oracle.jbo.server.ViewObjectImpl.doPassivateSettings(ViewObjectImpl.java:20125)
at oracle.jbo.server.ApplicationModuleImpl.passivateVOs(ApplicationModuleImpl.java:7818)
at oracle.jbo.server.ApplicationModuleImpl.doPassivateState(ApplicationModuleImpl.java:7625)
at oracle.jbo.server.ApplicationModuleImpl.doPassivateState(ApplicationModuleImpl.java:7656)
at oracle.jbo.server.ApplicationModuleImpl.doPassivateAMState(ApplicationModuleImpl.java:7612)
at oracle.jbo.server.Serializer.passivate(Serializer.java:222)
at oracle.jbo.server.DBSerializer.passivateRootAM(DBSerializer.java:290)
at oracle.jbo.server.DBSerializer.passivateRootAM(DBSerializer.java:267)
at oracle.jbo.server.ApplicationModuleImpl.passivateStateInternal(ApplicationModuleImpl.java:6007)
at oracle.jbo.server.ApplicationModuleImpl.passivateState(ApplicationModuleImpl.java:5877)
at oracle.jbo.server.ApplicationPoolMessageHandler.doPoolMessage(ApplicationPoolMessageHandler.java:386)
at oracle.jbo.server.ApplicationModuleImpl.doPoolMessage(ApplicationModuleImpl.java:9084)
at oracle.jbo.common.ampool.ApplicationPoolImpl.sendPoolMessage(ApplicationPoolImpl.java:4607)
at oracle.jbo.common.ampool.ApplicationPoolImpl.doManagedCheckin(ApplicationPoolImpl.java:2821)
at oracle.jbo.common.ampool.ApplicationPoolImpl.releaseApplicationModule(ApplicationPoolImpl.java:1626)
at oracle.jbo.common.ampool.SessionCookieImpl.releaseApplicationModule(SessionCookieImpl.java:824)
at oracle.jbo.common.ampool.SessionCookieImpl.releaseApplicationModule(SessionCookieImpl.java:744)
at oracle.adf.model.bc4j.DCJboDataControl.releaseApplicationModule(DCJboDataControl.java:2487)
at oracle.adf.model.bc4j.DCJboDataControl.endRequest(DCJboDataControl.java:2137)
at oracle.adf.model.dcframe.DataControlFrameImpl.endRequestInternal(DataControlFrameImpl.java:770)
at oracle.adf.model.dcframe.DataControlFrameImpl.endRequest(DataControlFrameImpl.java:642)
at oracle.adf.model.BindingContext.endRequest(BindingContext.java:1995)
at oracle.adf.model.BindingRequestHandler.invokeEndRequest(BindingRequestHandler.java:394)
at oracle.adf.model.BindingRequestHandler.endRequest(BindingRequestHandler.java:307)
at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:210)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:106)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:446)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:271)
at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:177)
at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
..................
I'm guessing at this that some object is failing to be passivated (as it can't be serialized ?). The problem is - how on earth do I find out exactly what is causing the problem ? I tried running the application in debug mode and put a breakpoint in for "oracle.jbo.JBoException" but I couldn't see anything in the data that helped suggest what was causing the problem. The same thing happens on a couple of different pages - different view objects but same underlying entities.
How can I debug this to find out exactly what object is causing the ArrayIndexOutOfBoundsException on passivation ? What sort of thing is likely to cause this ?
Cheers,
Brent Harlow