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!

java.lang.ClassCastException : ViewRowSetImpl cannot be cast to Row

686062Aug 19 2010 — edited Jul 21 2011
Hi,
Our production team is working with jdev 11.1.1.0.1 and we faces a very strange problem. We have a big application (around 450 jspx, 300 taskFlow, 50 AppModule ....) and a random error occured... we can't create a "test-case" to reproduce the problem.
When running our application, sometimes a "java.lang.ClassCastException" occured like this one :
oracle.jbo.AttrValException: JBO-27019: Impossible de résoudre la méthode Get pour l'attribut "NatuPiecOrigReceView" dans LignEcriReceMaitreView.
	at oracle.jbo.server.ViewRowImpl.getAttribute(ViewRowImpl.java:810)
	at oracle.jbo.server.ViewRowImpl.findOrCreateViewAccessorRS(ViewRowImpl.java:2092)
	at oracle.jbo.server.ViewRowImpl.getListBindingRSI(ViewRowImpl.java:2041)
	at oracle.jbo.server.ViewRowImpl.getListBindings(ViewRowImpl.java:1856)
	at oracle.jbo.server.ViewObjectImpl.afterRowUpdate(ViewObjectImpl.java:11238)
	at oracle.jbo.server.ViewObjectImpl.sourceChanged(ViewObjectImpl.java:11492)
	at oracle.jbo.server.EntityCache.sendEvent(EntityCache.java:1150)
	at oracle.jbo.server.EntityCache.deliverEntityEvent(EntityCache.java:1164)
	at oracle.jbo.server.EntityCache.notifyColumnAndBlgChange(EntityCache.java:1220)
	at oracle.jbo.server.EntityImpl.notifyAttributesChanged(EntityImpl.java:6781)
	at oracle.jbo.server.EntityImpl.notifyAttributesChanged(EntityImpl.java:6762)
	at oracle.jbo.server.EntityImpl.notifyAttributesAndBlgChanged(EntityImpl.java:6771)
	at oracle.jbo.server.EntityImpl.setAttributeValue(EntityImpl.java:3138)
	at oracle.jbo.server.AttributeDefImpl.set(AttributeDefImpl.java:2676)
	at oracle.jbo.server.EntityImpl.setAttributeInternal(EntityImpl.java:1687)
	at visa.gf.ecriture.model.entities.LignEcriReceImpl.setEcprEcprId(LignEcriReceImpl.java:822)
	at visa.gf.ecriture.model.entities.LignEcriReceImpl$AttributesEnum$8.put(LignEcriReceImpl.java:109)
	at visa.gf.ecriture.model.entities.LignEcriReceImpl.setAttrInvokeAccessor(LignEcriReceImpl.java:1394)
	at oracle.jbo.server.EntityImpl.setAttribute(EntityImpl.java:1595)
	at oracle.jbo.server.ViewRowStorage.setAttributeValue(ViewRowStorage.java:1959)
	at oracle.jbo.server.ViewRowStorage.setAttributeInternal(ViewRowStorage.java:1803)
	at oracle.jbo.server.ViewRowImpl.setAttributeInternal(ViewRowImpl.java:1266)
	at visa.gf.ecriture.model.views.LignEcriReceViewRowImpl.setEcprEcprId(LignEcriReceViewRowImpl.java:1546)
	at visa.gf.ecriture.model.services.EcritureServicesImpl.creerLignEcriReceAvecId(EcritureServicesImpl.java:4897)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at oracle.adf.model.binding.DCInvokeMethod.invokeMethod(DCInvokeMethod.java:563)
	at oracle.adf.model.binding.DCDataControl.invokeMethod(DCDataControl.java:2119)
	at oracle.adf.model.bc4j.DCJboDataControl.invokeMethod(DCJboDataControl.java:2929)
	at oracle.adf.model.binding.DCInvokeMethod.callMethod(DCInvokeMethod.java:258)
	at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1441)
	at oracle.adf.model.binding.DCDataControl.invokeOperation(DCDataControl.java:2126)
	at oracle.jbo.uicli.binding.JUCtrlActionBinding.invoke(JUCtrlActionBinding.java:697)
	at oracle.adf.controller.v2.lifecycle.PageLifecycleImpl.executeEvent(PageLifecycleImpl.java:392)
	at oracle.adfinternal.view.faces.model.binding.FacesCtrlActionBinding._execute(FacesCtrlActionBinding.java:159)
	at oracle.adfinternal.view.faces.model.binding.FacesCtrlActionBinding.execute(FacesCtrlActionBinding.java:143)
	at sun.reflect.GeneratedMethodAccessor108.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at org.apache.el.parser.AstValue.invoke(AstValue.java:172)
	at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:276)
	at oracle.adf.controller.internal.util.ELInterfaceImpl.invokeMethod(ELInterfaceImpl.java:136)
	at oracle.adfinternal.controller.activity.MethodCallActivityLogic.execute(MethodCallActivityLogic.java:140)
	at oracle.adfinternal.controller.engine.ControlFlowEngine.doRouting(ControlFlowEngine.java:834)
	at oracle.adfinternal.controller.engine.ControlFlowEngine.doRouting(ControlFlowEngine.java:718)
	at oracle.adfinternal.controller.engine.ControlFlowEngine.routeFromActivity(ControlFlowEngine.java:491)
	at oracle.adfinternal.controller.engine.ControlFlowEngine.performControlFlow(ControlFlowEngine.java:108)
	at oracle.adfinternal.controller.application.NavigationHandlerImpl.handleNavigation(NavigationHandlerImpl.java:86)
	at org.apache.myfaces.trinidadinternal.application.NavigationHandlerImpl.handleNavigation(NavigationHandlerImpl.java:43)
	at visa.framework.view.outils.VisaNavigationHandlerInterceptor.gererPopupConfirmation(VisaNavigationHandlerInterceptor.java:114)
	at visa.framework.view.outils.VisaNavigationHandlerInterceptor.gererPopupSupprEtConf(VisaNavigationHandlerInterceptor.java:184)
	at visa.framework.view.outils.VisaNavigationHandlerInterceptor.handleNavigation(VisaNavigationHandlerInterceptor.java:49)
	at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:130)
	at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:190)
	at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:70)
	at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:274)
	at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:74)
	at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:70)
	at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:274)
	at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:74)
	at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:458)
	at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:763)
	at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:640)
	at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:275)
	at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:175)
	at javax.faces.webapp.FacesServlet.service(FacesServlet.java:265)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:181)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:85)
	at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:279)
	at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._invokeDoFilter(TrinidadFilterImpl.java:239)
	at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:196)
	at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:139)
	at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:149)
	at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
	at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
	at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
	at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
	at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
	at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
	at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
	at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:286)
	at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:845)
	at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
	at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:447)
	at java.lang.Thread.run(Unknown Source)
Caused by: java.lang.ClassCastException: oracle.jbo.server.ViewRowSetImpl cannot be cast to oracle.jbo.Row
	at visa.gf.ecriture.model.views.LignEcriReceViewRowImpl.getEcriPiecReceView(LignEcriReceViewRowImpl.java:3057)
	at visa.gf.ecriture.model.views.LignEcriReceViewRowImpl$AttributesEnum$102.get(LignEcriReceViewRowImpl.java:960)
	at visa.gf.ecriture.model.views.LignEcriReceViewRowImpl.getAttrInvokeAccessor(LignEcriReceViewRowImpl.java:3268)
	at oracle.jbo.server.ViewRowImpl.getAttribute(ViewRowImpl.java:791)
	... 93 more
## Detail 0 ##
java.lang.ClassCastException: oracle.jbo.server.ViewRowSetImpl cannot be cast to oracle.jbo.Row
	at visa.gf.ecriture.model.views.LignEcriReceViewRowImpl.getEcriPiecReceView(LignEcriReceViewRowImpl.java:3057)
	at visa.gf.ecriture.model.views.LignEcriReceViewRowImpl$AttributesEnum$102.get(LignEcriReceViewRowImpl.java:960)
	at visa.gf.ecriture.model.views.LignEcriReceViewRowImpl.getAttrInvokeAccessor(LignEcriReceViewRowImpl.java:3268)
	at oracle.jbo.server.ViewRowImpl.getAttribute(ViewRowImpl.java:791)
	at oracle.jbo.server.ViewRowImpl.findOrCreateViewAccessorRS(ViewRowImpl.java:2092)
	at oracle.jbo.server.ViewRowImpl.getListBindingRSI(ViewRowImpl.java:2041)
	at oracle.jbo.server.ViewRowImpl.getListBindings(ViewRowImpl.java:1856)
	at oracle.jbo.server.ViewObjectImpl.afterRowUpdate(ViewObjectImpl.java:11238)
	at oracle.jbo.server.ViewObjectImpl.sourceChanged(ViewObjectImpl.java:11492)
	at oracle.jbo.server.EntityCache.sendEvent(EntityCache.java:1150)
	at oracle.jbo.server.EntityCache.deliverEntityEvent(EntityCache.java:1164)
	at oracle.jbo.server.EntityCache.notifyColumnAndBlgChange(EntityCache.java:1220)
	at oracle.jbo.server.EntityImpl.notifyAttributesChanged(EntityImpl.java:6781)
	at oracle.jbo.server.EntityImpl.notifyAttributesChanged(EntityImpl.java:6762)
	at oracle.jbo.server.EntityImpl.notifyAttributesAndBlgChanged(EntityImpl.java:6771)
	at oracle.jbo.server.EntityImpl.setAttributeValue(EntityImpl.java:3138)
	at oracle.jbo.server.AttributeDefImpl.set(AttributeDefImpl.java:2676)
	at oracle.jbo.server.EntityImpl.setAttributeInternal(EntityImpl.java:1687)
	at visa.gf.ecriture.model.entities.LignEcriReceImpl.setEcprEcprId(LignEcriReceImpl.java:822)
	at visa.gf.ecriture.model.entities.LignEcriReceImpl$AttributesEnum$8.put(LignEcriReceImpl.java:109)
	at visa.gf.ecriture.model.entities.LignEcriReceImpl.setAttrInvokeAccessor(LignEcriReceImpl.java:1394)
	at oracle.jbo.server.EntityImpl.setAttribute(EntityImpl.java:1595)
	at oracle.jbo.server.ViewRowStorage.setAttributeValue(ViewRowStorage.java:1959)
	at oracle.jbo.server.ViewRowStorage.setAttributeInternal(ViewRowStorage.java:1803)
	at oracle.jbo.server.ViewRowImpl.setAttributeInternal(ViewRowImpl.java:1266)
	at visa.gf.ecriture.model.views.LignEcriReceViewRowImpl.setEcprEcprId(LignEcriReceViewRowImpl.java:1546)
	at visa.gf.ecriture.model.services.EcritureServicesImpl.creerLignEcriReceAvecId(EcritureServicesImpl.java:4897)
	at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source)
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source)
	at java.lang.reflect.Method.invoke(Unknown Source)
	at oracle.adf.model.binding.DCInvokeMethod.invokeMethod(DCInvokeMethod.java:563)
	at oracle.adf.model.binding.DCDataControl.invokeMethod(DCDataControl.java:2119)
	at oracle.adf.model.bc4j.DCJboDataControl.invokeMethod(DCJboDataControl.java:2929)
	at oracle.adf.model.binding.DCInvokeMethod.callMethod(DCInvokeMethod.java:258)
	at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1441)
	at oracle.adf.model.binding.DCDataControl.invokeOperation(DCDataControl.java:2126)
	at oracle.jbo.uicli.binding.JUCtrlActionBinding.invoke(JUCtrlActionBinding.java:697)
	at oracle.adf.controller.v2.lifecycle.PageLifecycleImpl.executeEvent(PageLifecycleImpl.java:392)
	at oracle.adfinternal.view.faces.model.binding.FacesCtrlActionBinding._execute(FacesCtrlActionBinding.java:159)
	at oracle.adfinternal.view.faces.model.binding.FacesCtrlActionBinding.execute(FacesCtrlActionBinding.java:143)
--> We found and use this article : http://radio-weblogs.com/0118231/2005/01/13.html, but the problem is still here.
--> Our xml files are coherent and the rule "one to many" or "one to one" on viewLink is respected :
--------> When "one to one", use a oracle.jbo.Row
--------> When "One to Many", use a oracle.jbo.RowIterator

Searching and searching, we found that the problem is coming from view accessors (for lovs) : we noticed a lag on index : instead of getting a view accessor, the VO try to cast a view accessor in view link. BUT, it doesn't always occured!
To be more precise : when it occured, lag on index = (view accessor index*) - (view link number)

* index = attribute no in the ViewRowImpl, used to get value of attribute.

Have you ever faces this problem? any idea to correct it? is it a bug?
Thanks in advance
Clément
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Aug 18 2011
Added on Aug 19 2010
6 comments
4,401 views