Need a way to handle oracle.jbo.RowInconsistentException

This exception throws (as you know :-) when the another user changes data, and after that the first user tries to commit his changes ,by calling "Commit" operation binding from a pageDef, in a usual way :
        BindingContainer bindings = getBindings();
        OperationBinding operationBinding =
            bindings.getOperationBinding("Commit");
        Object result = operationBinding.execute();
        if (!operationBinding.getErrors().isEmpty()) {
             // check to see if is there RowInconsistentException , and if so,
             // the question is, what to do in order to refresh current view row ?
             // NOTE that this code resists in a base class for all backing bean , so how to
            // know which iterator's current row should be refreshed, and centalize this in
           // one place ?
        } So , I would like to refresh the current View row, in order to allow first user to see new data (made by another user), and give chance to override current data posted by another user. But problem is - how to know the ViewObject which should be refreshed
Or is there any other, in practice proven method to handle RowInconsistentException ?
- thanks in advance ,...

Hi,
User want this functionality during the transaction or when updating collection plan results in Quality result?
Ashish

Similar Messages

  • Oracle.jbo.RowInconsistentException:JBO-25014:Another user has changed the

    Hi Experts,
    I am working jdev 11.1.1.3.0
    I am trying to update selected rows on the table, for this i lam getting selected data from the table and updating one flag on the row.
    when i executing save/commit i am getting below error.
    oracle.jbo.RowInconsistentException: JBO-25014: Another user has changed the row with primary key oracle.jbo.Key[653974305 ].
         at oracle.jbo.server.OracleSQLBuilderImpl.doEntitySelectForAltKey(OracleSQLBuilderImpl.java:1064)
         at oracle.jbo.server.BaseSQLBuilderImpl.doEntitySelect(BaseSQLBuilderImpl.java:548)
         at oracle.jbo.server.EntityImpl.doSelect(EntityImpl.java:7843)
         at oracle.jbo.server.EntityImpl.populate(EntityImpl.java:6563)
         at oracle.jbo.server.EntityImpl.merge(EntityImpl.java:6900)
         at oracle.jbo.server.EntityCache.addForAltKey(EntityCache.java:918)
         at oracle.jbo.server.EntityCache.add(EntityCache.java:485)
         at oracle.jbo.server.ViewRowStorage.entityCacheAdd(ViewRowStorage.java:2921)
         at oracle.jbo.server.ViewRowImpl.entityCacheAdd(ViewRowImpl.java:3550)
         at oracle.jbo.server.ViewObjectImpl.createInstanceFromResultSet(ViewObjectImpl.java:5182)
         at oracle.jbo.server.QueryCollection.populateRow(QueryCollection.java:3304)
         at oracle.jbo.server.QueryCollection.fetch(QueryCollection.java:3164)
         at oracle.jbo.server.QueryCollection.get(QueryCollection.java:2154)
         at oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:4853)
         at oracle.jbo.server.ViewRowSetIteratorImpl.doFetch(ViewRowSetIteratorImpl.java:2914)
         at oracle.jbo.server.ViewRowSetIteratorImpl.ensureRefreshed(ViewRowSetIteratorImpl.java:2770)
         at oracle.jbo.server.ViewRowSetIteratorImpl.refresh(ViewRowSetIteratorImpl.java:3011)
         at oracle.jbo.server.ViewRowSetImpl.notifyRefresh(ViewRowSetImpl.java:2677)
         at oracle.jbo.server.ViewRowSetImpl.execute(ViewRowSetImpl.java:1221)
         at oracle.jbo.server.ViewRowSetImpl.activateRowSetState(ViewRowSetImpl.java:6920)
         at oracle.jbo.server.ViewRowSetIteratorImpl.activateIteratorState(ViewRowSetIteratorImpl.java:3908)
         at oracle.jbo.server.ViewRowSetImpl.activateIteratorState(ViewRowSetImpl.java:6971)
         at oracle.jbo.server.ViewObjectImpl.activateIteratorState(ViewObjectImpl.java:17791)
         at oracle.jbo.server.ApplicationModuleImpl.activateVOs(ApplicationModuleImpl.java:7893)
         at oracle.jbo.server.ApplicationModuleImpl.doActivateState(ApplicationModuleImpl.java:7639)
         at oracle.jbo.server.ApplicationModuleImpl.doActivateAMState(ApplicationModuleImpl.java:7606)
         at oracle.jbo.server.Serializer.activate(Serializer.java:291)
         at oracle.jbo.server.ByteSerializer.activateRootAMFromBytes(ByteSerializer.java:93)
         at oracle.jbo.server.ApplicationModuleImpl.activateFromStack(ApplicationModuleImpl.java:6255)
         at oracle.jbo.server.ApplicationModuleImpl.activateState(ApplicationModuleImpl.java:6070)
         at oracle.jbo.server.ApplicationModuleImpl.activateStateForUndo(ApplicationModuleImpl.java:8582)
         at oracle.jbo.server.DBTransactionImpl.restoreTmpPostState(DBTransactionImpl.java:1843)
         at oracle.jbo.server.DBTransactionImpl.postChanges(DBTransactionImpl.java:2999)
         at oracle.jbo.server.DBTransactionImpl.commitInternal(DBTransactionImpl.java:2018)
         at oracle.jbo.server.DBTransactionImpl.commit(DBTransactionImpl.java:2277)
         at oracle.adf.model.bc4j.DCJboDataControl.commitTransaction(DCJboDataControl.java:1577)
         at oracle.adf.model.binding.DCDataControl.callCommitTransaction(DCDataControl.java:1404)
         at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1427)
         at oracle.adf.model.binding.DCDataControl.invokeOperation(DCDataControl.java:2141)
         at oracle.jbo.uicli.binding.JUCtrlActionBinding.invoke(JUCtrlActionBinding.java:730)
         at oracle.jbo.uicli.jui.JUActionBinding.actionPerformed(JUActionBinding.java:193)
         at oracle.jbo.uicli.controls.JUNavigationBar.doAction(JUNavigationBar.java:411)
         at oracle.jbo.jbotester.NavigationBar.doAction(NavigationBar.java:111)
         at oracle.jbo.uicli.controls.JUNavigationBar$NavButton.actionPerformed(JUNavigationBar.java:117)
         at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1995)
         at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2318)
         at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:387)
         at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:242)
         at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:236)
         at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:272)
         at java.awt.Component.processMouseEvent(Component.java:6263)
         at javax.swing.JComponent.processMouseEvent(JComponent.java:3267)
         at java.awt.Component.processEvent(Component.java:6028)
         at java.awt.Container.processEvent(Container.java:2041)
         at java.awt.Component.dispatchEventImpl(Component.java:4630)
         at java.awt.Container.dispatchEventImpl(Container.java:2099)
         at java.awt.Component.dispatchEvent(Component.java:4460)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4574)
         at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4238)
         at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4168)
         at java.awt.Container.dispatchEventImpl(Container.java:2085)
         at java.awt.Window.dispatchEventImpl(Window.java:2478)
         at java.awt.Component.dispatchEvent(Component.java:4460)
         at java.awt.EventQueue.dispatchEvent(EventQueue.java:599)
         at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:269)
         at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:184)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:174)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:169)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:161)
         at java.awt.EventDispatchThread.run(EventDispatchThread.java:122)
    i search in forums and tried all the options like
    1. jbo.locking.mode to Pessimistic no use -- i am not getting the error but at the same time row is not updating.
    2. set the refresh after update/insert no use
    EVEN THE SAME PROBLEM WHEN I RUN AM ASWELL.
    Any inputs could be highly appreciate.
    Edited by: user642703 on Feb 21, 2012 8:58 PM

    Hi,
    See
    JBO-25014: Another user has changed .. call StoredProc after commit .helpp
    Another user has changed the row with primary key oracle.jbo.Key[1447 EN ]
    http://radio-weblogs.com/0118231/stories/2004/03/24/whyDoIGetOraclejborowinconsistentexception.html

  • Oracle.jbo.RowInconsistentException

    JDeveloper Studio 11.1.2.3.0
    I have an employee table with employee pic and i change the pic at runtime by using a method and it works well
    I have another button on the page that calls a database procedure that updates the employee pic to a default pic (it reads it from another table)
    the problem is that whenever i try to upload another pic after pressing the reset buttom i get this error oracle.jbo.RowInconsistentException
    Note: the AM locking mode is Optimistic and there is a commit in the stored procedure. i tried to make the employeePic attribute refresh after update and insert but i get the same the error
    i also tried to override the lock method on the employee entity but it does not work as well
    What shall i do to solve the problem ...

    Hi There,
    Here are some resources where you can check how to work with images on the database. http://www.connotea.org/user/jdeveloper/tag/blob.
    Hope that helps, if you still run into issues, please provide more information on the type of implementation you are doing.
    Juan Camilo

  • Oracle.jbo.RowInconsistentException: JBO-25014

    Hi community of jdeveloper
    i have a table i can create and edit but when i try to delete the same row i just create and edit appears this error
    can anyone helpme?
    my jdev is 11.1.2.4.0

    this is a example
    <af:panelCollection id="pc1" inlineStyle="width:auto; background-color:InactiveCaption;"
            partialTriggers="popupEditOrInsert dialogEditOrInsert popupDelete">
            <f:facet name="menus"/>
            <f:facet name="toolbar">
              <af:toolbar id="t2"
                    rendered="#{sessionScope.mapAccessOptSession['administracion-centro de salud-create'] == '1' or
                                sessionScope.mapAccessOptSession['administracion-centro de salud-update'] == '1' or
                                sessionScope.mapAccessOptSession['administracion-centro de salud-delete'] == '1' ? true : true}">
                <af:commandToolbarButton text="Crear" id="cbInsert"
                    rendered="#{sessionScope.mapAccessOptSession['administracion-centro de salud-create'] == '1' ? true : true}">
                    <af:showPopupBehavior popupId="popupEditOrInsert" triggerType="action"/>
                </af:commandToolbarButton>
                <af:commandToolbarButton text="Editar" disabled="#{!bindings.Delete.enabled}" id="cbEdit"
                    rendered="#{sessionScope.mapAccessOptSession['administracion-centro de salud-update'] == '1' ? true : true}">
                    <af:showPopupBehavior popupId="popupEditOrInsert" triggerType="action"/>
                </af:commandToolbarButton>
                <af:commandToolbarButton text="Eliminar" disabled="#{!bindings.Delete.enabled}" id="cbDelete"
                    rendered="#{sessionScope.mapAccessOptSession['administracion-centro de salud-delete'] == '1' ? true : true}">
                    <af:showPopupBehavior popupId="popupDelete" triggerType="action"/>
                </af:commandToolbarButton>
              </af:toolbar>
            </f:facet>
            <f:facet name="statusbar"/>
            <af:popup childCreation="deferred" autoCancel="disabled" id="popupDelete">
                <af:dialog id="dialog-AdmCentrosSaludMae-CodCentroSalud" title="Confirmación" dialogListener="#{MainControllerBean.deleteDialogListener}">
                    <af:outputText value="¿Está seguro que desea eliminar el registro?" id="ot50"/>
                </af:dialog>
            </af:popup>
            <af:popup id="popupEditOrInsert" contentDelivery="lazyUncached" childCreation="deferred" autoCancel="disabled"
                          popupFetchListener="#{MainControllerBean.editOrInsertPopupFetchListener}"
                          popupCanceledListener="#{MainControllerBean.editOrInsertPopupCancelListener}">
              <af:dialog id="dialogEditOrInsert" title="Formulario de Centros de Salud" type="okCancel"
                          dialogListener="#{MainControllerBean.editOrInsertDialogListener}">
              <af:panelFormLayout id="pfl1">
                <af:inputComboboxListOfValues id="desSecTipoCentroId"
                                              popupTitle="Search and Select: #{bindings.DesSecTipoCentro.hints.label}"
                                              value="#{bindings.DesSecTipoCentro.inputValue}"
                                              label="#{bindings.DesSecTipoCentro.hints.label}"
                                              model="#{bindings.DesSecTipoCentro.listOfValuesModel}"
                                              required="#{bindings.DesSecTipoCentro.hints.mandatory}"
                                              columns="#{bindings.DesSecTipoCentro.hints.displayWidth}"
                                              shortDesc="#{bindings.DesSecTipoCentro.hints.tooltip}">
                  <f:validator binding="#{bindings.DesSecTipoCentro.validator}"/>
                </af:inputComboboxListOfValues>
                <af:inputComboboxListOfValues id="codVisitadorId"
                                              popupTitle="Search and Select: #{bindings.CodVisitador.hints.label}"
                                              value="#{bindings.CodVisitador.inputValue}"
                                              label="#{bindings.CodVisitador.hints.label}"
                                              model="#{bindings.CodVisitador.listOfValuesModel}"
                                              required="#{bindings.CodVisitador.hints.mandatory}"
                                              columns="#{bindings.CodVisitador.hints.displayWidth}"
                                              shortDesc="#{bindings.CodVisitador.hints.tooltip}">
                  <f:validator binding="#{bindings.CodVisitador.validator}"/>
                  <af:convertNumber groupingUsed="false"
                                    pattern="#{bindings.CodVisitador.format}"/>
                </af:inputComboboxListOfValues>
                <af:inputText value="#{bindings.DesNomAbrev.inputValue}"
                              label="#{bindings.DesNomAbrev.hints.label}"
                              required="#{bindings.DesNomAbrev.hints.mandatory}"
                              columns="#{bindings.DesNomAbrev.hints.displayWidth}"
                              maximumLength="#{bindings.DesNomAbrev.hints.precision}"
                              shortDesc="#{bindings.DesNomAbrev.hints.tooltip}"
                              id="it2">
                  <f:validator binding="#{bindings.DesNomAbrev.validator}"/>
                </af:inputText>
                <af:inputText value="#{bindings.DesNomCorto.inputValue}"
                              label="#{bindings.DesNomCorto.hints.label}"
                              required="#{bindings.DesNomCorto.hints.mandatory}"
                              columns="#{bindings.DesNomCorto.hints.displayWidth}"
                              maximumLength="#{bindings.DesNomCorto.hints.precision}"
                              shortDesc="#{bindings.DesNomCorto.hints.tooltip}"
                              id="it12">
                  <f:validator binding="#{bindings.DesNomCorto.validator}"/>
                </af:inputText>
                <af:inputText value="#{bindings.DesNomLargo.inputValue}"
                              label="#{bindings.DesNomLargo.hints.label}"
                              required="#{bindings.DesNomLargo.hints.mandatory}"
                              columns="#{bindings.DesNomLargo.hints.displayWidth}"
                              maximumLength="#{bindings.DesNomLargo.hints.precision}"
                              shortDesc="#{bindings.DesNomLargo.hints.tooltip}"
                              id="it8">
                  <f:validator binding="#{bindings.DesNomLargo.validator}"/>
                </af:inputText>
                <af:inputText value="#{bindings.DesNomVia.inputValue}"
                              label="#{bindings.DesNomVia.hints.label}"
                              required="#{bindings.DesNomVia.hints.mandatory}"
                              columns="#{bindings.DesNomVia.hints.displayWidth}"
                              maximumLength="#{bindings.DesNomVia.hints.precision}"
                              shortDesc="#{bindings.DesNomVia.hints.tooltip}"
                              id="it13">
                  <f:validator binding="#{bindings.DesNomVia.validator}"/>
                </af:inputText>
                <af:inputComboboxListOfValues id="desSecTipoViaId"
                                              popupTitle="Search and Select: #{bindings.DesSecTipoVia.hints.label}"
                                              value="#{bindings.DesSecTipoVia.inputValue}"
                                              label="#{bindings.DesSecTipoVia.hints.label}"
                                              model="#{bindings.DesSecTipoVia.listOfValuesModel}"
                                              required="#{bindings.DesSecTipoVia.hints.mandatory}"
                                              columns="#{bindings.DesSecTipoVia.hints.displayWidth}"
                                              shortDesc="#{bindings.DesSecTipoVia.hints.tooltip}">
                  <f:validator binding="#{bindings.DesSecTipoVia.validator}"/>
                </af:inputComboboxListOfValues>
                <af:inputText value="#{bindings.DesNumVia.inputValue}"
                              label="#{bindings.DesNumVia.hints.label}"
                              required="#{bindings.DesNumVia.hints.mandatory}"
                              columns="#{bindings.DesNumVia.hints.displayWidth}"
                              maximumLength="#{bindings.DesNumVia.hints.precision}"
                              shortDesc="#{bindings.DesNumVia.hints.tooltip}"
                              id="it11">
                  <f:validator binding="#{bindings.DesNumVia.validator}"/>
                </af:inputText>
                <af:inputText value="#{bindings.DesNumMzna.inputValue}"
                              label="#{bindings.DesNumMzna.hints.label}"
                              required="#{bindings.DesNumMzna.hints.mandatory}"
                              columns="#{bindings.DesNumMzna.hints.displayWidth}"
                              maximumLength="#{bindings.DesNumMzna.hints.precision}"
                              shortDesc="#{bindings.DesNumMzna.hints.tooltip}"
                              id="it15">
                  <f:validator binding="#{bindings.DesNumMzna.validator}"/>
                </af:inputText>
                <af:inputText value="#{bindings.DesNumLote.inputValue}"
                              label="#{bindings.DesNumLote.hints.label}"
                              required="#{bindings.DesNumLote.hints.mandatory}"
                              columns="#{bindings.DesNumLote.hints.displayWidth}"
                              maximumLength="#{bindings.DesNumLote.hints.precision}"
                              shortDesc="#{bindings.DesNumLote.hints.tooltip}"
                              id="it1">
                  <f:validator binding="#{bindings.DesNumLote.validator}"/>
                </af:inputText>
                <af:inputText value="#{bindings.DesNumInt.inputValue}"
                              label="#{bindings.DesNumInt.hints.label}"
                              required="#{bindings.DesNumInt.hints.mandatory}"
                              columns="#{bindings.DesNumInt.hints.displayWidth}"
                              maximumLength="#{bindings.DesNumInt.hints.precision}"
                              shortDesc="#{bindings.DesNumInt.hints.tooltip}"
                              id="it4">
                  <f:validator binding="#{bindings.DesNumInt.validator}"/>
                </af:inputText>
                <af:inputText value="#{bindings.DesNumDpto.inputValue}"
                              label="#{bindings.DesNumDpto.hints.label}"
                              required="#{bindings.DesNumDpto.hints.mandatory}"
                              columns="#{bindings.DesNumDpto.hints.displayWidth}"
                              maximumLength="#{bindings.DesNumDpto.hints.precision}"
                              shortDesc="#{bindings.DesNumDpto.hints.tooltip}"
                              id="it7">
                  <f:validator binding="#{bindings.DesNumDpto.validator}"/>
                </af:inputText>
                <af:inputText value="#{bindings.DesNomUrb.inputValue}"
                              label="#{bindings.DesNomUrb.hints.label}"
                              required="#{bindings.DesNomUrb.hints.mandatory}"
                              columns="#{bindings.DesNomUrb.hints.displayWidth}"
                              maximumLength="#{bindings.DesNomUrb.hints.precision}"
                              shortDesc="#{bindings.DesNomUrb.hints.tooltip}"
                              id="it14">
                  <f:validator binding="#{bindings.DesNomUrb.validator}"/>
                </af:inputText>
                <af:inputText value="#{bindings.DesNumFijo1.inputValue}"
                              label="#{bindings.DesNumFijo1.hints.label}"
                              required="#{bindings.DesNumFijo1.hints.mandatory}"
                              columns="#{bindings.DesNumFijo1.hints.displayWidth}"
                              maximumLength="#{bindings.DesNumFijo1.hints.precision}"
                              shortDesc="#{bindings.DesNumFijo1.hints.tooltip}"
                              id="it6">
                  <f:validator binding="#{bindings.DesNumFijo1.validator}"/>
                </af:inputText>
                <af:inputText value="#{bindings.DesNumFijo2.inputValue}"
                              label="#{bindings.DesNumFijo2.hints.label}"
                              required="#{bindings.DesNumFijo2.hints.mandatory}"
                              columns="#{bindings.DesNumFijo2.hints.displayWidth}"
                              maximumLength="#{bindings.DesNumFijo2.hints.precision}"
                              shortDesc="#{bindings.DesNumFijo2.hints.tooltip}"
                              id="it3">
                  <f:validator binding="#{bindings.DesNumFijo2.validator}"/>
                </af:inputText>
                <af:inputText value="#{bindings.DesWeb.inputValue}"
                              label="#{bindings.DesWeb.hints.label}"
                              required="#{bindings.DesWeb.hints.mandatory}"
                              columns="#{bindings.DesWeb.hints.displayWidth}"
                              maximumLength="#{bindings.DesWeb.hints.precision}"
                              shortDesc="#{bindings.DesWeb.hints.tooltip}" id="it5">
                  <f:validator binding="#{bindings.DesWeb.validator}"/>
                </af:inputText>
                <af:inputText value="#{bindings.DesLatitud.inputValue}"
                              label="#{bindings.DesLatitud.hints.label}"
                              required="#{bindings.DesLatitud.hints.mandatory}"
                              columns="#{bindings.DesLatitud.hints.displayWidth}"
                              maximumLength="#{bindings.DesLatitud.hints.precision}"
                              shortDesc="#{bindings.DesLatitud.hints.tooltip}"
                              id="it10">
                  <f:validator binding="#{bindings.DesLatitud.validator}"/>
                </af:inputText>
                <af:inputText value="#{bindings.DesLongitud.inputValue}"
                              label="#{bindings.DesLongitud.hints.label}"
                              required="#{bindings.DesLongitud.hints.mandatory}"
                              columns="#{bindings.DesLongitud.hints.displayWidth}"
                              maximumLength="#{bindings.DesLongitud.hints.precision}"
                              shortDesc="#{bindings.DesLongitud.hints.tooltip}"
                              id="it9">
                  <f:validator binding="#{bindings.DesLongitud.validator}"/>
                </af:inputText>
                <af:inputComboboxListOfValues id="codDistId"
                                              popupTitle="Search and Select: #{bindings.CodDist.hints.label}"
                                              value="#{bindings.CodDist.inputValue}"
                                              label="#{bindings.CodDist.hints.label}"
                                              model="#{bindings.CodDist.listOfValuesModel}"
                                              required="#{bindings.CodDist.hints.mandatory}"
                                              columns="#{bindings.CodDist.hints.displayWidth}"
                                              shortDesc="#{bindings.CodDist.hints.tooltip}">
                  <f:validator binding="#{bindings.CodDist.validator}"/>
                </af:inputComboboxListOfValues>
                <af:inputComboboxListOfValues id="codZonaId"
                                              popupTitle="Search and Select: #{bindings.CodZona.hints.label}"
                                              value="#{bindings.CodZona.inputValue}"
                                              label="#{bindings.CodZona.hints.label}"
                                              model="#{bindings.CodZona.listOfValuesModel}"
                                              required="#{bindings.CodZona.hints.mandatory}"
                                              columns="#{bindings.CodZona.hints.displayWidth}"
                                              shortDesc="#{bindings.CodZona.hints.tooltip}">
                  <f:validator binding="#{bindings.CodZona.validator}"/>
                </af:inputComboboxListOfValues>
              </af:panelFormLayout>
            </af:dialog>
            </af:popup>
           <af:table value="#{bindings.AdmCentrosSaludMaeView1.collectionModel}"
                      var="row" rows="#{bindings.AdmCentrosSaludMaeView1.rangeSize}"
                      emptyText="#{bindings.AdmCentrosSaludMaeView1.viewable ? 'No hay datos para mostrar.' : 'Acceso Denegado.'}"
                      fetchSize="#{bindings.AdmCentrosSaludMaeView1.rangeSize}"
                      rowBandingInterval="0"
                      filterModel="#{bindings.AdmCentrosSaludMaeView1.queryDescriptor}"
                      queryListener="#{bindings.AdmCentrosSaludMaeView1.processQuery}"
                      filterVisible="true" varStatus="vs"
                      selectedRowKeys="#{bindings.AdmCentrosSaludMaeView1.collectionModel.selectedRow}"
                      selectionListener="#{bindings.AdmCentrosSaludMaeView1.collectionModel.makeCurrent}"
                      rowSelection="single" id="t1" partialTriggers="::cbInsert ::cbDelete">
            <af:column sortProperty="CodCentroSalud" sortable="false"
                       headerText="#{bindings.AdmCentrosSaludMaeView1.hints.CodCentroSalud.label}"
                       id="c18">
              <af:outputText value="#{row.CodCentroSalud}" id="ot3">
                <af:convertNumber groupingUsed="false"
                                  pattern="#{bindings.AdmCentrosSaludMaeView1.hints.CodCentroSalud.format}"/>
              </af:outputText>
            </af:column>
            <af:column sortProperty="DesSecTipoCentro" sortable="false"
                       headerText="#{bindings.AdmCentrosSaludMaeView1.hints.DesSecTipoCentro.label}"
                       id="c14">
              <af:outputText value="#{row.DesSecTipoCentro}" id="ot7"/>
            </af:column>
            <af:column sortProperty="CodVisitador" sortable="false"
                       headerText="#{bindings.AdmCentrosSaludMaeView1.hints.CodVisitador.label}"
                       id="c12">
              <af:outputText value="#{row.CodVisitador}" id="ot15">
                <af:convertNumber groupingUsed="false"
                                  pattern="#{bindings.AdmCentrosSaludMaeView1.hints.CodVisitador.format}"/>
              </af:outputText>
            </af:column>
            <af:column sortProperty="DesNomAbrev" sortable="false"
                       headerText="#{bindings.AdmCentrosSaludMaeView1.hints.DesNomAbrev.label}"
                       id="c5">
              <af:outputText value="#{row.DesNomAbrev}" id="ot19"/>
            </af:column>
            <af:column sortProperty="DesNomCorto" sortable="false"
                       headerText="#{bindings.AdmCentrosSaludMaeView1.hints.DesNomCorto.label}"
                       id="c10">
              <af:outputText value="#{row.DesNomCorto}" id="ot8"/>
            </af:column>
            <af:column sortProperty="DesNomLargo" sortable="false"
                       headerText="#{bindings.AdmCentrosSaludMaeView1.hints.DesNomLargo.label}"
                       id="c7">
              <af:outputText value="#{row.DesNomLargo}" id="ot2"/>
            </af:column>
            <af:column sortProperty="DesNomVia" sortable="false"
                       headerText="#{bindings.AdmCentrosSaludMaeView1.hints.DesNomVia.label}"
                       id="c2">
              <af:outputText value="#{row.DesNomVia}" id="ot18"/>
            </af:column>
            <af:column sortProperty="DesSecTipoVia" sortable="false"
                       headerText="#{bindings.AdmCentrosSaludMaeView1.hints.DesSecTipoVia.label}"
                       id="c3">
              <af:outputText value="#{row.DesSecTipoVia}" id="ot11"/>
            </af:column>
            <af:column sortProperty="DesNumVia" sortable="false"
                       headerText="#{bindings.AdmCentrosSaludMaeView1.hints.DesNumVia.label}"
                       id="c15">
              <af:outputText value="#{row.DesNumVia}" id="ot12"/>
            </af:column>
            <af:column sortProperty="DesNumMzna" sortable="false"
                       headerText="#{bindings.AdmCentrosSaludMaeView1.hints.DesNumMzna.label}"
                       id="c9">
              <af:outputText value="#{row.DesNumMzna}" id="ot17"/>
            </af:column>
            <af:column sortProperty="DesNumLote" sortable="false"
                       headerText="#{bindings.AdmCentrosSaludMaeView1.hints.DesNumLote.label}"
                       id="c17">
              <af:outputText value="#{row.DesNumLote}" id="ot6"/>
            </af:column>
            <af:column sortProperty="DesNumInt" sortable="false"
                       headerText="#{bindings.AdmCentrosSaludMaeView1.hints.DesNumInt.label}"
                       id="c11">
              <af:outputText value="#{row.DesNumInt}" id="ot13"/>
            </af:column>
            <af:column sortProperty="DesNumDpto" sortable="false"
                       headerText="#{bindings.AdmCentrosSaludMaeView1.hints.DesNumDpto.label}"
                       id="c19">
              <af:outputText value="#{row.DesNumDpto}" id="ot5"/>
            </af:column>
            <af:column sortProperty="DesNomUrb" sortable="false"
                       headerText="#{bindings.AdmCentrosSaludMaeView1.hints.DesNomUrb.label}"
                       id="c6">
              <af:outputText value="#{row.DesNomUrb}" id="ot14"/>
            </af:column>
            <af:column sortProperty="DesNumFijo1" sortable="false"
                       headerText="#{bindings.AdmCentrosSaludMaeView1.hints.DesNumFijo1.label}"
                       id="c1">
              <af:outputText value="#{row.DesNumFijo1}" id="ot16"/>
            </af:column>
            <af:column sortProperty="DesNumFijo2" sortable="false"
                       headerText="#{bindings.AdmCentrosSaludMaeView1.hints.DesNumFijo2.label}"
                       id="c13">
              <af:outputText value="#{row.DesNumFijo2}" id="ot10"/>
            </af:column>
            <af:column sortProperty="DesWeb" sortable="false"
                       headerText="#{bindings.AdmCentrosSaludMaeView1.hints.DesWeb.label}"
                       id="c4">
              <af:outputText value="#{row.DesWeb}" id="ot9"/>
            </af:column>
            <af:column sortProperty="DesLatitud" sortable="false"
                       headerText="#{bindings.AdmCentrosSaludMaeView1.hints.DesLatitud.label}"
                       id="c16">
              <af:outputText value="#{row.DesLatitud}" id="ot4"/>
            </af:column>
            <af:column sortProperty="DesLongitud" sortable="false"
                       headerText="#{bindings.AdmCentrosSaludMaeView1.hints.DesLongitud.label}"
                       id="c8">
              <af:outputText value="#{row.DesLongitud}" id="ot1"/>
            </af:column>
          </af:table>
        </af:panelCollection>
    and this is a main controller for insert, update and delete
    public class MainController {
        private Pattern pattern;
        private Matcher matcher;
        private static final String PASSWORD_PATTERN = "^[A-Za-z0-9*]+$";
        public MainController() {
            super();
            pattern = Pattern.compile(PASSWORD_PATTERN);
        public boolean validatePassword(String password) {
            matcher = pattern.matcher(password);
            return matcher.matches();
        public void callGlobalCommit(DialogEvent dialogEvent, String message, String idDialog) {
            BindingContext bc = BindingContext.getCurrent();
            DataControlFrame dcf = bc.findDataControlFrame(bc.getCurrentDataControlFrame());
            Collection<DCDataControl> dcCol = dcf.datacontrols();
            try {
                for (DCDataControl dCDataControl : dcCol) {
                    if(dCDataControl.isTransactionDirty()) {
                        dCDataControl.commitTransaction();                   
                //cuando se cree un nuevo usuario se enviara la
                //contraseña generada a su correo correspondiente
                sendMailByUserCreate(idDialog);
                if(message != null){
                    JSFUtils.addFacesInformationMessage(message);
                if(idDialog != null && idDialog.startsWith("dialogOrder")){
                    callRefreshIterator(idDialog);    
            } catch (Exception e) {
                callGlobalRollback(dialogEvent);
                if(e.getCause() != null && e.getCause().getMessage().contains("ORA-00001")){
                    JSFUtils.addFacesErrorMessage("El código principal se encuentra relacionado a un registro deshabilitado.");
                }else{
                    JSFUtils.addFacesErrorMessage(e.getMessage());
                e.printStackTrace();
        public void callGlobalRollback(DialogEvent dialogEvent) {
            BindingContext bc = BindingContext.getCurrent();
            DataControlFrame dcf = bc.findDataControlFrame(bc.getCurrentDataControlFrame());
            Collection<DCDataControl> dcCol = dcf.datacontrols();
            for (DCDataControl dCDataControl : dcCol) {
                if(dCDataControl.isTransactionDirty()) {
                    try {
                        dCDataControl.rollbackTransaction();
                    } catch (Exception e) {
                        JSFUtils.addFacesErrorMessage(e.getMessage());
                        e.printStackTrace();
        public void deleteDialogListener(DialogEvent dialogEvent) {
            if (dialogEvent.getOutcome().equals(DialogEvent.Outcome.ok)) {
                try{
                    OperationBinding operb = ADFUtils.findOperation("Delete");
                    operb.execute();
                    if (operb.getErrors().isEmpty()) {
                        String message = "El registro se eliminó de manera satisfactoria.";
                        callGlobalCommit(dialogEvent, message, null);
                    }else{
                        callGlobalRollback(dialogEvent);
                }catch (Exception e) {
                    JSFUtils.addFacesErrorMessage("Ocurrió un problema en la verificación de las dependencias.");
                    e.printStackTrace();
        public void editOrInsertDialogListener(DialogEvent dialogEvent) {
            String idDialog = dialogEvent.getComponent().getId();
            if (dialogEvent.getOutcome().equals(DialogEvent.Outcome.ok)) {           
                String message = "El registro se grabó de manera satisfactoria.";           
                callGlobalCommit(dialogEvent, message, idDialog);
            } else {
                callGlobalRollback(dialogEvent);
        public void editOrInsertPopupFetchListener(PopupFetchEvent popupFetchEvent) {
            if (popupFetchEvent.getLaunchSourceClientId() != null) {           
                FacesContext fctx = FacesContext.getCurrentInstance();
                ExternalContext ectx = fctx.getExternalContext();
                HttpSession userSession = (HttpSession)ectx.getSession(false);           
                if(popupFetchEvent.getLaunchSourceClientId().contains("cbInsert")) {
                    userSession.setAttribute("indFormEditable", true);
                    OperationBinding operb = ADFUtils.findOperation("CreateInsert");
                    operb.execute();
                }else if(popupFetchEvent.getLaunchSourceClientId().contains("cbEdit")) {
                    userSession.setAttribute("indFormEditable", false);
        public void editOrInsertPopupCancelListener(PopupCanceledEvent popupCanceledEvent) {
            callGlobalRollback(null);
        //frankayala: método para encontrar la llave primaria
        private String findCodeByIndicator(String idDialog) {       
            String[] arrayDialog = idDialog.split("[-]");
            if(arrayDialog.length >= 3){
                DCBindingContainer dcb = (DCBindingContainer) JSFUtils.getManagedBeanValue("bindings");
                DCIteratorBinding dciter = dcb.findIteratorBinding(arrayDialog[1]+"View1Iterator");
                return String.valueOf(dciter.getCurrentRow().getAttribute(arrayDialog[2]));
            return "-1";
        //frankayala: método para refrescar el listado de la grilla
        private void callRefreshIterator(String idDialog) {
            String[] arrayDialog = idDialog.split("[-]");
            if(arrayDialog.length >= 2){
                DCBindingContainer dcb = (DCBindingContainer) JSFUtils.getManagedBeanValue("bindings");
                DCIteratorBinding dciter = dcb.findIteratorBinding(arrayDialog[1]+"View1Iterator");
                dciter.executeQuery();
        public void callChangePasswordAE(ActionEvent actionEvent) {
            try {
                int res = 0;
                ResultBean result = new ResultBean();           
                String userName = ADFContext.getCurrent().getSecurityContext().getUserPrincipal().getName();
                DCBindingContainer dcb = (DCBindingContainer) JSFUtils.getManagedBeanValue("bindings");
                AttributeBinding attrCurrent = (AttributeBinding)dcb.getControlBinding("v_currentPasswd1");
                AttributeBinding attrConfirm = (AttributeBinding)dcb.getControlBinding("v_confirmPasswd1");
                AttributeBinding attrNew = (AttributeBinding)dcb.getControlBinding("v_newPasswd1");           
                String currentPasswd = (String)attrCurrent.getInputValue();
                String confirmPasswd = (String)attrConfirm.getInputValue();
                String newPasswd  = (String)attrNew.getInputValue();           
                String encryptCurrent = "", encryptNew = "";
                ResultBean userResult = new ResultBean();
                int minLength = 8;
                if(currentPasswd == null){
                    JSFUtils.addFacesErrorMessage("Usted debe ingresar la contraseña actual.");
                }else if(newPasswd == null){
                    JSFUtils.addFacesErrorMessage("Usted debe ingresar la nueva contraseña.");
                }else if(confirmPasswd == null){
                    JSFUtils.addFacesErrorMessage("Usted debe ingresar la confirmación de la nueva contraseña.");
                }else if(currentPasswd.trim().length() < minLength){
                    JSFUtils.addFacesErrorMessage("La contraseña actual debe contener ocho caracteres como mínimo.");
                }else if(newPasswd.trim().length() < minLength){
                    JSFUtils.addFacesErrorMessage("La nueva contraseña debe contener ocho caracteres como mínimo.");
                }else if(!validatePassword(currentPasswd.trim())){
                    JSFUtils.addFacesErrorMessage("El valor de contraseña actual '"+currentPasswd.trim()+"' no es válido, el formato debe ser alfanumérico.");
                }else if(!validatePassword(newPasswd.trim())){
                    JSFUtils.addFacesErrorMessage("El valor de contraseña nueva '"+newPasswd.trim()+"' no es válido, el formato debe ser alfanumérico.");
                }else if(!newPasswd.equals(confirmPasswd)){
                    JSFUtils.addFacesErrorMessage("Las contraseñas escritas no coinciden, vuelva a escribir la nueva contraseña.");
                }else{
                    OperationBinding operbSPUser = ADFUtils.findOperation("executeOperationUserByCode");           
                    operbSPUser.getParamsMap().put("operation", "getDataUsuarioByCode");
                    operbSPUser.getParamsMap().put("username", userName);           
                    userResult = (ResultBean)operbSPUser.execute();
                    encryptNew = EncryptUtility.getMD5(newPasswd);
                    encryptCurrent = EncryptUtility.getMD5(currentPasswd);             
                    if(!userResult.getStringVal().equals(encryptCurrent)){
                        JSFUtils.addFacesErrorMessage("La contraseña escrita no es correcta, vuelva a escribir la contraseña actual.");
                    }else{
                        OperationBinding operbSP = ADFUtils.findOperation("saveChangePassword");
                        operbSP.getParamsMap().put("newPasswd", encryptNew);
                        operbSP.getParamsMap().put("userName", userName);
                        result = (ResultBean)operbSP.execute();
                        res = result.getNumVal().intValue();
                        if(res == 0){
                            JSFUtils.addFacesErrorMessage(result.getStringVal());
                        }else{
                            FacesContext fctx = FacesContext.getCurrentInstance();
                            ExternalContext ectx = fctx.getExternalContext();
                            HttpSession userSession = (HttpSession)ectx.getSession(false);// no crea otra sesion si no existe
                            JSFUtils.addFacesInformationMessage(result.getStringVal());
                            if(userSession != null) {
                                userSession.setAttribute("indCaducidadSession", false);
            } catch (Exception e) {
                JSFUtils.addFacesErrorMessage("Ocurrió un problema en el proceso cambio de contraseña, vuelva a intentarlo.");
                e.printStackTrace();
        public String doLogout() {
            FacesContext fctx = FacesContext.getCurrentInstance();
            HttpServletRequest request = (HttpServletRequest)fctx.getExternalContext().getRequest();       
            HttpServletResponse response = (HttpServletResponse)fctx.getExternalContext().getResponse();
           // sendForward(request, response, "/adfAuthentication?logout=true&amp;end_url=/faces/login.jspx");
            eraseCookie(request, response);
            UIComponent root = fctx.getViewRoot();
            RichCommandButton button_change = (RichCommandButton)root.findComponent("salir");
            ActionEvent actionEvent_change = new ActionEvent(button_change);
            actionEvent_change.queue();
            return null;   
        private void eraseCookie(HttpServletRequest req, HttpServletResponse resp) {
            Cookie[] cookies = req.getCookies();
            if (cookies != null){
                for (int i = 0; i < cookies.length; i++) {
                    cookies[i].setValue("");
                    cookies[i].setPath("/");
                    cookies[i].setMaxAge(0);
                    resp.addCookie(cookies[i]);
        private void sendForward(HttpServletRequest request,
            HttpServletResponse response, String forwardUrl) {       
            FacesContext ctx = FacesContext.getCurrentInstance();
            RequestDispatcher dispatcher = request.getRequestDispatcher(forwardUrl);
            try {
                dispatcher.forward(request, response);
            } catch (ServletException se) {
                JSFUtils.addFacesErrorMessage(se.getMessage());
                se.printStackTrace();
            } catch (IOException ie) {
                JSFUtils.addFacesErrorMessage(ie.getMessage());
                ie.printStackTrace();
            ctx.responseComplete();
        private void sendMailByUserCreate(String idDialog) {
            FacesContext fctx = FacesContext.getCurrentInstance();
            ExternalContext ectx = fctx.getExternalContext();
            HttpSession userSession = (HttpSession)ectx.getSession(false);
            String isCreate = String.valueOf(userSession.getAttribute("indFormEditable"));
            if("true".equals(isCreate) && "dialog-SegUsuariosMae".equals(idDialog)){
                String passwdReg = (String)userSession.getAttribute("passwdReg");
                String usernmReg = (String)userSession.getAttribute("usernmReg");
                OperationBinding operb = ADFUtils.findOperation("sendMailProcess");
                operb.getParamsMap().put("parameter", usernmReg+"|"+passwdReg);
                operb.getParamsMap().put("indicator", "userFirstCreation");               
                String indicador = (String)operb.execute();
                userSession.removeAttribute("usernmReg");
                userSession.removeAttribute("passwdReg");
                if("success".equals(indicador)){
                    JSFUtils.addFacesInformationMessage("Se envió la contraseña " +
                    "generada al correo del registro creado.");
                }else{
                    JSFUtils.addFacesWarningMessage("Ocurrió un problema al enviar " +
                    "la contraseña generada en el correo del registro creado.");

  • Oracle.jbo.RowNotFoundException: JBO-25034: Row with handle not found

    Hello,
    I am developing a fusion web application on Jdeveloper 11.1.2.1.0.
    I have a ADF table which is bound to a table in the backing bean. There is a "Process" button for each row that works completely fine. There is button called "Process All" beneath the table especially designed  to do some processing with all the rows.. When I click the button, following happens with every row
    1) A call is made to a webservice
    2) Results from the webservice needs to be updated on that row in the database.
    There is a process button for each row that works completely fine.
    I am successful with the above two points for the first row. But when the control gets to the second row, results from webservice are retrieved but updating the results in the database is where I am seeing the problem.
    I am doing the update via ApplicationmoduleImpl.java method:
      public void markEFTTransaction(int eft_id)
        System.out.println("In Application module markEFTTransaction");
        System.out.println("EFT ID to mark is" + eft_id);
        DBTransaction trans = getDBTransaction();
        try
          CallableStatement cs = trans.createCallableStatement("begin ? := ai.ba_p003_eft.mark_eft_transaction(?); end;", 0);
          cs.registerOutParameter(1,Types.VARCHAR);
          cs.setInt(2, eft_id);
          cs.executeUpdate();
          String result = cs.getString(1);
          System.out.println(result);
          if (result.equalsIgnoreCase("N"))
            System.out.println("committed to database");
            getTransaction().commit();
          else
            System.out.println("\n Transaction rolled back. \n");
            getTransaction().rollback();
          cs.close();
        } catch (Exception e)
        System.out.println("Exception is " + e);
    view scope bean method:
      public String ProcessAll()
        RowKeySet rks = new RowKeySetImpl();
        CollectionModel model = (CollectionModel)nonProcessedTable.getValue();
        int rowcount = model.getRowCount();
        for (int i = 0; i < rowcount; i++) {
          model.setRowIndex(i);
          Object key = model.getRowKey();
          rks.add(key);
        nonProcessedTable.setSelectedRowKeys(rks);
        // Add event code here...
        List<String> updateList = new ArrayList<String>();
        RowKeySet selectedTransaction = nonProcessedTable.getSelectedRowKeys();
        Iterator selectedTransactionIter = selectedTransaction.iterator();
        System.out.println("we have " + nonProcessedTable.getSelectedRowKeys().size() + " rows selected");
        DCBindingContainer bindings =
                          (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
        DCIteratorBinding transactionIter = bindings.findIteratorBinding("eftTransactionsforBillingAccountViewObj1Iterator");
        RowSetIterator transactionRSIter = transactionIter.getRowSetIterator();
        //Select Rows and perform transaction
        while(selectedTransactionIter.hasNext())
          Key key = (Key)((List)selectedTransactionIter.next()).get(0);
          System.out.println("Key is" +key);
          Row currentRow = transactionRSIter.getRow(key);
          System.out.println("EFTT ID IS"+currentRow.getAttribute("efttId"));
          Utilities.getApplicationModule().markEFTTransaction(Integer.parseInt(currentRow.getAttribute("efttId").toString()));
      return null;
    Output:
    we have 26 rows selected
    Key isoracle.jbo.Key[101 741 ]
    Source breakpoint: unProcessedBean.java:443
    EFTT ID IS741
    <BindingContext> <findDataControl> [697] INFO: no refreshRegion, skipping cpx codebase lookup on AppModuleDataControl
    In Application module markEFTTransaction
    EFT ID to mark is741
    N
    committed to database
    <ADFLogger> <begin> Commit transaction
    <ViewObjectImpl> <afterCommit> [698] eftTransactionsforBillingAccountViewObj1 notify COMMIT ...
    <DBTransactionImpl> <clearEntityCacheInternal> [699] Clearing EO cache for com.alliednational.ai.authorize.net.model.entities.bla
    <ViewObjectImpl> <doClearCache> [700] Clearing VO cache for eftTransactionsforBillingAccountViewObj1
    <ViewObjectImpl> <clearQueryCollectionCache> [701] Clear QueryCollection in cache for VO eftTransactionsforBillingAccountViewObj1
    <ViewObjectImpl> <doClearCache> [702] Clearing VO cache for blaeftDetailViewObj1
    <ViewObjectImpl> <clearQueryCollectionCache> [703] Clear QueryCollection in cache for VO blaeftDetailViewObj1
    <DBTransactionImpl> <clearEntityCacheInternal> [704] Clearing EO cache for com.alliednational.ai.authorize.net.model.entities.eftt
    <ViewObjectImpl> <doClearCache> [705] Clearing VO cache for eftTransactionsforBillingAccountViewObj1
    <ViewObjectImpl> <clearQueryCollectionCache> [706] Clear QueryCollection in cache for VO eftTransactionsforBillingAccountViewObj1
    <ViewObjectImpl> <doClearCache> [707] Clearing VO cache for blaeftDetailViewObj1
    <ViewObjectImpl> <clearQueryCollectionCache> [708] Clear QueryCollection in cache for VO blaeftDetailViewObj1
    <ADFLogger> <addContextData> Commit transaction
    <ADFLogger> <end> Commit transaction
    Key isoracle.jbo.Key[135 863 ]
    <ActionListenerImpl> <processAction> oracle.jbo.RowNotFoundException: JBO-25034: Row with handle 13 is not found in rowset eftTransactionsforBillingAccountViewObj1.
    javax.faces.el.EvaluationException: oracle.jbo.RowNotFoundException: JBO-25034: Row with handle 13 is not found in rowset eftTransactionsforBillingAccountViewObj1.
      at org.apache.myfaces.trinidad.component.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:51)
      at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102)
      at org.apache.myfaces.trinidad.component.UIXCommand.broadcast(UIXCommand.java:190)
      at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:787)
      at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1252)
      at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._invokeApplication(LifecycleImpl.java:965)
      at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl._executePhase(LifecycleImpl.java:346)
      at oracle.adfinternal.view.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:204)
      at javax.faces.webapp.FacesServlet.service(FacesServlet.java:312)
      at weblogic.servlet.internal.StubSecurityHelper$ServletServiceAction.run(StubSecurityHelper.java:227)
      at weblogic.servlet.internal.StubSecurityHelper.invokeServlet(StubSecurityHelper.java:125)
      at weblogic.servlet.internal.ServletStubImpl.execute(ServletStubImpl.java:300)
      at weblogic.servlet.internal.TailFilter.doFilter(TailFilter.java:26)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at oracle.adf.model.servlet.ADFBindingFilter.doFilter(ADFBindingFilter.java:173)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at oracle.adfinternal.view.faces.webapp.rich.RegistrationFilter.doFilter(RegistrationFilter.java:122)
      at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
      at oracle.adfinternal.view.faces.activedata.AdsFilter.doFilter(AdsFilter.java:60)
      at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl$FilterListChain.doFilter(TrinidadFilterImpl.java:468)
      at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl._doFilterImpl(TrinidadFilterImpl.java:293)
      at org.apache.myfaces.trinidadinternal.webapp.TrinidadFilterImpl.doFilter(TrinidadFilterImpl.java:199)
      at org.apache.myfaces.trinidad.webapp.TrinidadFilter.doFilter(TrinidadFilter.java:92)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at oracle.adf.library.webapp.LibraryFilter.doFilter(LibraryFilter.java:180)
      at weblogic.servlet.internal.FilterChainImpl.doFilter(FilterChainImpl.java:56)
      at oracle.security.jps.ee.http.JpsAbsFilter$1.run(JpsAbsFilter.java:111)
      at java.security.AccessController.doPrivileged(Native Method)
      at oracle.security.jps.util.JpsSubject.doAsPrivileged(JpsSubject.java:313)
      at oracle.security.jps.ee.util.JpsPlatformUtil.runJaasMode(JpsPlatformUtil.java:413)
      at oracle.security.jps.ee.http.JpsAbsFilter.runJaasMode(JpsAbsFilter.java:94)
      at oracle.security.jps.ee.http.JpsAbsFilter.doFilter(JpsAbsFilter.java:161)
      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:136)
      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: oracle.jbo.RowNotFoundException: JBO-25034: Row with handle 13 is not found in rowset eftTransactionsforBillingAccountViewObj1.
      at oracle.jbo.server.ViewRowSetImpl.getRowFromHandle(ViewRowSetImpl.java:3220)
      at oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:3307)
      at oracle.jbo.server.ViewRowSetImpl.getRow(ViewRowSetImpl.java:3294)
      at oracle.jbo.server.ViewObjectImpl.getRow(ViewObjectImpl.java:10772)
      at com.alliednational.ai.authorize.net.view.beans.unProcessedBean.ProcessAll(unProcessedBean.java:442)
      at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
      at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
      at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
      at java.lang.reflect.Method.invoke(Method.java:597)
      at com.sun.el.parser.AstValue.invoke(Unknown Source)
      at com.sun.el.MethodExpressionImpl.invoke(Unknown Source)
      at org.apache.myfaces.trinidad.component.MethodExpressionMethodBinding.invoke(MethodExpressionMethodBinding.java:46)
      ... 46 more
    Any help is appreciated!!!
    Shailaja.

    This error is often the result of an activation/passivation problem in the application. Have you tested your app with application module pooling turned off?
    If not I suggest that you do this and make sure all errors coming up in this mode to be fixed first. After the app runs OK with application module pooling turned off check if the error still occurs.
    Timo

  • Need urgent help on this error "oracle.jbo.AttrValException: JBO-27019"

    This is regarding Print Quote eror.
    "oracle.jbo.AttrValException: JBO-27019"
    I am facing the above error .(I am new to OA Framework) whenever i tried to add a new column to the select query 'Comp_info' .
    My development has come to an Halt really :(
    The code is :
    <?xml version="1.0" encoding='windows-1252'?>
    <!DOCTYPE ViewObject SYSTEM "jbo_03_01.dtd">
    <!-- $Header: LinesVO.xml 115.3 2003/12/30 07:01:46 asetti noship $-->
    <ViewObject
    Name="LinesVO"
    BindingStyle="Oracle"
    CustomQuery="true"
    RowClass="oracle.apps.aso.print.server.LinesVORowImpl"
    ComponentClass="oracle.apps.aso.print.server.LinesVOImpl"
    MsgBundleClass="oracle.jbo.common.JboResourceBundle"
    FetchMode="FETCH_AS_NEEDED"
    Passivate="None"
    UseGlueCode="false" >
    <SQLQuery><![CDATA[
    SELECT
    qte.ui_line_number line_number
    ,qte.padded_concatenated_segments item_number
    ,qte.item_description item_description
    ,qte.uom_code Order_Quantity_Uom
    ,DECODE(qte.line_category_code, 'RETURN', qte.quantity*(-1), qte.quantity) Ordered_Quantity
    ,qte.line_category_code
    ,qte.service_ref_line_id
    ,UPPER(qte.service_ref_type_code) srv_ref_type_code
    ,DECODE(qte.line_category_code, 'RETURN', qte.line_list_price*(-1), qte.line_list_price) unit_list_price
    ,DECODE(qte.line_category_code, 'RETURN', qte.line_adjusted_amount*(-1), qte.line_adjusted_amount) line_adj_price
    ,DECODE(qte.line_category_code, 'RETURN', qte.line_quote_price*(-1), qte.line_quote_price) unit_selling_price
    ,DECODE(qte.line_category_code, 'RETURN', qte.extended_list_price*(-1), qte.extended_list_price) line_total_list_price
    ,DECODE(qte.line_category_code, 'RETURN', qte.extended_adjusted_amount*(-1), qte.extended_adjusted_amount) line_total_adj_amt
    ,DECODE(qte.line_category_code, 'RETURN', qte.extended_selling_price*(-1), qte.extended_selling_price) line_total
    ,line_number old_line_number
    ,to_char(qte.start_date_active,nvl(FND_PROFILE.VALUE('ICX_DATE_FORMAT_MASK'), 'DD-MON-RRRR')) start_date_active
    ,to_char(qte.end_date_active,nvl(FND_PROFILE.VALUE('ICX_DATE_FORMAT_MASK'), 'DD-MON-RRRR')) end_date_active
    ,qte.service_duration
    ,qte.service_period
    ,qte.item_type_code
    ,decode(qte.item_type_code, 'MDL', NVL(qte.complete_configuration_flag, 'N'), 'Z') Model_Status
    ,qte.quote_line_id qlid
    ,qte.quote_header_id
    ,DECODE(qte.line_category_code,
    'RETURN',
    (select qte.quantity * (nvl(sum(decode(apav.applied_flag,'Y',decode(apav.charge_type_code,NULL,0,apav.adjusted_amount),0) ), 0))
    FROM aso_price_adjustments_v apav
    where qte.quote_line_id = apav.quote_line_id )*(-1),
    (select qte.quantity * (nvl(sum(decode(apav.applied_flag,'Y',decode(apav.charge_type_code,NULL,0,apav.adjusted_amount),0) ), 0))
    FROM aso_price_adjustments_v apav
    where qte.quote_line_id = apav.quote_line_id )) line_charges
    ,DECODE(qte.line_category_code,
    'RETURN',
    (decode(qte.item_type_code,
    'MDL',
    decode (qte.config_header_id,
    NULL,
    qte.extended_selling_price,
    (select sum(QUOTE_LINES.LINE_QUOTE_PRICE * QUOTE_LINES.QUANTITY)
    from ASO_QUOTE_LINES_ALL QUOTE_LINES,
    ASO_QUOTE_LINE_DETAILS QUOTE_LINE_DETAILS
    where quote_line_details.config_header_id=qte.config_header_id
    and quote_line_details.quote_line_id =quote_lines.quote_line_id)),
    qte.extended_selling_price))*(-1),
    (decode(qte.item_type_code,
    'MDL',
    decode (qte.config_header_id,
    NULL,
    qte.extended_selling_price,
    (select sum(QUOTE_LINES.LINE_QUOTE_PRICE * QUOTE_LINES.QUANTITY)
    from ASO_QUOTE_LINES_ALL QUOTE_LINES,
    ASO_QUOTE_LINE_DETAILS QUOTE_LINE_DETAILS
    where quote_line_details.config_header_id=qte.config_header_id
    and quote_line_details.quote_line_id =quote_lines.quote_line_id)),
    qte.extended_selling_price))) model_total
    ,qte.attribute3 Comp_Info
    FROM
    aso_pvt_quote_lines_bali_v qte
    ]]></SQLQuery>
    <DesignTime>
    <Attr Name="_isCodegen" Value="true" />
    <Attr Name="_version" Value="9.0.3.11.21" />
    <Attr Name="_CodeGenFlagNew" Value="36" />
    </DesignTime>
    <ViewAttribute
    Name="LineNumber"
    IsQueriable="false"
    IsPersistent="false"
    Precision="4000"
    Type="java.lang.String"
    AliasName="UI_LINE_NUMBER"
    ColumnType="VARCHAR2"
    Expression="UI_LINE_NUMBER"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="4000" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="ItemNumber"
    IsQueriable="false"
    IsPersistent="false"
    Precision="30"
    Type="java.lang.String"
    AliasName="LINE_SEGMENT"
    ColumnType="VARCHAR2"
    Expression="LINE_SEGMENT"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="30" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="comp_product"
    IsQueriable="false"
    IsPersistent="false"
    Precision="30"
    Type="java.lang.String"
    AliasName="comp_product"
    ColumnType="VARCHAR2"
    Expression="comp_product"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="30" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="ItemDescription"
    IsQueriable="false"
    IsPersistent="false"
    Precision="240"
    Type="java.lang.String"
    AliasName="LINE_DESC"
    ColumnType="VARCHAR2"
    Expression="LINE_DESC"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="240" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="OrderQuantityUom"
    IsQueriable="false"
    IsPersistent="false"
    IsNotNull="true"
    Precision="3"
    Type="java.lang.String"
    AliasName="LINE_UOM_CODE"
    ColumnType="VARCHAR2"
    Expression="LINE_UOM_CODE"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="3" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="OrderedQuantity"
    IsQueriable="false"
    IsPersistent="false"
    IsNotNull="true"
    Precision="255"
    Type="oracle.jbo.domain.Number"
    AliasName="LINE_QTY"
    ColumnType="VARCHAR2"
    Expression="LINE_QTY"
    SQLType="NUMERIC" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="LineCategoryCode"
    IsQueriable="false"
    IsPersistent="false"
    Precision="30"
    Type="java.lang.String"
    AliasName="LINE_CATEGORY_CODE"
    ColumnType="VARCHAR2"
    Expression="LINE_CATEGORY_CODE"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="30" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="ServiceRefLineId"
    IsQueriable="false"
    IsPersistent="false"
    Type="oracle.jbo.domain.Number"
    AliasName="SERVICE_REF_LINE_ID"
    ColumnType="VARCHAR2"
    Expression="SERVICE_REF_LINE_ID"
    SQLType="NUMERIC" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="SrvRefTypeCode"
    IsQueriable="false"
    IsPersistent="false"
    Precision="30"
    Type="java.lang.String"
    AliasName="SRV_REF_TYPE_CODE"
    ColumnType="VARCHAR2"
    Expression="SRV_REF_TYPE_CODE"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="30" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="UnitListPrice"
    IsQueriable="false"
    IsPersistent="false"
    Precision="255"
    Type="oracle.jbo.domain.Number"
    AliasName="LINELIST_PRICE"
    ColumnType="VARCHAR2"
    Expression="LINELIST_PRICE"
    SQLType="NUMERIC" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="LineAdjPrice"
    IsQueriable="false"
    IsPersistent="false"
    Type="oracle.jbo.domain.Number"
    AliasName="LINE_ADJ_PRICE"
    ColumnType="VARCHAR2"
    Expression="LINE_ADJ_PRICE"
    SQLType="NUMERIC" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="UnitSellingPrice"
    IsQueriable="false"
    IsPersistent="false"
    Precision="255"
    Type="oracle.jbo.domain.Number"
    AliasName="LINE_NET_PRICE"
    ColumnType="VARCHAR2"
    Expression="LINE_NET_PRICE"
    SQLType="NUMERIC" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="LineTotalListPrice"
    IsQueriable="false"
    IsPersistent="false"
    Type="oracle.jbo.domain.Number"
    AliasName="LINE_TOTAL_LIST_PRICE"
    ColumnType="VARCHAR2"
    Expression="LINE_TOTAL_LIST_PRICE"
    SQLType="NUMERIC" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="LineTotalAdjAmt"
    IsQueriable="false"
    IsPersistent="false"
    Type="oracle.jbo.domain.Number"
    AliasName="LINE_TOTAL_ADJ_AMT"
    ColumnType="VARCHAR2"
    Expression="LINE_TOTAL_ADJ_AMT"
    SQLType="NUMERIC" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="LineTotal"
    IsQueriable="false"
    IsPersistent="false"
    Precision="255"
    Type="oracle.jbo.domain.Number"
    AliasName="LINE_TOTAL_NET_PRICE"
    ColumnType="VARCHAR2"
    Expression="LINE_TOTAL_NET_PRICE"
    SQLType="NUMERIC" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="OldLineNumber"
    IsQueriable="false"
    IsPersistent="false"
    Precision="255"
    Type="oracle.jbo.domain.Number"
    AliasName="LINE_NUMBER"
    ColumnType="VARCHAR2"
    Expression="LINE_NUMBER"
    SQLType="NUMERIC" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="StartDateActive"
    IsQueriable="false"
    IsPersistent="false"
    DiscrColumn="true"
    Precision="255"
    Type="java.lang.String"
    AliasName="START_DATE_ACTIVE"
    ColumnType="VARCHAR2"
    Expression="START_DATE_ACTIVE"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="7" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="EndDateActive"
    IsQueriable="false"
    IsPersistent="false"
    Precision="255"
    Type="java.lang.String"
    AliasName="END_DATE_ACTIVE"
    ColumnType="VARCHAR2"
    Expression="END_DATE_ACTIVE"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="7" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="ServiceDuration"
    IsQueriable="false"
    IsPersistent="false"
    Type="oracle.jbo.domain.Number"
    AliasName="SERVICE_DURATION"
    ColumnType="VARCHAR2"
    Expression="SERVICE_DURATION"
    SQLType="NUMERIC" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="ServicePeriod"
    IsQueriable="false"
    IsPersistent="false"
    Precision="3"
    Type="java.lang.String"
    AliasName="SERVICE_PERIOD"
    ColumnType="VARCHAR2"
    Expression="SERVICE_PERIOD"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="3" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="ItemTypeCode"
    IsQueriable="false"
    IsPersistent="false"
    Precision="30"
    Type="java.lang.String"
    AliasName="ITEM_TYPE_CODE"
    ColumnType="VARCHAR2"
    Expression="ITEM_TYPE_CODE"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="30" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="ModelStatus"
    IsUpdateable="false"
    IsQueriable="false"
    IsPersistent="false"
    Precision="1"
    Type="java.lang.String"
    ColumnType="VARCHAR2"
    Expression="ModelStatus"
    SQLType="VARCHAR" >
    </ViewAttribute>
    <ViewAttribute
    Name="Qlid"
    IsQueriable="false"
    IsPersistent="false"
    IsNotNull="true"
    Precision="1"
    Type="oracle.jbo.domain.Number"
    AliasName="QLID"
    ColumnType="VARCHAR2"
    Expression="QLID"
    SQLType="NUMERIC" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="QuoteHeaderId"
    IsQueriable="false"
    IsPersistent="false"
    IsNotNull="true"
    Type="oracle.jbo.domain.Number"
    AliasName="QUOTE_HEADER_ID"
    ColumnType="VARCHAR2"
    Expression="QUOTE_HEADER_ID"
    SQLType="NUMERIC" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="LineCharges"
    IsQueriable="false"
    IsPersistent="false"
    Precision="255"
    Type="oracle.jbo.domain.Number"
    AliasName="LINE_TOTAL_CHARGES"
    ColumnType="VARCHAR2"
    Expression="LINE_TOTAL_CHARGES"
    SQLType="NUMERIC" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="ModelTotal"
    IsQueriable="false"
    IsPersistent="false"
    Precision="255"
    Type="oracle.jbo.domain.Number"
    AliasName="MODEL_TOTAL"
    ColumnType="VARCHAR2"
    Expression="MODEL_TOTAL"
    SQLType="NUMERIC" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="22" />
    </DesignTime>
    </ViewAttribute>
    <ViewAttribute
    Name="Comp_Info"
    IsQueriable="false"
    IsPersistent="false"
    Precision="30"
    Type="java.lang.String"
    AliasName="Comp_Info"
    ColumnType="VARCHAR2"
    Expression="Comp_Info"
    SQLType="VARCHAR" >
    <DesignTime>
    <Attr Name="_DisplaySize" Value="30" />
    </DesignTime>
    </ViewAttribute>
    <ViewLinkAccessor
    Name="ServiceToOrderLineVO"
    ViewLink="oracle.apps.aso.print.server.ServiceToOrderLineVL"
    Type="oracle.jbo.RowIterator"
    IsUpdateable="false" >
    </ViewLinkAccessor>
    <ViewLinkAccessor
    Name="ServiceToInstBaseVO"
    ViewLink="oracle.apps.aso.print.server.ServiceToInstBaseVL"
    Type="oracle.jbo.RowIterator"
    IsUpdateable="false" >
    </ViewLinkAccessor>
    <ViewLinkAccessor
    Name="QuoteLineChargesVO"
    ViewLink="oracle.apps.aso.print.server.QuoteLineChargesVL"
    Type="oracle.jbo.RowIterator"
    IsUpdateable="false" >
    </ViewLinkAccessor>
    <ViewLinkAccessor
    Name="QuoteLineTaxesVO"
    ViewLink="oracle.apps.aso.print.server.QuoteLineTaxesVL"
    Type="oracle.jbo.RowIterator"
    IsUpdateable="false" >
    </ViewLinkAccessor>
    <ViewLinkAccessor
    Name="LineTemplateVO"
    ViewLink="oracle.apps.aso.print.server.LineTemplateVL"
    Type="oracle.jbo.RowIterator"
    IsUpdateable="false" >
    </ViewLinkAccessor>
    <ViewLinkAccessor
    Name="LineAttachmentVO"
    ViewLink="oracle.apps.aso.print.server.LineAttachmentVL"
    Type="oracle.jbo.RowIterator"
    IsUpdateable="false" >
    </ViewLinkAccessor>
    </ViewObject>
    It gives me an error as "oracle.jbo.AttrValException: JBO-27019: Get method for attribute "comp_info" in LinesVO_HeaderLinesVL_LinesVO could not be resolved.
    I have added the getter and setter as well in the RowImpl.java file but still its givn this error.
    I need to add many more columns after this error is solved.
    I tried all permutation n combination but all in vain.
    Any help on this would be highly appreciated.
    Thanks,
    Ajit

    Ajit,
    Writing getter/setter methods manually is not a good idea, when jdev provides u that facility. Moreover in ur case i m getting a feeling as if ur VO mappings are corrupted. Can u try one thing ,assuming this is a custom VO,Delete the VO from the project and delete all related files in myclasses and my projects.Recreate the VO with all the attributes and try if same error is coming.
    --Mukul                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       

  • Oracle.jbo.RowCreateException: JBO-25017: Error while creating a new ROW

    I am trying same multi step PO example. I have created a search page and there are 3 other pages for PO Header, PO Line and Review/Submit Page. I am coming on 2nd page(creating Line Item) and when I click on create new item record I am getting this error. Any help will be aprrecaited.
    oracle.jbo.RowCreateException: JBO-25017: Error while creating a new entity row for POLinesEO.
    This is my code for POLineShipFullVORowImpl.java
    protected void create(oracle.jbo.AttributeList nvp)
    POLinesEOImpl lineEO = (POLinesEOImpl)getEntity(0);
    POShipmentEOImpl shipmentEO = (POShipmentEOImpl)getEntity(1);
    try
    // Create Lines EO
    lineEO.create(nvp);
    // Create Shipments EO
    shipmentEO.create(lineEO);
    // Calling this ensures that any personalization default values are
    // properly set since the OAF normally sets this in the super.create(), but
    // since this is not called in this workaround, we need another method
    // to ensure customer defaults are applied.
    // The following method was introduced in OAF internal release 11.5.10J. Since
    // the production release of the ToolBox must be able to run on 11.5.10I, this
    // cannot be enabled.
    // setDefaultValue();
    catch (Exception ex)
    lineEO.revert();
    shipmentEO.revert();
    if (ex instanceof oracle.jbo.JboException)
    oracle.jbo.JboException jboEx = (oracle.jbo.JboException)ex;
    // Developers have to do the mapping on their own becauce of the override.
    jboEx.doEntityToVOMapping(getApplicationModule(), new oracle.jbo.ViewObject[]{getViewObject()});
    throw jboEx;
    throw OAException.wrapperException(ex);
    } // end create()
    Code for PoLinesEOImpl.java
    * Initializes a new purchase order line.
    public void create(AttributeList attributeList)
         // NOTE: header id is automatically set by BC4J because of the
    // composition association.
    super.create(attributeList);
    OADBTransaction transaction = (OADBTransaction)getOADBTransaction();
    // DEFAULT: line id
    Number lineId = transaction.getSequenceValue("FWK_TBX_PO_LINES_S");
    setLineId(lineId);
    // DEFAULT: Line number
    POHeaderEOImpl headerEO = getPOHeaderEO();
    Number newLineNum = headerEO.getNextLineNum();
    setLineNumber(newLineNum);
    } // end create()
    * Sets <code>value</code> as the attribute value for ShipmentNumber
    * Business Rules
    * Required; cannot be null
    * Cannot be updated on a committed line
    * Must be unique for this purchase order
    * Must be >= 1
    public void setLineNumber(Number value)
    if (value != null)
    // Verify value is > 0
    if (value.compareTo(0) <= 0)
    throw new OAAttrValException(OAException.TYP_ENTITY_OBJECT,
    getEntityDef().getFullName(), // EO name
    getPrimaryKey(), // EO PK
    "LineNumber", // Attribute Name
    value, // Attribute value
    "AK", // Message product short name
    "DEBUG -- add message"); // Message name
    // To verify uniqueness, start by checking the entity cache.
    com.sun.java.util.collections.Iterator lineIterator =
    getEntityDef().getAllEntityInstancesIterator(getDBTransaction());
    Number lineId = getLineId();
    Number headerId = getHeaderId();
    while ( lineIterator.hasNext() )
    POLinesEOImpl cachedLine =
    (POLinesEOImpl)lineIterator.next();
    Number cachedLineNum = cachedLine.getLineNumber();
    Number cachedLineId = cachedLine.getLineId();
    Number cachedHeaderId = cachedLine.getHeaderId();
    if ((cachedLineNum != null) &&
    (cachedLineNum.compareTo(value) == 0) &&
    (cachedLineId.compareTo(lineId) != 0) && // Exclude this line
    (cachedHeaderId.compareTo(headerId) == 0))
    throw new OAAttrValException(OAException.TYP_ENTITY_OBJECT,
    getEntityDef().getFullName(), // EO name
    getPrimaryKey(), // EO PK
    "LineNumber", // Attribute Name
    value, // Attribute value
    "AK", // Message product short name
    "DEBUG -- add message"); // Message name
    // Didn't find a duplicate in the entity cache so now we check the database.
    // Note: don't bother with this if the header is in a NEW state since that
    // means we won't have any lines in the database yet.
    POHeaderEOImpl headerEO = getPOHeaderEO();
    if (headerEO.getEntityState() != STATUS_NEW)
    PurchaseEntityExpert poExpert =
    POHeaderEOImpl.getPurchaseEntityExpert(getOADBTransaction());
    PoLineNumVVOImpl valLineNumVO =
    (PoLineNumVVOImpl)poExpert.findValidationViewObject("PoLineNumVVO1");
    valLineNumVO.initQuery(headerId, value);
    // We're doing an existence check; shouldn't have any rows.
    if (valLineNumVO.hasNext())
    throw new OAAttrValException(OAException.TYP_ENTITY_OBJECT,
    getEntityDef().getFullName(), // EO name
    getPrimaryKey(), // EO PK
    "LineNumber", // Attribute Name
    value, // Attribute value
    "AK", // Message product short name
    "DEBUG -- add message"); // Message name
    // If this is the largest line number for this order, this will store it for
    // reference when creating subsequent lines.
    headerEO.resetLineNum(value);
    setAttributeInternal(LINENUMBER, value);
    } // end setLineNumber()
    Edited by: user9941374 on Mar 15, 2012 3:16 PM

    Hi Frank,
    As per the steps mentioned in the following link :
    http://www-apps.us.oracle.com:1100/fwk/jdev/doc/devguide/bus/bus_java.htm#tl
    I have created the required entity objects and view objects.
    I have an entity JobsDEO which is based on a view per_jobs_vl which is itself based on 2 tables,per_jobs_f and per_jobs_tl,wherein _tl is the translation table.
    The entity for _tl table is JobTranslationEO and has no VO associated with it.Its the JobsVO,based on JobsDEO,that has to handle any interactions with this entity too.
    JOBSDEO has a property set up for HCM_DBSEQUENCE,which makes it read the value of job_id from the sequence per_jobs_s.
    Now,when I try to insert into the JobsVO,based on JobsDEO,it gives me the above mentioned error.
    One more thing is that the error does'nt occur when we commit a row,its just when we click the "+" button in the AM Tester that we get this error.
    Please advice.

  • Please HELP PLEASE. oracle.jbo.RowCreateException: JBO-25017:

    Hi all,
    I've been trying to work out what I've done wrong but I can't seem to pin point the problem and I am desperate for help.
    I have created an web application whereby I can query results from per_all_people_f. I have also created an lov item to hold the person_id selected from the lov (which queries per_all_people_f)
    However, when I follow the tutorial on how to insert records into a table (I want to insert records into a table I created within Toad) I get the following errors:
    1. oracle.jbo.RowCreateException: JBO-25017: Error while creating a new entity row for UserEO. (I am still able to query the database with this error as it sits only on the header of the browser.)
    2. After I get the person_id from the lov and I try to click apply and I get the following error - oracle.apps.fnd.framework.OAException: java.lang.NullPointerException
         at oracle.apps.fnd.framework.OAException.wrapperException(OAException.java:888)
         at oracle.apps.fnd.framework.webui.OAPageErrorHandler.prepareException(OAPageErrorHandler.java:1145)
         at oracle.apps.fnd.framework.webui.OAPageErrorHandler.processErrors(OAPageErrorHandler.java:1408)
         at oracle.apps.fnd.framework.webui.OAPageBean.processFormRequest(OAPageBean.java:2637)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1659)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:497)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:418)
         at OA.jspService(OA.jsp:40)
         at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
         at java.lang.Thread.run(Thread.java:534)
    ## Detail 0 ##
    java.lang.NullPointerException
         at oracle.apps.fnd.umx.userAdmin.webui.SelectUserCO.processFormRequest(SelectUserCO.java:70)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:799)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:363)
         at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processFormRequest(OAPageLayoutHelper.java:1118)
         at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processFormRequest(OAPageLayoutBean.java:1579)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:995)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:961)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:816)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:363)
         at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processFormRequest(OAFormBean.java:395)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:995)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:961)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:816)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:363)
         at oracle.apps.fnd.framework.webui.beans.OABodyBean.processFormRequest(OABodyBean.java:363)
         at oracle.apps.fnd.framework.webui.OAPageBean.processFormRequest(OAPageBean.java:2633)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1659)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:497)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:418)
         at OA.jspService(OA.jsp:40)
         at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
         at java.lang.Thread.run(Thread.java:534)
    java.lang.NullPointerException
         at oracle.apps.fnd.umx.userAdmin.webui.SelectUserCO.processFormRequest(SelectUserCO.java:70)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:799)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:363)
         at oracle.apps.fnd.framework.webui.OAPageLayoutHelper.processFormRequest(OAPageLayoutHelper.java:1118)
         at oracle.apps.fnd.framework.webui.beans.layout.OAPageLayoutBean.processFormRequest(OAPageLayoutBean.java:1579)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:995)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:961)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:816)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:363)
         at oracle.apps.fnd.framework.webui.beans.form.OAFormBean.processFormRequest(OAFormBean.java:395)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:995)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequestChildren(OAWebBeanHelper.java:961)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:816)
         at oracle.apps.fnd.framework.webui.OAWebBeanContainerHelper.processFormRequest(OAWebBeanContainerHelper.java:363)
         at oracle.apps.fnd.framework.webui.beans.OABodyBean.processFormRequest(OABodyBean.java:363)
         at oracle.apps.fnd.framework.webui.OAPageBean.processFormRequest(OAPageBean.java:2633)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:1659)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:497)
         at oracle.apps.fnd.framework.webui.OAPageBean.preparePage(OAPageBean.java:418)
         at OA.jspService(OA.jsp:40)
         at com.orionserver.http.OrionHttpJspPage.service(OrionHttpJspPage.java:56)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:317)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:465)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:379)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:853)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(ServletRequestDispatcher.java:727)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:306)
         at com.evermind.server.http.HttpRequestHandler.processRequest(HttpRequestHandler.java:767)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:259)
         at com.evermind.server.http.HttpRequestHandler.run(HttpRequestHandler.java:106)
         at EDU.oswego.cs.dl.util.concurrent.PooledExecutor$Worker.run(PooledExecutor.java:803)
         at java.lang.Thread.run(Thread.java:534).
    Here is what my AM, VO, EO, CO look like.
    VO:
    package gfmis.oracle.apps.uas.user.server;
    import oracle.apps.fnd.framework.server.OAViewRowImpl;
    import oracle.jbo.server.AttributeDefImpl;
    import oracle.jbo.domain.Number;
    // --- File generated by Oracle Business Components for Java.
    public class UserVORowImpl extends OAViewRowImpl
    protected static final int REGREQUESTID = 0;
    protected static final int PERSONID = 1;
    * This is the default constructor (do not remove)
    public UserVORowImpl()
    * Gets UserEO entity object.
    public gfmis.oracle.apps.uas.schema.server.UserEOImpl getUserEO()
    return (gfmis.oracle.apps.uas.schema.server.UserEOImpl)getEntity(0);
    * Gets the attribute value for REG_REQUEST_ID using the alias name RegRequestId
    public Number getRegRequestId()
    return (Number)getAttributeInternal(REGREQUESTID);
    * Sets <code>value</code> as attribute value for REG_REQUEST_ID using the alias name RegRequestId
    public void setRegRequestId(Number value)
    setAttributeInternal(REGREQUESTID, value);
    * Gets the attribute value for PERSON_ID using the alias name PersonId
    public Number getPersonId()
    return (Number)getAttributeInternal(PERSONID);
    * Sets <code>value</code> as attribute value for PERSON_ID using the alias name PersonId
    public void setPersonId(Number value)
    setAttributeInternal(PERSONID, value);
    // Generated method. Do not modify.
    protected Object getAttrInvokeAccessor(int index, AttributeDefImpl attrDef) throws Exception
    switch (index)
    case REGREQUESTID:
    return getRegRequestId();
    case PERSONID:
    return getPersonId();
    default:
    return super.getAttrInvokeAccessor(index, attrDef);
    // Generated method. Do not modify.
    protected void setAttrInvokeAccessor(int index, Object value, AttributeDefImpl attrDef) throws Exception
    switch (index)
    case REGREQUESTID:
    setRegRequestId((Number)value);
    return;
    case PERSONID:
    setPersonId((Number)value);
    return;
    default:
    super.setAttrInvokeAccessor(index, value, attrDef);
    return;
    AM
    package gfmis.oracle.apps.uas.user.server;
    import oracle.apps.fnd.framework.server.OAApplicationModuleImpl;
    import oracle.apps.fnd.framework.server.OAViewObjectImpl;
    import oracle.jbo.Row;
    import oracle.apps.fnd.framework.OAViewObject;
    // --- File generated by Oracle Business Components for Java.
    public class UserAMImpl extends OAApplicationModuleImpl
    * This is the default constructor (do not remove)
    public UserAMImpl()
    * Sample main for debugging Business Components code using the tester.
    public static void main(String[] args)
    launchTester("gfmis.oracle.apps.uas.user.server", "UserAMLocal");
    * Container's getter for UserVO1
    public OAViewObjectImpl getUserVO1()
    return (OAViewObjectImpl)findViewObject("UserVO1");
    * Selects an Approver.
    public void Select_Approver()
    OAViewObject vo = (OAViewObject)getUserVO1();
    // Per the coding standards, this is the proper way to initialize a // VO that is used for both inserts and queries. See View Objects // in Detail in the Developer's Guide for additional information. if (!vo.isPreparedForExecution()) {       vo.executeQuery();     }
    Row row = vo.createRow(); vo.insertRow(row);
    // Required per OA Framework Model Coding Standard M69
    row.setNewRowState(Row.STATUS_INITIALIZED);
    } // end createEmployee()
    * Commits the transaction.
    public void apply()
    getTransaction().commit();
    } // end apply()
    CO
    /*===========================================================================+
    | Copyright (c) 2001, 2005 Oracle Corporation, Redwood Shores, CA, USA |
    | All rights reserved. |
    +===========================================================================+
    | HISTORY |
    +===========================================================================*/
    package oracle.apps.fnd.umx.userAdmin.webui;
    import oracle.apps.fnd.common.VersionInfo;
    import oracle.apps.fnd.framework.webui.OAControllerImpl;
    import oracle.apps.fnd.framework.webui.OAPageContext;
    import oracle.apps.fnd.framework.webui.beans.OAWebBean;
    import oracle.apps.fnd.framework.OAApplicationModule;
    import oracle.jbo.domain.Number;
    import oracle.apps.fnd.common.MessageToken;
    import oracle.apps.fnd.framework.OAException;
    import oracle.apps.fnd.framework.OAViewObject;
    import oracle.apps.fnd.framework.webui.OAWebBeanConstants;
    * Controller for ...
    public class SelectUserCO extends OAControllerImpl
    public static final String RCS_ID="$Header$";
    public static final boolean RCS_ID_RECORDED =
    VersionInfo.recordClassVersion(RCS_ID, "%packagename%");
    * Layout and page setup logic for a region.
    * @param pageContext the current OA page context
    * @param webBean the web bean corresponding to the region
    public void processRequest(OAPageContext pageContext, OAWebBean webBean)
    super.processRequest(pageContext, webBean);
    // Always call this first. super.processRequest(pageContext, webBean);
    if (!pageContext.isFormSubmission())
    OAApplicationModule am = pageContext.getApplicationModule(webBean);
    am.invokeMethod("Select_Approver", null);
    } // end processRequest()
    * Procedure to handle form submissions for form elements in
    * a region.
    * @param pageContext the current OA page context
    * @param webBean the web bean corresponding to the region
    public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
    super.processFormRequest(pageContext, webBean);
    // Always call this first. super.processFormRequest(pageContext, webBean);
    OAApplicationModule am = pageContext.getApplicationModule(webBean);
    if (pageContext.getParameter("Apply") != null)
    OAViewObject vo = (OAViewObject)am.findViewObject("UserVO1");
    //String employeeName = (String)vo.getCurrentRow().getAttribute("EmployeeName");
    Number person_id = (Number)vo.getCurrentRow().getAttribute("PersonId");
    String s_person_id = String.valueOf(person_id.intValue());
    am.invokeMethod("apply");
    MessageToken[] tokens = { new MessageToken("EMP_NUMBER", s_person_id) };
    OAException confirmMessage = new OAException("AK", "FWK_TBX_T_EMP_CREATE_CONFIRM", tokens,
    OAException.CONFIRMATION, null);
    pageContext.putDialogMessage(confirmMessage);
    pageContext.forwardImmediately("OA.jsp?page=/<yourname>/oracle/apps/ak/employee/webui/EmpSearchPG",
    null,
    OAWebBeanConstants.KEEP_MENU_CONTEXT,
    null,
    null,
    true, // retain AM
    OAWebBeanConstants.ADD_BREAD_CRUMB_NO);
    EO
    /*===========================================================================+
    | Copyright (c) 2001, 2005 Oracle Corporation, Redwood Shores, CA, USA |
    | All rights reserved. |
    +===========================================================================+
    | HISTORY |
    +===========================================================================*/
    package oracle.apps.fnd.umx.userAdmin.webui;
    import oracle.apps.fnd.common.VersionInfo;
    import oracle.apps.fnd.framework.webui.OAControllerImpl;
    import oracle.apps.fnd.framework.webui.OAPageContext;
    import oracle.apps.fnd.framework.webui.beans.OAWebBean;
    import oracle.apps.fnd.framework.OAApplicationModule;
    import oracle.jbo.domain.Number;
    import oracle.apps.fnd.common.MessageToken;
    import oracle.apps.fnd.framework.OAException;
    import oracle.apps.fnd.framework.OAViewObject;
    import oracle.apps.fnd.framework.webui.OAWebBeanConstants;
    * Controller for ...
    public class SelectUserCO extends OAControllerImpl
    public static final String RCS_ID="$Header$";
    public static final boolean RCS_ID_RECORDED =
    VersionInfo.recordClassVersion(RCS_ID, "%packagename%");
    * Layout and page setup logic for a region.
    * @param pageContext the current OA page context
    * @param webBean the web bean corresponding to the region
    public void processRequest(OAPageContext pageContext, OAWebBean webBean)
    super.processRequest(pageContext, webBean);
    // Always call this first. super.processRequest(pageContext, webBean);
    if (!pageContext.isFormSubmission())
    OAApplicationModule am = pageContext.getApplicationModule(webBean);
    am.invokeMethod("Select_Approver", null);
    } // end processRequest()
    * Procedure to handle form submissions for form elements in
    * a region.
    * @param pageContext the current OA page context
    * @param webBean the web bean corresponding to the region
    public void processFormRequest(OAPageContext pageContext, OAWebBean webBean)
    super.processFormRequest(pageContext, webBean);
    // Always call this first. super.processFormRequest(pageContext, webBean);
    OAApplicationModule am = pageContext.getApplicationModule(webBean);
    if (pageContext.getParameter("Apply") != null)
    OAViewObject vo = (OAViewObject)am.findViewObject("UserVO1");
    //String employeeName = (String)vo.getCurrentRow().getAttribute("EmployeeName");
    Number person_id = (Number)vo.getCurrentRow().getAttribute("PersonId");
    String s_person_id = String.valueOf(person_id.intValue());
    am.invokeMethod("apply");
    MessageToken[] tokens = { new MessageToken("EMP_NUMBER", s_person_id) };
    OAException confirmMessage = new OAException("AK", "FWK_TBX_T_EMP_CREATE_CONFIRM", tokens,
    OAException.CONFIRMATION, null);
    pageContext.putDialogMessage(confirmMessage);
    pageContext.forwardImmediately("OA.jsp?page=/<yourname>/oracle/apps/ak/employee/webui/EmpSearchPG",
    null,
    OAWebBeanConstants.KEEP_MENU_CONTEXT,
    null,
    null,
    true, // retain AM
    OAWebBeanConstants.ADD_BREAD_CRUMB_NO);
    I assume that the problem occurs within my AM and CO but I don't know exactly what I'm doing wrong. Please assist. Thank you in advance.
    Cheers

    Hi Srinath,
    Here are the first 2 lines of the ##Details##
    java.lang.NullPointerException
         at oracle.apps.fnd.umx.userAdmin.webui.SelectUserCO.processFormRequest(SelectUserCO.java:69)
         at oracle.apps.fnd.framework.webui.OAWebBeanHelper.processFormRequest(OAWebBeanHelper.java:799)
    I'm assuming that when my AO calls the VO createrow() functions, it's supposed to pass it onto the EO create() functions but that link isn't made someway or another. I have attached the EO to my VO. Is there code in the VO.java that passes the createrow() function to the EO create() function?

  • Too many objects match the primary key oracle.jbo.Key

    Hi OAF Gurus,
    Currently we are implementing R12 Upgrade , for this we have deployed all the custom OAF Application related files on to the the respective JAVA_TOP folder.
    We have a custom municipal postal application which tracks the Postal Details.
    The page runs perfectly fine without any error in 11i instance, but the same is erroring out In R12.
    In R12 it shows an error as Too many objects match the primary key oracle.jbo.Key[112010 2014-10-01]
    here 112010 is nothing but the postal code id and 2014-10-01 is the Effective Start Date
    We have a custom table as xxad_postal_codes_f  (Date Track table)which contains the postal_code_id and effective_start_date (primary key is combination of postal_code_id and effective_start_date ).
    The Table already contains a row for postal_code_id = 112010  and Effective_Start_date = Sysdate.
    Now we want to update the entry for the same postal code with the Id being same as 112010  and  Effective_Start_date as 2014-10-01 through custom PostCodeChangePG
    at the time of save we are getting an error as Too many objects match the primary key oracle.jbo.Key[112010 2014-10-01]
    The table doesn't contain any of the data mentioned ([112010 2014-10-01]) at the time of insertion, hence there should not be any duplication of primary key but still we are getting the error.
    Please let us know how can we handle this..?
    Below is the code which is getting called on Click of Save button of PostCodeChangePG
    if (pageContext.getParameter("Apply") != null)
          PCodeCoWorkerBase coWorker = getCoWorker(pageContext, webBean);
              coWorker.processApply();
    Code in PCodeCoWorkerBase
        public void processApply()
          String postalCodeId = UIHelper.getRequiredParameter(pageContext, "postalCodeId");
          Date startDate = UIHelper.getRequiredDateParameter(pageContext , "EffectiveStartDate");
         Serializable[] postalCodeData = (Serializable[]) applicationModule.invokeMethod( "insertPostalCodeMajorChange", params, paramTypes );
          finalizeTransactionAndRedirect( postalCodeData );
    Code in Application Module
      public Serializable[] insertPostalCodeMajorChange ( String postalCodeId, Date date )
        PCodeAmWorker amWorker = new PCodeAmWorker(this);
        return amWorker.insertMajorChange( postalCodeId, DateHelper.convertClientToServerDate( getOADBTransaction(), date )
    Code in PCodeAmWorker
      public Serializable[] insertMajorChange ( String postalCodeId, Date date )
        // Get the view objects we need from the application module
        OAViewObject viewObject = (OAViewObject) applicationModule.getPCodesVO();
        PCodesVORowImpl currentRow = (PCodesVORowImpl) viewObject.getCurrentRow();
        currentRow.validate();
        currentRow.setEffectiveStartDate(date);
        currentRow.setComment1(currentRow.getNewComment());
    // Create a new row based on the current row
    PCodesVORowImpl newRow = (PCodesVORowImpl) viewObject.createAndInitRow(currentRow); //This is failing out and gives the error
    // Get the new effective start date as entered by the user
    Date effectiveStartDate = currentRow.getEffectiveStartDate();
        // Calculate the previous period's effective end date
        Date previousEffectiveEndDate = DateHelper.addDays(effectiveStartDate, -1);
        // Refresh the current row (the one changed by the UI) with the data it had at the beginning of the transaction
        currentRow.refresh(Row.REFRESH_UNDO_CHANGES);
        // The current row will now represent data for the the previous period set the effective end date for the previous period
        currentRow.setEffectiveEndDate(previousEffectiveEndDate);
        // Insert the newly created row that now represents the new period
        viewObject.insertRow(newRow);
        applicationModule.apply();
        return generateResult(newRow);
    PCodesVO() is based on PostalCodeEO
    below is the code from PostalCodeEOImpl
      public void create(AttributeList attributeList)
        // NOTE: This call will set attribute values if the entity object  is created with a call to vo.createAndInitRow(..)
        super.create(attributeList);
        if (getPostalCodeId() == null)
          setPostalCodeId(getOADBTransaction().getSequenceValue("XXAD_POSTAL_CODES_S"));
        if (getEffectiveStartDate() == null)
          setEffectiveStartDate(getOADBTransaction().getCurrentDBDate());
    After diagnosing the issue we found that the error is on the code of AMworker file while creating a new row PCodesVORowImpl newRow = (PCodesVORowImpl) viewObject.createAndInitRow(currentRow);
    we tried so many things such as clearing entity cache, VO cache, validating for duplicate primary key but still not able to resolved this.
    Please advice how to insert a new row on the PCodesVORowImpl without any exception.
    Thanks,
    Pallavi

    Hi ,
    One question here , if you are udating a existing record then why you are trying to create a new row
    PCodesVORowImpl newRow = (PCodesVORowImpl) viewObject.createAndInitRow(currentRow);
    Thanks
    Pratap

  • Set oracle.jbo.domain.Date object to null

    Hi
    We have a case where we need to set a Date value to null.
    We have tried row.setCxdDate(null) and row.setCxdDate(new Date("")), but to no avail.
    When we call DBTransaction.commit() in the application module, all the other changes are persisted to the database, except for the date. No exceptions are generated at all.
    I have searched through these forums, and the only thing I have come up with, was that this was filed as a bug to be fixed in the 9.0.3 release; we are using 10.1.2!
    Does anyone know how to solve this?
    TIA
    Gareth

    It returned "1970-01-01"
    By the way I found that there is one method getTime() in oracle.jbo.domain.Date class
    http://otndnld.oracle.co.jp/document/products/as10g/101300/B25221_03/web.1013/b16007/oracle/jbo/domain/Date.html used in 10.3
    But could not find it while using in JDeveloper 11.1.1.3 <http://download.oracle.com/docs/cd/E17904_01/apirefs.1111/e10653/oracle/jbo/domain/Date.html>
    Edited by: Moinak on Mar 4, 2011 7:08 AM
    Edited by: Moinak on Mar 4, 2011 7:10 AM

  • Java.lang.NoClassDefFoundError: oracle/jbo/common/ampool/ApplicationPoolException

    Oracle 9iAS J2EE Container 2.0 running on Sun Solaris 5.8
    Development Env:
    Oracle 9i JDeveloper Release Candidate running on Win2000
    I have created a few JSPs in Jdeveloper and they work fine in the embedded OC4J server on Windows.
    Then I downloaded oc4j_extended.zip and unzipped and installed in the Solaris box using the Readme.txt instructions. Then I deployed my .deploy file directly to Oracle 9iAS from Jdeveloper9i.
    When I try to reach the page of on the appserver I got the following error:
    Request URI:/vca/Virtual.jsp
    Exception:
    java.lang.NoClassDefFoundError: oracle/jbo/common/ampool/ApplicationPoolException
         at java.lang.Class.forName0(Native Method)
         at java.lang.Class.forName0(Compiled Code)
         at java.lang.Class.forName(Compiled Code)
         at com.evermind.server.ApplicationContextClassLoader.findClass(Compiled Code)
         at java.lang.ClassLoader.loadClass(Compiled Code)
         at java.lang.ClassLoader.loadClass(Compiled Code)
         at oracle.jsp.parse.JspUtils.loadClassJDK(Compiled Code)
         at oracle.jsp.parse.JspUtils.loadClass(Compiled Code)
         at oracle.jsp.parse.JspRTTag.(JspRTTag.java:100)
         at oracle.jsp.parse.JspParseState.createTagParser(Compiled Code)
         at oracle.jsp.parse.JspParseTag.parseNextTag(Compiled Code)
         at oracle.jsp.parse.JspParseTagFile.parse(Compiled Code)
         at oracle.jsp.parse.OracleJsp2Java.transform(OracleJsp2Java.java:40)
         at oracle.jsp.runtimev2.JspPageCompiler.attemptCompilePage(JspPageCompiler.java:280)
         at oracle.jsp.runtimev2.JspPageCompiler.compilePage(JspPageCompiler.java:173)
         at oracle.jsp.runtimev2.JspPageInfo.compileAndLoad(JspPageInfo.java:362)
         at oracle.jsp.runtimev2.JspPageTable.compileAndServe(JspPageTable.java:357)
         at oracle.jsp.runtimev2.JspPageTable.service(JspPageTable.java:145)
         at oracle.jsp.runtimev2.JspServlet.internalService(JspServlet.java:356)
         at oracle.jsp.runtimev2.JspServlet.service(JspServlet.java:306)
         at javax.servlet.http.HttpServlet.service(HttpServlet.java:336)
         at com.evermind.server.http.ServletRequestDispatcher.invoke(Compiled Code)
         at com.evermind.server.http.ServletRequestDispatcher.forwardInternal(ServletRequestDispatcher.java:269)
         at com.evermind.server.http.HttpRequestHandler.processRequest(Compiled Code)
         at com.evermind.server.http.HttpRequestHandler.run(Compiled Code)
         at com.evermind.util.ThreadPoolThread.run(Compiled Code)
    Does the installation file for oc4j missing some libraries? I thought they would be already installed? Should I manually copy them from the embedded oc4j from my Windows installation. If yes, which files?
    Please help.
    Regards,
    D.C.

    You need to configure oc4J_extended with BC4J runtime libraries in order to run BC4J applications.
    Check out the information in help system
    Launch JDev Help system
    Select "packaging and deploying"
    Select "Ways to deploy Business components for Java (Bc4J)"
    Select "Loading BC4J runtime libraries to oc4J"
    raghu
    JDev Team

  • Too many objects match the primary key oracle.jbo.Key[2]. Error

    Hi
    I have to display a Read Only table and an Editable Form below it so that the user can select a row in the table and that row should be populated in the form below.
    The user should be able to update the row and save in the below form.
    Then the table above also should be refreshed with the updated values.
    For this I have created a VO based on EO.
    Using the same data control I have created a UI Readonly table and an Editable form in the same JSF page.
    When I run the page, the first row is populated in both the table and form.
    When I select the second row in the table, I am getting the following error in the Editable Form
    Error: Too many objects match the primary key oracle.jbo.Key[2 ].
    My EO has only one Primary key and I have not included the ROWID column in EO or VO.
    How can we fix this issue ?
    However, if I move the editable form to another page, It is working fine.
    But we need to have both the table and editable form in the same page for usability purposes.
    Thanks for any help.
    Sameer

    you can try refreshing your VO in various ways:
    1. try setting partialTrigger on table pointing to your commandbutton .. also make sure partialSubmit on your commandButton is set to true.
    2. Do bindings on the page def for Execute action of your read-only VO. Call this method from actions of your commandButton.
    If they dont work then you can try creating a method in your AMImpl which does calls vo.executeQuery and expose this to pageDef.. and call if from the actions of your button .. but this may not be best way
    Amit

  • OAF Exception :oracle.jbo.TooManyObjectsException:Primary Key

    Hi All,
    I am getting the Exception
    oracle.jbo.TooManyObjectsException: JBO-25013: Too many objects match the primary key oracle.jbo.Key
    I am inserting the same row in Table.
    My PK is col1,col2,col3
    So how to Handle this Exception and throw the User Defined Message that , The Record is available in Table.
    Regards
    Khushal

    Khushal,
    Is any other way to get Solution ?You can try to achieve the same by - Create a VO for the same and in the where pass the value for PK1,PK2,Pk3. Execute the VO, by passing the parameter and if it returns any row. Then it means that there already exists some row with the same value.
    Regards,
    Gyan

  • Hung in the oracle.jbo.pool.ResourcePool.useResource

    Our customers reproduced the following stack trace (JDEVADF_11.1.1.5.0_GENERIC_110409.0025.6013 on Windows):
    <Aug 30, 2011 1:56:22 PM EEST> <Error> <WebLogicServer> <BEA-000337> <[STUCK] ExecuteThread: '2' for queue: 'weblogic.kernel.Default (self-tuning)' has been busy for "652" seconds working on the request "weblogic.servlet.internal.ServletRequestImpl@13619bb[
    GET /Demo-ViewController-context-root/Jobs.jspx?_afrWindowMode=0&_afrLoop=220132689544278&_adf.ctrl-state=xuimbozp8_4 HTTP/1.1
    Accept: image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/x-shockwave-flash, application/x-ms-application, application/x-ms-xbap, application/vnd.ms-xpsdocument, application/xaml+xml, application/vnd.ms-excel, application/vnd.ms-powerpoint, application/msword, */*
    Accept-Language: en-us
    UA-CPU: x86
    Accept-Encoding: gzip, deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 3.0.4506.2152; .NET CLR 3.5.30729; InfoPath.2; .NET CLR 1.1.4322; .NET4.0C; .NET4.0E)
    Connection: Keep-Alive
    Cookie: JSESSIONID=3ycRTc1JckrC0yQYGBQpQT9VMpVMwL2f1zhTGMj2Gy43gSndgy74!1352733307
    ]", which is more than the configured time (StuckThreadMaxTime) of "600" seconds. Stack trace:
         java.lang.Object.wait(Native Method)
         oracle.jbo.pool.ResourcePool.useResource(ResourcePool.java:279)
         oracle.jbo.common.ampool.ApplicationPoolImpl.doCheckout(ApplicationPoolImpl.java:2339)
         oracle.jbo.common.ampool.ApplicationPoolImpl.useApplicationModule(ApplicationPoolImpl.java:3242)
         oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:572)
         oracle.jbo.http.HttpSessionCookieImpl.useApplicationModule(HttpSessionCookieImpl.java:234)
         oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:505)
         oracle.jbo.common.ampool.SessionCookieImpl.useApplicationModule(SessionCookieImpl.java:500)
         oracle.jbo.server.SessionImpl.findSharedApplicationModule(SessionImpl.java:834)
         oracle.jbo.server.ApplicationModuleImpl.findOrCreateSharedApplicationModule(ApplicationModuleImpl.java:8578)
         model.SessionAppModuleImpl.getJobs(SessionAppModuleImpl.java:24)
         sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
         sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
         sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
         java.lang.reflect.Method.invoke(Method.java:597)
         oracle.adf.model.binding.DCInvokeMethod.invokeMethod(DCInvokeMethod.java:648)
         oracle.adf.model.binding.DCDataControl.invokeMethod(DCDataControl.java:2142)
    I can reproduce this problem with the following steps:
    1) Create two application module: SessionAppModule (session app module) and SharedAppModule (shared application module) and let these modules use the same data source jdbc/hdDS
    2) SessionAppModule calls method of the SharedAppModule using approach suggested in the http://www.avromroyfaderman.com/2008/09/shared-application-module-instance-tricks-part-i-service-methods/:
    public ViewObject getJobs() {
    ApplicationModule sharedModule =
    findOrCreateSharedApplicationModule("SharedAppModule", "model.SharedAppModule", SHARED_SCOPE_APPLICATION);
    return sharedModule.findViewObject("JobView1");
    3) List of the jobs is displayed on the page (lets say Jobs.jspx)
    With this simple application:
    1) Open Jobs.jspx
    2) Close browser
    3) Repeat 1-2
    4) Restart oracle instance which supplies connections for jdbc/hdDS
    5) Repeat 1-3
    Hung is reproduced on step 5
    The questions are --- Is it safe to use findOrCreateSharedApplicationModule in the way above? Do we need somehow release/cleanup SharedAppModule instance received from findOrCreateSharedApplicationModule?
    In debugger I see that oracle.jbo.pool.ResourcePool waits until application module in destroyed state becomes available --- it seems rather suspicious.

    Just to confirm that this is not a Library or deployment setup problem, Now, I changed the deployment scope to include business components in the ViewController to just to be sure it was being picked up in the ViewController too. I Created a separate AppModule in the ViewController and Added the VO to it, It Ran Properly including the Addition and Commit Control.

  • (oracle.jbo.ConfigException) JBO-33001 after refactoring in the Model.

    Guys,
    Can someone please help with this annoying problem...
    I have done some refactoring of application modules in my Model, and now I keep getting the following error when I start up my application, and call the static method Configuration.createRootApplicationModule (...) :-
    (oracle.jbo.ConfigException) JBO-33001: Cannot find the configuration file /uk/co/xxxx/xxxxxx/common/bc4j.xcfg in the classpath
    The above package name ("uk.co.xxxx.xxxxxx") is my old location of the application module. What I want to know is what is, where is JDeveloper still picking this up from?? I have checked my DataBindings.cpx in my View, and it is not getting it from there!
    More info - At startup I have a AppModuleManager which loads a couple of application modules which I will use to call various service methods at startup, to cache reference data. I do this like so : -
    ApplicationModule myAppModule =
    Configuration.createRootApplicationModule(Common.APPLICATION_MODULES_HOME, Common.MY_LOCAL_AM);
    appModules.put (Common.MY_LOCAL_AM, thurbonAppModule);
    Oh, and the Javadoc on the Configuration class desperately needs updating in 10.1.3! The documentation there tells you to do the following :-
    Configuration c = new Configuration( Configuration.buildConfigFileName("package10")); Hashtable env = c.getConfiguration("Oracle8iCorba"); ApplicationModuleHome home = (ApplicationModuleHome)ic.lookup( env.get(Configuration.APPMODULE_JNDI_NAME); ..... .....
    One obvious snag is that there is no constructor that takes a String in the Configuration class....
    F.Y.I> I am using JDeveloper 10.1.3.36.73, with the recent service release.
    I have managed a couple of "work-arounds" to this problem, including deploying the bc4j.xcfg in the "old place", and also using the "loadFromReader" method, passing it a FileReader of my config file, but clearly these are not ideal... Therefore could someone please give me some ideas as to where it is picking up my old bc4j.xcfg from??
    Many thanks.......Dean

    Thankyou for your comments Steve.
    To answer your points :-
    Full ADF Source is available for supported customers by opening a TAR on Metalink and asking for it.I will look into this option... Thanks for the URL to the details.
    2) I did use the inbuilt refactoring in JDeveloper - I would never manually refactor within a IDE because I am aware of the hidden effects this can have on various configuration files. However, as I mentioned above, there is quite a bit of "rubbish" lying around from earlier versions - In particular the 10.1.2 (refactoring here had all sorts of problems), and the 10.1.3 EA release. It was fixing problems caused by unsuccessful project migrations in these versions that also caused me to manually visit project files.
    The Configuration.createRootApplicationModule() is not typically required for any of our > UI clients. Other layers of the framework acquire the AM instance for you as part of > creating the binding context. . 3) I suspected as much, but an awful lot of URL links referred me to this mechanism if you do a search on using service methods via ADF on Google, and it was easy to implement. Incidentally, as I mentioned, I only use this mechanism for loading complex reference data Collections at startup for fast validation later, and when Actions require me to kick off Stored Procedures and complex business logic, which I have implemented via service methods... I think this solution works fine for me but perhaps I need to change the way I call the service methods from the client? Incidnetally, the access required is stateless in these instances. Would you still recommend me to change this to obtain AM access via the binding context, and if so why?
    I
    I shall have a read of your presentation now with interest - Being relatively new to Swing development using ADF / JDeveloper 10.1.3 I have found the business benefits it provides really good, but I have been frustrated in finding good quality relevent documentation for 10.1.3.
    As for my other comments about "bugs" in 10.1.3.. Of course I expect to find a few bugs and annoyances... I can see that 10.1.3 is a big jump from 10.1.2, and it is certainly much better; I am also realistic enough to appreciate the time pressures you would have been under to push to market, and obviously it is definitely the case that many of your competitors initial major software releases are full of bugs (I mention RSA 6 was, and I could have named others). I am confident that each service release of 10.1.3 will iron out the "quirks", for example :-
    i) CVS integration is still not quite right - Delays in picking up new software that has been checked in, which I can pick up if I switch to Tortoise..
    ii) Refactoring problems - Actually, I have not experienced any recently... (I am on SR1)
    iii) Code generation quirks...eg. Why does it generate an implementation for methods in a interface?
    But please keep focus on the (lack of) documentation issues, aka you recent blog posting.
    Best regards......Dean

Maybe you are looking for

  • Is there a way to get the result of using multiple blending modes in one object?

    Hello, I wonder if there's a way to merge multiple objects with blending modes to one object. Here is the example: On the left rhere are three objects with the same appearence but different blending modes(color dodge, normal, overlay), on the right t

  • Static Interface Methods in ABAP

    Hello, I'd like to know what sense it makes to define static methods in an interface. My understanding is, that an interface can only be used with an instance of a class implementing that interface. So I always need to have an instance and thus, stat

  • BPM 10g: configuration name [ ProjectName ] and type [SQL] is not defined.

    Hi There, I try to help a colleague with his BPM10g project. When I start the engine in BPM Studio with his project I eventually get this error in a popup: "The configuration name [<ProjectName>] and type [SQL] is not defined. Detail: The connector m

  • K8N Neo corrupts data - should I RMA?

    Mobo: K8N Neo Platinum AMD 3000+ 1 GB memory (Generic) Primary IDE: 160GB maxtor and DVD (in that order) Secondard IDE: 160GB maxtor (same model) and DVD (in that order) SATA 1 to 4: 250 GB maxtor (same model on each) So that's 6 hard disks and 2 DVD

  • Local SUS & can not connec to Applestore

    Local SUS on ML. Clients with Managed Preferences pointinmg to this SUS. Command line softwareupdate works fine. But GUI Software Update invokes idiotic App Store app which obviously (corporate firewall) can not connect to App Store. Anyway for the G