Skip to Main Content

Java Development Tools

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

ArrayIndexOutOfBoundsException error during passivation

Brent HarlowSep 3 2012 — edited Sep 6 2012
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
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Oct 4 2012
Added on Sep 3 2012
2 comments
674 views