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