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!

oracle.jbo.AttrSetValException: JBO-27020: The set method for attribute X cannot be resolved.

WP v.2Dec 11 2017 — edited Dec 15 2017

Hi all,

I'm running into a runtime exception when trying to manually update a FK field in a VO. I created a new ID field (RStatusId) in a pre-existing table that is a FK to another table. I synced the EO in JDev to bring in this ID field. I added the ID field in the VO and also added an EO reference on the foreign table for which this ID is a foreign key to, so that I could also display values from the foreign table.

I've attempt to set the value of the RStatusId two ways in the backing bean but they both result in an exception being thrown.

One way is adding a field binding in the page def and using ADFUtils.setBoundAttributeValue(), but that results in:

javax.el.ELException: /WEB-INF/fragments/createIr.jsff @2095,244 actionListener="#{pageFlowScope.IrBean.saveAndClosePromoteDemotePopup}": oracle.adfinternal.view.faces.util.ReportableImpl: oracle.jbo.AttrSetValException: JBO-27020: The set method for attribute "RStatusId" in Inspection Record VO cannot be resolved.

at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:111)

at javax.faces.event.MethodExpressionActionListener.processAction(MethodExpressionActionListener.java:147)

at javax.faces.event.ActionEvent.processListener(ActionEvent.java:88)

at org.apache.myfaces.trinidad.component.UIXComponentBase.broadcast(UIXComponentBase.java:1127)

at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:179)

at org.apache.myfaces.trinidad.component.UIXComponent.broadcastInContext(UIXComponent.java:364)

at org.apache.myfaces.trinidad.component.WrapperEvent.broadcastWrappedEvent(WrapperEvent.java:82)

at org.apache.myfaces.trinidad.component.UIXCollection.broadcast(UIXCollection.java:195)

at org.apache.myfaces.trinidad.component.UIXListView.broadcast(UIXListView.java:150)

at org.apache.myfaces.trinidad.component.UIXComponent.broadcastInContext(UIXComponent.java:364)

at org.apache.myfaces.trinidad.component.WrapperEvent.broadcastWrappedEvent(WrapperEvent.java:82)

at org.apache.myfaces.trinidad.component.UIXCollection.broadcast(UIXCollection.java:176)

at org.apache.myfaces.trinidad.component.UIXListView.broadcast(UIXListView.java:150)

at org.apache.myfaces.trinidad.component.UIXComponent.broadcastInContext(UIXComponent.java:364)

at oracle.adf.view.rich.event.ProxyEvent.broadcastWrappedEvent(ProxyEvent.java:72)

at oracle.adf.view.rich.component.fragment.UIXRegion._handleProxyEvent(UIXRegion.java:933)

at oracle.adf.view.rich.component.fragment.UIXRegion.broadcast(UIXRegion.java:117)

at org.apache.myfaces.trinidad.component.UIXComponent.broadcastInContext(UIXComponent.java:364)

at oracle.adf.view.rich.event.ProxyEvent.broadcastWrappedEvent(ProxyEvent.java:72)

at oracle.adf.view.rich.component.fragment.UIXRegion._handleProxyEvent(UIXRegion.java:933)

at oracle.adf.view.rich.component.fragment.UIXRegion.broadcast(UIXRegion.java:117)

at org.apache.myfaces.trinidad.component.UIXComponent.broadcastInContext(UIXComponent.java:364)

at org.apache.myfaces.trinidad.component.WrapperEvent.broadcastWrappedEvent(WrapperEvent.java:82)

at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:168)

at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:510)

at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:171)

at org.apache.myfaces.trinidad.component.UIXComponent.broadcastInContext(UIXComponent.java:364)

at org.apache.myfaces.trinidad.component.WrapperEvent.broadcastWrappedEvent(WrapperEvent.java:82)

at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:111)

at org.apache.myfaces.trinidad.component.UIXComponent.broadcastInContext(UIXComponent.java:364)

at org.apache.myfaces.trinidad.component.WrapperEvent.broadcastWrappedEvent(WrapperEvent.java:82)

at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent$1.run(ContextSwitchingComponent.java:168)

at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent._processPhase(ContextSwitchingComponent.java:510)

at oracle.adf.view.rich.component.fragment.ContextSwitchingComponent.broadcast(ContextSwitchingComponent.java:171)

at oracle.adf.view.rich.component.fragment.UIXInclude.broadcast(UIXInclude.java:115)

at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790)

at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282)

at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:1243)

at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executeInvokeApplication(LifecycleImpl.java:686)

at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:364)

at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:227)

at javax.faces.webapp.FacesServlet.service(FacesServlet.java:650)

at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:286)

at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:260)

at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:137)

at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:350)

at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:25)

at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:78)

at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:207)

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.doFilter(TrinidadFilterImpl.java:529)

at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)

at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:529)

at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:354)

at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:232)

at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)

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$1.run(JpsAbsFilter.java:141)

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:124)

at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:232)

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 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:3683)

at weblogic.servlet.internal.WebAppServletContext$ServletInvocationAction.run(WebAppServletContext.java:3649)

at weblogic.security.acl.internal.AuthenticatedSubject.doAs(AuthenticatedSubject.java:326)

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:2433)

at weblogic.servlet.internal.WebAppServletContext.securedExecute(WebAppServletContext.java:2281)

at weblogic.servlet.internal.WebAppServletContext.execute(WebAppServletContext.java:2259)

at weblogic.servlet.internal.ServletRequestImpl.runInternal(ServletRequestImpl.java:1691)

at weblogic.servlet.internal.ServletRequestImpl.run(ServletRequestImpl.java:1651)

at weblogic.servlet.provider.ContainerSupportProviderImpl$WlsRequestExecutor.run(ContainerSupportProviderImpl.java:270)

at weblogic.invocation.ComponentInvocationContextManager._runAs(ComponentInvocationContextManager.java:348)

at weblogic.invocation.ComponentInvocationContextManager.runAs(ComponentInvocationContextManager.java:333)

at weblogic.work.LivePartitionUtility.doRunWorkUnderContext(LivePartitionUtility.java:54)

at weblogic.work.PartitionUtility.runWorkUnderContext(PartitionUtility.java:41)

at weblogic.work.SelfTuningWorkManagerImpl.runWorkUnderContext(SelfTuningWorkManagerImpl.java:640)

at weblogic.work.ExecuteThread.execute(ExecuteThread.java:406)

at weblogic.work.ExecuteThread.run(ExecuteThread.java:346)

Caused by: oracle.adfinternal.view.faces.util.ReportableImpl: oracle.jbo.AttrSetValException: JBO-27020: The set method for attribute "RStatusId" in Inspection Record VO cannot be resolved.

at oracle.adfinternal.view.faces.model.binding.FacesCtrlAttrsBinding._postSetValue(FacesCtrlAttrsBinding.java:200)

at oracle.adfinternal.view.faces.model.binding.FacesCtrlAttrsBinding.setInputValue(FacesCtrlAttrsBinding.java:162)

at fnd.util.ADFUtils.setBoundAttributeValue(ADFUtils.java:97)

at qars.view.backing.IrBean.updateIRStatus(IrBean.java:5494)

at qars.view.backing.IrBean.validateAndPromoteDemoteDi(IrBean.java:4663)

at qars.view.backing.IrBean.saveAndClosePromoteDemotePopup(IrBean.java:4607)

at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)

at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)

at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)

at java.lang.reflect.Method.invoke(Method.java:498)

at com.sun.el.util.ReflectionUtil.invokeMethod(ReflectionUtil.java:181)

at com.sun.el.parser.AstValue.invoke(AstValue.java:289)

at com.sun.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:304)

at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105)

... 90 more

Caused by: oracle.jbo.AttrSetValException: JBO-29114 ADFContext is not setup to process messages for this exception. Use the exception stack trace and error code to investigate the root cause of this exception. Root cause error code is JBO-27020. Error message parameters are {0=Entity Object, 1=QarsMasterAppModule.QARS_AppModule.InspectionRecordVO, 2=RStatusId, 3=712}

at oracle.jbo.server.EntityImpl.setAttribute(EntityImpl.java:2230)

at oracle.jbo.server.ViewRowStorage.setAttributeValue(ViewRowStorage.java:2554)

at oracle.jbo.server.ViewRowStorage.setAttributeInternal(ViewRowStorage.java:2354)

at oracle.jbo.server.ViewRowImpl.setAttributeInternal(ViewRowImpl.java:1691)

at qars.model.views.InspectionRecordVORowImpl.setRStatusId(InspectionRecordVORowImpl.java:1645)

at qars.model.views.InspectionRecordVORowImpl$AttributesEnum$60.put(InspectionRecordVORowImpl.java:634)

at qars.model.views.InspectionRecordVORowImpl.setAttrInvokeAccessor(InspectionRecordVORowImpl.java:2434)

at oracle.jbo.server.ViewRowImpl.setAttribute(ViewRowImpl.java:1238)

at oracle.adf.model.binding.DCDataControl.setAttributeInRowTransient(DCDataControl.java:2616)

at oracle.adf.model.binding.DCDataControl.setAttributeInRow(DCDataControl.java:2577)

at oracle.adf.model.bc4j.DCJboDataControl.setAttributeInRow(DCJboDataControl.java:2962)

at oracle.jbo.uicli.binding.JUCtrlValueBinding.setAttributeInRow(JUCtrlValueBinding.java:1210)

at oracle.jbo.uicli.binding.JUCtrlValueBinding.setInputValueInRow(JUCtrlValueBinding.java:3085)

at oracle.jbo.uicli.binding.JUCtrlValueBinding.setInputValue(JUCtrlValueBinding.java:3059)

at oracle.jbo.uicli.binding.JUCtrlValueBinding.setInputValue(JUCtrlValueBinding.java:3022)

at oracle.adfinternal.view.faces.model.binding.FacesCtrlAttrsBinding.setInputValue(FacesCtrlAttrsBinding.java:161)

... 102 more

Caused by: java.lang.UnsupportedOperationException: No Data In this Entry

at oracle.binding.DataChangeEntry.getAttributeValue(DataChangeEntry.java:122)

at oracle.binding.DataChangeEntry.getFormattedAttributeValue(DataChangeEntry.java:137)

at oracle.jbo.uicli.binding.JUCtrlValueBinding$BindingDataChangeEvent$BindingDataChangeEntry.getFormattedAttributeValue(JUCtrlValueBinding.java:4557)

at oracle.adfinternal.view.faces.activedata.AttrsActiveDataEntryImpl.getFormattedAttributeValue(AttrsActiveDataEntryImpl.java:83)

at oracle.adf.view.rich.activedata.ActiveComponentContext$AttributeActiveDataEncoder.encode(ActiveComponentContext.java:961)

at oracle.adfinternal.view.faces.activedata.PageDataUpdateManager$EncoderAdapter.accept(PageDataUpdateManager.java:1704)

at oracle.adfinternal.view.faces.activedata.PageDataUpdateManager$ActiveComponentRecord._processActiveDataEvent(PageDataUpdateManager.java:1551)

at oracle.adfinternal.view.faces.activedata.PageDataUpdateManager$ActiveComponentRecord.dataChanged(PageDataUpdateManager.java:1407)

at oracle.adfinternal.view.faces.activedata.AttrsActiveDataModelImpl.dataChanged(AttrsActiveDataModelImpl.java:164)

at oracle.jbo.uicli.binding.JUCtrlValueBinding.createAndNotifyDCE(JUCtrlValueBinding.java:373)

at oracle.jbo.uicli.binding.JUCtrlValueBinding.updateRow(JUCtrlValueBinding.java:426)

at oracle.jbo.uicli.binding.JUIteratorBinding.notifyUpdateEvent(JUIteratorBinding.java:377)

at oracle.adf.model.binding.DCIteratorBinding.rowUpdated(DCIteratorBinding.java:1381)

at oracle.jbo.common.RowSetHelper.fireRowUpdated(RowSetHelper.java:250)

at oracle.jbo.server.ViewRowSetIteratorImpl.fireRowUpdated(ViewRowSetIteratorImpl.java:3892)

at oracle.jbo.server.ViewRowSetIteratorImpl.notifyRowUpdated(ViewRowSetIteratorImpl.java:3499)

at oracle.jbo.server.ViewRowSetImpl.notifyRowUpdated(ViewRowSetImpl.java:2379)

at oracle.jbo.server.ViewObjectImpl.notifyRowUpdated(ViewObjectImpl.java:14036)

at oracle.jbo.server.ViewObjectImpl.notifyRowUpdated(ViewObjectImpl.java:13974)

at oracle.jbo.server.ViewObjectImpl.afterRowUpdate(ViewObjectImpl.java:15847)

at oracle.jbo.server.ViewObjectImpl.sourceChanged(ViewObjectImpl.java:16074)

at oracle.jbo.server.EntityCache.sendEvent(EntityCache.java:1702)

at oracle.jbo.server.EntityCache.deliverEntityEvent(EntityCache.java:1718)

at oracle.jbo.server.EntityCache.notifyColumnAndBlgChange(EntityCache.java:1776)

at oracle.jbo.server.EntityImpl.notifyAttributesChanged(EntityImpl.java:8162)

at oracle.jbo.server.EntityImpl.notifyAttributesChanged(EntityImpl.java:8143)

at oracle.jbo.server.EntityImpl.notifyAttributesAndBlgChanged(EntityImpl.java:8152)

at oracle.jbo.server.EntityImpl.setAttributeValue(EntityImpl.java:4128)

at oracle.jbo.server.AttributeDefImpl.set(AttributeDefImpl.java:3920)

at oracle.jbo.server.EntityImpl.setAttributeInternal(EntityImpl.java:2269)

at qars.model.entities.InspectionRecordEOImpl.setRStatusId(InspectionRecordEOImpl.java:1373)

at qars.model.entities.InspectionRecordEOImpl$AttributesEnum$32.put(InspectionRecordEOImpl.java:494)

at qars.model.entities.InspectionRecordEOImpl.setAttrInvokeAccessor(InspectionRecordEOImpl.java:1420)

at oracle.jbo.server.EntityImpl.setAttribute(EntityImpl.java:2177)

... 117 more

and the other is to set the value by getting a reference to the row, like myrow.setAttribute("ID", someValue), but that results in this upon commit:

<oracle.adf.view> <IrBean> <commit> < Error in commit [oracle.jbo.TxnValException: JBO-27023: Failed to validate all rows in a transaction.]> 

I noticed that I do not get this error if I take the EO reference of the foreign table, that RStatusId is a foreign key on, out of the VO. Can someone please point out what I'm doing wrong? This seems like such a trivial thing.

I'm on JDev 12.2.1.2

Thanks,

Bill

This post has been answered by WP v.2 on Dec 12 2017
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Jan 9 2018
Added on Dec 11 2017
4 comments
1,470 views