JBO-25014

Hi,
I am pretty new to ADF and JHeadstart and obtaining te following error: JBO-25014.
This error occurs in a master-detail form I created. The form contains one master and two details. I think this error is caused by some triggers defined on the underlying data model. We have several triggers on the client that do some validating and some updates and I have accomplished the synchronisation of those in my client using some hints I found in this forum. There are also some triggers on the details that update the master. So in one way or the other after committing the details I have to refresh/requery the master.
Could someone provide me some help here?
I am using JDeveloper 10.1.2 and JHeadstart 10.1.2.
Thanks in advance,
Benny

Benny,
Can you try the following. Override doDml and after calling super, you call refresh on the master entity impl, this example is the master Department:
protected void doDML(int operation, TransactionEvent e)
super.doDML(operation, e);
getDepartment().refresh(REFRESH_WITH_DB_FORGET_CHANGES);
Steven Davelaar,
JHeadstart Team.

Similar Messages

  • JBO-25014: Another user has changed the row with primary key oracle.jbo.Key

    Hi,
    I am developing a Fusion Web Application using Jdeveloper 11.1.2.1.0. I have a home.jspx page that has a ADF table built on efttBilling View Object. . When you click on one of the rows in the table, it will take you to detail.jspx where you can edit the row and save. When 'save' is clicked, stored procedures are executed to update/insert rows into few tables , and then go back to home.jspx where you need to see updated content for that row.
    To get down to the exact issue, updates are made to the tables on which the efttBilling View Object is built using a stored procedure. Once this is done, I am trying to requery view object to see new content. But I keep getting JBO-25014: Another user has changed the row with primary key oracle.jbo.Key error. Following are the approaches I followed to query new results:
    a. Executed Application Modules Commit Method. Created 'Commit' Action binding and tied it to homePageDef.xml. Called this binding from a view scope bean.
        BindingContainer bindings = BindingContext.getCurrent().getCurrentBindingsEntry();
         OperationBinding operationBinding = bindings.getOperationBinding("Commit");
        Object result = operationBinding.execute();
       if (!operationBinding.getErrors().isEmpty())
        return null;
    b. Marked 'Refresh on Insert' , 'Refresh on Update', 'Change Indicator' checkboxes for all the attributes in the entities associated with efttBilling View Object.
    c. Tried to Requery View Object. Created a refreshViewObject method in Application Module Impl.java file, exposed this method to the client interface and created a invokeMethod Action binding in home.jspx
    Code in Application Module:
      public void refresheftTransactionsforBillingAccountViewObj1View()
        System.out.println("In eftTransactionsforBillingAccountViewObj1");
      findViewObject("eftTransactionsforBillingAccountViewObj1").executeQuery();
    Code in view scope bean
            DCBindingContainer bindings =
           (DCBindingContainer)BindingContext.getCurrent().getCurrentBindingsEntry();
            OperationBinding operation =
            bindings.getOperationBinding("refresheftTransactionsforBillingAccountViewObj1View");
            operation.execute();
    I have searched web, ADF forums and tried methods suggested in there but no sucess.
    Could anyone please provide some insight in this issue. I have been battling with this since quite some time. I can provide you with the log file too.
    Thanks!
    Shai.

    What code does your Commit method have .. can you try using the Commit executable from the AM itself instead ?
    Also -
    Shai wrote:
    'Change Indicator' checkboxes for all the attributes in the entities associated with efttBilling View Object.
    which all attributes you set this property for . it should just be for History columns as such.
    Did you also check if this could be your scenario ?
    Decompiling ADF Binaries: Yet another reason for "JBO-25014: Another user has changed the row with primary key orac…
    OR
    JBO-25014: Another user has changed the row with primary key oracle.jbo.Key
    OR
    Another user has changed the row with primary key -Table changed externally
    Message was edited by: SudiptoDesmukh

  • Inconsistent Update error: JBO: 25014.  Help Needed from Jdev team

    Hi,
    ***Please help me in solving this issue. urgent!!!. Thanks.***
    I need to know how can i Update after i browse throw a rowset
    and set the row attributes. Simple posting the changes and
    commit is giving me following error.
    I am getting JBO:25014 when i try to update a detail table for
    selected number of rows.
    I have a JSP page which allows the user to select either at
    master level or detail level using Radio Button and
    2 Text fields, one for date and other for comments at master
    level. This will appear mandatorily.
    In detail level, Number of rows which will be dynamically
    populated. If this level is selected, and say 5 lines are
    displayed, I will be having 5 text fields for dates and 5 text
    fields for comments. Upon submit, I pass these text fields
    values as params and receive in JSP page as String arrays in a
    seperate validation page .
    At the database end, I have Order Master table and Lines detail
    table.
    For some records in Order table, I am able to update records in
    both the tables. But for certain records in Order table, I am
    unable to update the detail table and throws me a JBO:25014
    error: : Another user has changed the row with primary key
    oracle.jbo.Key
    This record is very similar to other records and i am unable to
    update this record from sql*plus.
    In the validation Page, where i receive the parameters, I use
    View objects for Orders and Details, executeQuery for selected
    Order. Then I use Row Iterator for each of the view objects, in
    between the row iterator tags, I set the row attributes with the
    individual lines values if Libe level is selected or the common
    header date and comments value to all lines.
    Then i post changes and commit.
    The code is below for the way I update lines records.
    <jbo:DataSource id="ds"
    appid="LivePoheaders.LivePoheadersAppModule"
    viewobject="MyPOLinesView"/>
    <jbo:RowsetIterate datasource="ds" >
    <%
    //trying to get a row object
    rowln = ds.getRowSet().getCurrentRow();
    // formatting my date input to a valid string
    lnDateStr = PohdrFcastYear+"-"+PohdrFcastMon+"-"+PohdrFcastDay;
    out.println(PohdrComments);
    out.println("Header date" + lnDateStr);
    formatter.applyPattern("yyyy-MMM-dd");
    tempDate = formatter.parse(lnDateStr);
    formatter.applyPattern("yyyy-MM-dd");
    lnDateStr = formatter.format(tempDate);
    lnVenFcastDate = new oracle.jbo.domain.Date(lnDateStr);
    // setting the two attributes with input values
    rowln.setAttribute("VendorForecastDate", lnVenFcastDate);
    rowln.setAttribute("VendorComments",PohdrComments);
    }catch( Exception e)
    currErrorStatus = err.putErrorDesc(e.getMessage());
    err.setCurrentErrorStatus(currErrorStatus);
    %>
    <jbo:RollBack appid="LivePoheaders.LivePoheadersAppModule"/>
    <%
    throw new oracle.jbo.JboException(e);
    %>
    </jbo:RowsetIterate>
    <%
    try
    %>
    <P> <b>Posting Changes ...</b> </P>
    <jbo:PostChanges appid="LivePoheaders.LivePoheadersAppModule"/>
    <P> <b>Committing Changes...</b> </P>
    <jbo:Commit appid="LivePoheaders.LivePoheadersAppModule"/>
    <P> <b>Commit Successful...</b> </P>
    <%
    currErrorStatus = "-1";
    err.setCurrentErrorStatus(currErrorStatus);
    }catch( Exception e)
    currErrorStatus = err.putErrorDesc(e.getMessage());
    err.setCurrentErrorStatus(currErrorStatus);
    %>
    <jbo:RollBack appid="LivePoheaders.LivePoheadersAppModule"/>
    <%
    throw new oracle.jbo.JboException(e);
    %>

    From the JDeveloper 3.2.3 online documentation:
    JBO-25014: RowInconsistentException
    Cause: Comparison of the cached entity failed with the values in
    the database for that entity. This could happen when another
    user or operation has committed modifications to the same entity-
    row in the database. This exception can also be thrown if the
    equals() method on one of the domain-type attributes in the
    entity fails.
    Action: Choose from the following options:
    --Verify that another user or operation has not modified the
    same row in the database. If this entity has attributes of a
    domain type verify that the equals() method on these domains do
    not fail when comparing the existing cached value with the newly
    fetched value.
    --For any attributes/columns that are updated by the database,
    modify the entity attribute definition by selecting Refresh
    after update on the Attribute Settings page of the Entity Object
    Wizard.
    --Use view.executeQuery() frequently, especially after any
    operations that result in data being changed.

  • JBO-25014 - Solved Issue, but want to know WHY it now works!

    Environment: Using JDev 10.1.2.0 with Struts, ADF BC, and JSPs with data on Oracle 9i
    I have been working several pages forllowing the Customer Maintenance OBE as a guide. I created tables using the wizard. When done, I unchecked rowid as the pkey, since a numerical field named postingid is the pkey defined in the table. I make this the pkey and also checked manditory. I also created a Create method in the Impl by checking the create checkbox. I then added code to populate the primary key with setPostingId from a sequence table using code similar to:
    SequenceImpl s = new SequenceImpl("customers_seq", getDBTransaction());
    this.setCustId(s.getSequenceNumber());
    I could create a record.
    If I edit, cancel (rollback) - I could then edit the record without error.
    If I edited a record as the next action after saving a created record (modifying content) and saved, I would get the JBO-25014 error.
    Here's the kicker...
    I changed the primary keys all back to rowid and rebuilt the model. Now I don't get the error when I save a saved created record after changes.
    Why!
    Why can't I use my primary keys?
    (I tried setting fields to fresh after update or insert), but I would get another oracle error as the return as was not supported.

    Klee,
    What is the datatype of the attributes in the EO (I assume the table is NUMBER) - are the EO key attributes Number or DBSequence. If they are not DBSequence, I suggest you give that a try.
    John

  • JBO-25014 : Another user has changed ....

    Hi
    This is something strange in my application, let me explain:
    I have an entity object (let's say Entity1) and two view objects created from Entity1
    (let say View1 & View2). View1 & View2 are defined exactly the same except
    each one is a detail(child) of another view object.
    The problem on view1 is : when i try to update or delete the same row that just added
    will receive JBO-25014 : Another user has changed the row with primary key oracle.jbo.key[....]
    Note: that work perfect on my development pc when run the application via JDeveloper,
    but this error comes when call the application on web server via browser (real life).
    Also the other view (view2) that i mentioned above works perfect either via
    JDev or via browser. And also i made sure that followed all the suggestions
    made by documention ( 1-frequently used executeQuery 2-Refresh after insert/update is checked 3-nobody else
    work with the application except me at testing time).
    Would appreciated to share me any idea comes in your mind.
    Thanks...Ali

    Ali:
    The most common reasons for this error are the following:
    1. Someone else really did change the row. This doesn't appear to be the case in your scenario.
    2. Some attributes in your row are of Java class whose implementation of equals() is incorrect.
    Let me explain #2 a bit further. When you update/delete a row, we lock the row in DB and then bring in the latest values to see if another user had changed the row since this user read the row.
    To compare the value in cache with that from db, we call equals() method. If equals() method returns false when in fact the two attrs are really equal, you could get this error unexpectedly.
    So, I would suggest checking attribute types to see if there are some 'estoeric' attr types and see if the equals() method is misbehaving.
    Thanks.
    Sung

  • JBO-25014: Another user has changed .... can I change myViewRowImpl.java???

    Hi all,
    I'm noob working with jDeveloper and ADF and i'm finding a lot of problems building my application. The first one: "JBO-25014: Another user has changed .."
    I have been reading a lot about this problem and its different causes but seems that nothing helps me so i'm gonna tell you my problem and i hope that someone know how to solve it.
    My page shows a table and below it the details of each row selected in the table in read only mode.
    The table shows fields from a table in database and other fields with information not located in database (CMS). To build it i used the wizard to create a bussines component from a table . After i added the properties that are not located in database to the view and entity object.
    I generated java code for the view (myViewImpl.java & myViewRowImpl.java) and for the aplicacion module (myAmImpl.java) and in java class for the application module I overwrote some methods (findViewObject & getViewObjects) to add the source code needed to get data from CMS and add it to the data obtained from database.
    That works perfecly!
    Now, I wrote a new method in myViewImpl.java which get data from details form and update table in database (moreover other task: send mail, sms....). This method is executed with a command button. Method commits transaction after each operation. Again this works perfectly!
    The problem comes when i try to refresh the table with the new data after update. I tried different solutions:
    - Option 1: Clear cache after commit. Problem: When table is reloaded I'm losing data obteined from CMS and also this process is too heavy, i would like to avoid to go to CMS to reload whole table with every update of a row.
    - Option 2: Set new values directly in object myViewRowImpl.java. That could be the perfect solution, after every update i just inform the row object with the new values. The problem is that when i try to commit the transaction I'm getting a JBO-25014. If I set the new values before commit, the errors comes in this commit, if i set the values after the commit, the error comes in the next row to be updated.
    Any idea of how to avoid the problem in option 2????
    Other general sugestion????
    Thanks in advance!!
    Curro.
    PD: Sorry for my poor english

    Hi,
    Using ADF BC, the default locking behavior is set to pessimistic. Check the ApplicationModule configuration (right mouse click the AM and choose "configuration") and change the locking property to optimistic.
    Also you need to set the EO attributes to refresh after insert and/or refresh after update.
    ~Abhijit

  • JBO-25014: Another user has changed the row with primary key...

    Hello,
    could you help me please with resolving this error "JBO-25014: Another user has changed the row with primary key..." - I am just getting a row from a view by bind "filter" variable, then I am assigning new values for some of the attributes - and trying to commit ..unsuccessfully..
    View is based on Entity.
    I saw directive for setting Entity's attributes as "update after insert / update" - but this did not help me.
    Thanks in advance.

    Hi
    Please try this solutions:
    One solution is to change the ADF BC locking behavior to optimistic instead of pessimistic. Choose the AM and click the Configuration context menu option. Select the LocalAM entry and go to the Properties. Scroll down to the locking setting and change the existing entry
    If there is a trigger changing values, you need to mark those attributes (the ones that may be changed) as refresh after insert and/or refresh after update in your Entity Object.

  • ADF JBO error JBO-25014 after upgrade to 10.1.3(.1)

    Hi,
    We're going through the process of migration testing for our apps (struts and older JBO/BC4J). In this case it's gone pretty well however I'm getting the following error in 10.1.3 and just now, 10.1.3.1 when the app updates a row's finish date:
    Error Message: JBO-25014: Another user has changed the row with primary key oracle.jbo.Key[4258 ].
    06/10/20 17:14:54 [804] OracleSQLBuilder Executing Select on: INTERVIEW (true)
    06/10/20 17:14:54 [805] Built select: 'SELECT INTERVIEW_ID, PROSPECT_ID,
    QUESTION_SET_ID, START_DATE, FINISH_DATE, END_STATE, IS_INTL FROM INTERVIEW Interview'
    06/10/20 17:14:54 [806] Executing LOCK...SELECT INTERVIEW_ID, PROSPECT_ID,
    QUESTION_SET_ID, START_DATE, FINISH_DATE, END_STATE, IS_INTL FROM
    INTERVIEW Interview WHERE INTERVIEW_ID=:1 FOR UPDATE NOWAIT
    06/10/20 17:14:54 [807] Entity compare failed for attribute FinishDate
    06/10/20 17:14:54 [808] Original value :2006-10-20
    06/10/20 17:14:54 [809] Target value :2006-10-20Originally this date updating was accomplished via a trigger (worked fine in 10.1.2) but in an attempt to get it to work now I've changed START_DATE to a History column with date_created and FINISH_DATE is a history column with date_modified (it's supposed to be updated a lot, but fails whenever I update it).
    The data is initially committed fine with a date time value for start date and finish date however whenever I update the finish date it fails with this error.
    What's sort of interesting, is this error was happening yesterday in 10.1.3 on the StartDate attribute.
    Any help on why this is occurring would be great.
    - Nathaniel

    Just a bit more information, this is also repeatable in the BC4J tester, so it's in the datamodel somewhere. Is there some change in the versions that might affect this?
    oracle.jbo.RowInconsistentException: JBO-25014: Another user has changed the row with primary key oracle.jbo.Key[4262 ].
         at oracle.jbo.server.OracleSQLBuilderImpl.doEntitySelect(OracleSQLBuilderImpl.java:939)
         at oracle.jbo.server.EntityImpl.doSelect(EntityImpl.java:5591)
         at oracle.jbo.server.EntityImpl.lock(EntityImpl.java:3845)
         at oracle.jbo.server.EntityImpl.beforePost(EntityImpl.java:4326)
         at oracle.jbo.server.EntityImpl.postChanges(EntityImpl.java:4470)
         at oracle.jbo.server.DBTransactionImpl.doPostTransactionListeners(DBTransactionImpl.java:2996)
         at oracle.jbo.server.DBTransactionImpl.postChanges(DBTransactionImpl.java:2807)
         at oracle.jbo.server.DBTransactionImpl.commitInternal(DBTransactionImpl.java:1971)
         at oracle.jbo.server.DBTransactionImpl.commit(DBTransactionImpl.java:2173)
         at oracle.jbo.jbotester.MainFrame$CommitAction.doAction(MainFrame.java:878)
         at oracle.jbo.jbotester.AbstractJboAction.actionPerformed(AbstractJboAction.java:81)
         at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:1786)
         at javax.swing.AbstractButton$ForwardActionEvents.actionPerformed(AbstractButton.java:1839)
         at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:420)
         at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:258)
         at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(BasicButtonListener.java:245)
         at java.awt.AWTEventMulticaster.mouseReleased(AWTEventMulticaster.java:231)
         at java.awt.Component.processMouseEvent(Component.java:5100)
         at java.awt.Component.processEvent(Component.java:4897)
         at java.awt.Container.processEvent(Container.java:1569)
         at java.awt.Component.dispatchEventImpl(Component.java:3615)
         at java.awt.Container.dispatchEventImpl(Container.java:1627)
         at java.awt.Component.dispatchEvent(Component.java:3477)
         at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:3483)
         at java.awt.LightweightDispatcher.processMouseEvent(Container.java:3198)
         at java.awt.LightweightDispatcher.dispatchEvent(Container.java:3128)
         at java.awt.Container.dispatchEventImpl(Container.java:1613)
         at java.awt.Window.dispatchEventImpl(Window.java:1606)
         at java.awt.Component.dispatchEvent(Component.java:3477)
         at java.awt.EventQueue.dispatchEvent(EventQueue.java:456)
         at java.awt.EventDispatchThread.pumpOneEventForHierarchy(EventDispatchThread.java:201)
         at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:151)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:145)
         at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:137)
         at java.awt.EventDispatchThread.run(EventDispatchThread.java:100)

  • 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

  • ER. about RowInconsistentException: JBO-25014:Another user Changed the Row

    there is a default value in a columns.
    is couses RowInconsistentException: JBO-25014:Another user Changed the Row when we insert then uptede a record.
    if ADF entity object wizard can take default value from database columns (as default) this error can be prevented before occurring.

    ali,
    Agree that this would be a nice feature.
    To work around the problem (JBO-25014) - does it go away if you set the property of that attribute to refresh after insert?
    Best,
    John

  • JBO-25014 & postChanges()

    We are using JDeveloper 10.1.3.3 and ADF.
    We have a master & detail association, and we add one row to the master and one row to the detail in one commandButton_action() of the backing-bean of our jspx page.
    This commandButton sends the application to another jspx page where we have the master & detail table
    In the first page we need to call the method AModule.getTransaction().postChanges(), otherwise the jspx only show the master row, no the detail row.
    The problem is that when we try to do commit() we get the JBO-25014 error.
    What can we do to solve this problem.
    Thanks.

    Hi,
    check http://radio.weblogs.com/0118231/stories/2004/03/24/whyDoIGetOraclejborowinconsistentexception.html
    Frank

  • Jbo-25014 problem

    using jsf/adf bc. i've read through all the threads in this forum regarding what causes and how to fix the "Another user has changed the row..." error, but I still cannot avoid getting this error. In my scenario, i have just 2 pages. On page 1 there is just one button, which has behind it the code to create 2 new rows, 1 new row for the master vo and one new row for the detail vo. These vo's are related via a view link. That code looks like this:
    public void createMasterAndDetailRows(){
    ViewObject masterVO = this.getMasterVo();
    Row masterRow = masterVO .createRow();
    masterVO .insertRow(masterRow );
    ViewObject detailVO = this.getDetailVo();
    Row detailRow = detailVO .createRow();
    detailVO .insertRow(detailRow );
    masterRow .setNewRowState(Row.STATUS_INITIALIZED);
    detailRow .setNewRowState(Row.STATUS_INITIALIZED);
    The primary key value for the master view's entity is a DBSequence type, and I've got the Refresh After Insert checked. Here's what is happening. The new rows (inputs) are rendered just fine when i get to page 2. I can enter in some values for both the new rows that have just been created and do a commit. This works great. Now, i'm still on this page after i've done the commit. I update a value on the page and commit again, resulting in the jbo-25014 error. The two popular suggestions througout the forum are to make sure the Refresh After Insert is checked for the entity which has the DBSequence type and to set the app module configuration to jbo.locking.mode = optimistic. I've tried both these approaches and cannot get away from this error. In fact, just to try to isolate the problem, i set this same thing up w/o using a trigger generated value (DBSequence) for the primary key, and i still get the error. So, as far as i can tell, this has nothing to do with the fact that i'm using a trigger to generate the pk value. Are there any other suggestions for how to solve this problem? Thanks.

    using jsf/adf bc. i've read through all the threads in this forum regarding what causes and how to fix the "Another user has changed the row..." error, but I still cannot avoid getting this error. In my scenario, i have just 2 pages. On page 1 there is just one button, which has behind it the code to create 2 new rows, 1 new row for the master vo and one new row for the detail vo. These vo's are related via a view link. That code looks like this:
    public void createMasterAndDetailRows(){
    ViewObject masterVO = this.getMasterVo();
    Row masterRow = masterVO .createRow();
    masterVO .insertRow(masterRow );
    ViewObject detailVO = this.getDetailVo();
    Row detailRow = detailVO .createRow();
    detailVO .insertRow(detailRow );
    masterRow .setNewRowState(Row.STATUS_INITIALIZED);
    detailRow .setNewRowState(Row.STATUS_INITIALIZED);
    The primary key value for the master view's entity is a DBSequence type, and I've got the Refresh After Insert checked. Here's what is happening. The new rows (inputs) are rendered just fine when i get to page 2. I can enter in some values for both the new rows that have just been created and do a commit. This works great. Now, i'm still on this page after i've done the commit. I update a value on the page and commit again, resulting in the jbo-25014 error. The two popular suggestions througout the forum are to make sure the Refresh After Insert is checked for the entity which has the DBSequence type and to set the app module configuration to jbo.locking.mode = optimistic. I've tried both these approaches and cannot get away from this error. In fact, just to try to isolate the problem, i set this same thing up w/o using a trigger generated value (DBSequence) for the primary key, and i still get the error. So, as far as i can tell, this has nothing to do with the fact that i'm using a trigger to generate the pk value. Are there any other suggestions for how to solve this problem? Thanks.

  • JBO-25014: Another user has changed + DB Update trigger

    I have an DB update trigger on each row that updates 2 fields of the cuurent row:
    :New.T_SCHEDULE := SYSDATE + interval '+0 1:0:0' day to second;
    :New.STATUS := 30;
    In the Entity I have set Refresh after update/insert to yes for the attributes based on those updated fields.
    Now in a AM service method I change values of other fields through a design time ViewObject row and commit the transaction.
    The second time I activate that service method I get the JBO-25014 exception.
    Adding the following just after the commit statement solves the problem:
    trans.commit(); currentWeventContactListRow.refresh(Row.REFRESH_WITH_DB_FORGET_CHANGES);
    Should the framework not refresh the attributes updated by the trigger because of the parameter Refresh after update/insert set to yes?
    Or didn't I understand the meaning of Refresh after update/insert of an entity attribute?
    Thanks
    Frederic

    That was bug# 3935904, which I filed on behalf of your thread here:
    adf timestamp bug when value documented by db trigger
    That was closed as a duplicate later of bug# 4515623, fixed in Oracle Database 11g
    There are backports of that bug available for various earlier versions of the database. You might check with support to see if that's what you're encountering and whether the patch would remedy your problem.

  • RowInconsistentException JBO-25014 when trying to remove rows

    Hi All,
    In my AMImpl.java, I have written this code to delete all the rows having same 'occurrenceId' value as the current row which triggers this method :
    public void deleteRecords() {
    AssignmentRowImpl currentRow = this.getAssignment().getCurrentRow();
    Long occurrenceId = (Long)currentRow.getAttribute("OccurrenceId");
    VOImpl assignVO = this.getAssignmentVO();
    ViewCriteria vc = assignVO.getViewCriteria("findByOccurrenceId");
    assignVO.setNamedWhereClauseParam('pOccurrenceId" , occurrenceId);
    assignVO.applyViewCriteria(vc);
    assignVO.executeQuery();
    RowSetIterator iter = assignVO.createRowSetInterator(null);
    while(iter.hasNext() ) {
    AssignmentRowImpl row = (AssignmentRowImpl)iter.next();
    row.remove();
    iter.close();
    try {
    this.getTransaction.commit(); }
    catch(Exception e) {e.printStackTrace(); }
    The issue is that 'commit' is throwing RowInconsistentException. I am sure that no other user is having a lock on records.
    I have tried the following without any success :
    1. Calling row.refresh(Row.REFRESH_UNDO_CHANGES) before row.remove
    2. Calling refresh(REFRESH_WITH_DB_FORGET_CHANGES) before row.remove
    3. Making 'Refresh After Insert/Update' = 'true' for History columns and Primary key attributes in the corresponding EO.
    None of the above helped and I keep getting RowInconsistentException JBO-25014
    Please help me resolve this issue.
    Thanks in advance,
    Abhinav
    [email protected]

    ok, check this link http://matt-shanto.blogspot.in/2012/09/oraclejborowinconsistentexception-jbo.html whether it helps..
    ~Abhijit

  • For everyone facing unexpected the JBO-25014 error using (ADF) BC

    Hi,
    I think I might have a hint for everyone facing JBO-25014 (Another user has changed the row with primary key oracle.jbo.Key) errors during updates.
    I noticed that during updates, we got unexpected behavior: we have a table with an update row trigger defined on it, where we set values for some columns. During updates via ADF BC (we work with JDev 10.1.3 SU3 and JHeadstart 10.1.3 build 78 against Oracle 8.1.7.4, 9.2.0.7 and 10.2.0.1) we noticed that the value of one of the fields updated via triggers was emptied, although the update could in no way hit the logic for this field. So I reproduced the behavior in the Application Module Tester and also reproduced it in SQL*Plus using a PL/SQL procedure: the problem occurs because of Oracle's RETURNING statement, which is used in ADF BC for fields that need refresh after insert of update. We seem to hit bug 4515623: "Update...RETURNING with a trigger can produce corrupt column data".
    This should be solved in RDBMS 9.2.0.8 (not there yet) and 10.2.0.2 (already released). I still have to test whether 10.2.0.2 does solve our problem, but I thought I would let you know in advance. Maybe someone can test before I can (I have to set up a 10G DB first, since I work with 9.2.0.7),
    Toine van Beckhoven

    Here is additional info on this behavior. I was able to install a 10G DB (10.2.0.1) where I could reproduce the problem. After that I installed patch 10.2.0.2 and tried out it the bug was solved. However: the bug is solved, but not correctly, a new bug is introduced which is still a major problem when you use ADF BC on top of tables with Before Update triggers (but as you can see below, with update triggers containing conditional logic!). So this is really a database problem, but with impact on applications using the refresh after update property in ADF BC! The new bug is known as bug 5115882.
    Here is the script I used to pinpoint the problem (I highlighted the things that really show the problem):
    DROP TABLE test_ts;
    CREATE TABLE test_ts (test_ts_id INTEGER PRIMARY KEY,
    status SMALLINT NOT NULL, someotherfield VARCHAR2(1), edittime DATE);
    CREATE OR REPLACE TRIGGER test_ts_time
    BEFORE UPDATE
    ON test_ts
    REFERENCING OLD AS OLD NEW AS NEW
    FOR EACH ROW
    BEGIN
    -- always update edittime
    :NEW.edittime := SYSDATE;
    -- only update someotherfield conditionally (when status=1)
    IF :NEW.status = 1
    THEN
    :NEW.someotherfield := 'Y';
    END IF;
    END;
    PROMPT Create one row, with status 1 and someotherfield initially 'N'
    INSERT INTO test_ts
    (test_ts_id, status, someotherfield, edittime
    VALUES (1, 1, 'N', SYSDATE
    SELECT test_ts_id, status, someotherfield,
    TO_CHAR (edittime, 'dd-mm-yyyy hh24:mi:ss') edittime
    FROM test_ts;
    SET serverout on
    PROMPT Update the row, with status 2 --> trigger logic will not fire
    DECLARE
    l_someotherfield test_ts.someotherfield%TYPE;
    l_edittime test_ts.edittime%TYPE;
    BEGIN
    FOR i IN 1 .. 100000000
    LOOP
    NULL;
    END LOOP;
    UPDATE test_ts
    SET status = 2
    WHERE test_ts_id = 1
    RETURNING someotherfield, edittime
    INTO l_someotherfield, l_edittime;
    DBMS_OUTPUT.put_line
    ( 'Returned SomeOtherField (should be ''N'' but is empty in 10.2.0.1): '
    || l_someotherfield
    DBMS_OUTPUT.put_line
    ( 'Returned EditTime (should be greater than selected one before): '
    || TO_CHAR (l_edittime, 'dd-mm-yyyy hh24:mi:ss')
    DBMS_OUTPUT.put_line ('-');
    END;
    PROMPT However: someotherfield is really 'N' so why is it returning NULL --> bug
    SELECT test_ts_id, status, someotherfield,
    TO_CHAR (edittime, 'dd-mm-yyyy hh24:mi:ss') edittime
    FROM test_ts;
    PROMPT Update the row, with status 1 --> trigger logic will fire
    DECLARE
    l_someotherfield test_ts.someotherfield%TYPE;
    l_edittime test_ts.edittime%TYPE;
    BEGIN
    FOR i IN 1 .. 100000000
    LOOP
    NULL;
    END LOOP;
    UPDATE test_ts
    SET status = 1
    WHERE test_ts_id = 1
    RETURNING someotherfield, edittime
    INTO l_someotherfield, l_edittime;
    DBMS_OUTPUT.put_line
    ( 'Returned SomeOtherField (should be ''Y'' and is ''Y'' also in 10.2.0.1): '
    || l_someotherfield
    ); DBMS_OUTPUT.put_line
    ( 'Returned EditTime (should be greater than selected one before): '
    || TO_CHAR (l_edittime, 'dd-mm-yyyy hh24:mi:ss')
    DBMS_OUTPUT.put_line ('-');
    END;
    PROMPT And see: someotherfield is indeed 'Y' so expected behavior
    SELECT test_ts_id, status, someotherfield,
    TO_CHAR (edittime, 'dd-mm-yyyy hh24:mi:ss') edittime
    FROM test_ts;
    Output on 10.2.0.1:
    Table dropped.
    Table created.
    Trigger created.
    Create one row, with status 1 and someotherfield initially 'N'
    1 row created.
    TEST_TS_ID STATUS S EDITTIME
    1 1 N 16-07-2006 15:11:35
    1 row selected.
    Update the row, with status 2 --> trigger logic will not fire
    Returned SomeOtherField (should be 'N' but is empty in 10.2.0.1): --> bug
    Returned EditTime (should be greater than selected one before): 16-07-2006 15:11:37
    PL/SQL procedure successfully completed.
    However: someotherfield is really 'N' so why is it returning NULL --> bug
    TEST_TS_ID STATUS S EDITTIME
    1 2 N 16-07-2006 15:11:37
    1 row selected.
    Update the row, with status 1 --> trigger logic will fire
    Returned SomeOtherField (should be 'Y' and is 'Y' also in 10.2.0.1): Y
    Returned EditTime (should be greater than selected one before): 16-07-2006 15:11:40
    PL/SQL procedure successfully completed.
    And see: someotherfield is indeed 'Y' so expected behavior
    TEST_TS_ID STATUS S EDITTIME
    1 1 Y 16-07-2006 15:11:40
    1 row selected.
    Output on 10.2.0.2:
    Table dropped.
    Table created.
    Trigger created.
    Create one row, with status 1 and someotherfield initially 'N'
    1 row created.
    TEST_TS_ID STATUS S EDITTIME
    1 1 N 16-07-2006 23:47:51
    1 row selected.
    Update the row, with status 2 --> trigger logic will not fire
    Returned SomeOtherField (should be 'N' and is indeed 'N' in 10.2.0.2): N --> ALLRIGHT, this correct, but look further...
    Returned EditTime (should be greater than selected one before): 16-07-2006 23:47:51
    PL/SQL procedure successfully completed.
    TEST_TS_ID STATUS S EDITTIME
    1 2 N 16-07-2006 23:47:54
    1 row selected.
    Update the row, with status 1 --> trigger logic will fire
    Returned SomeOtherField (should be 'Y' ...but is the old value 'N' in 10.2.0.2): N --> so a new bug has been introduced so a problem still remains!
    Returned EditTime (should be greater than selected one before): 16-07-2006 23:47:54
    PL/SQL procedure successfully completed.
    And see: someotherfield is indeed 'Y' so the Returned value is now not correct, like it was in 10.2.0.1
    TEST_TS_ID STATUS S EDITTIME
    1 1 Y 16-07-2006 23:47:56
    1 row selected.
    I am affraid we need to look at workarounds, because we rely heavily on before update triggers in the DB with conditional logic. I do not really want to change my triggers (for example removing conditional logic...). And it seems that waiting for the Oracle RDBMS to really solve this problem is not viable either (I saw notes that it will be solved in 11G, not in 10 or 9!).
    Anyone from the ADF development team that recognizes this problem and is able to verify that this really is a RDBMS problem? The testcases above run on every DB version as a regular user (for example SCOTT) with some create privileges),
    Toine

Maybe you are looking for

  • Hidden "Recovered Folder" in iPhoto Library

    After installing Mac OS X 10.8 iTunes 10.7 iOS 6 iPhoto 9.4 I could watch hidden albums/folders thru iTunes: lastNMonthsAlbum Recovered Folder Recovered Folder (1) These forders are not visible in iPhoto. How to remove them ? Printscreen is attached.

  • Amber update for lumia 520

    I received microsoft update yesterday, without Nokia Amber update. Do they come in one package or separately? If so, when should I expect the Amber update?

  • Mapviewer not rendering color regions properly after obiee upgrade

    Hello! After upgrade my OBIEE installation from 11.1.1.5 to 11.1.1.6.2 all dashboads with GEO maps stop rendering properly. The color layer fails when you move the mouse over states or country. The same dashboads map works fine on 11.1.1.5 version. W

  • Changed bill after I paid it and added in a $70 service charge they had taken off!

    I feel like Comcast is a complete ripoff now - and I have been a loyal customer for more than 15 years! I was totally bamboozled by Comcast after I paid my bill and then opened up my "new bill" and saw that my last month's e'bill has been changed aft

  • Analysis Authorisations

    Hi, Query regarding Analysis Authorisation..... I had a 3 Queries based on a Multiprovider which is a combination of 10 Info Cubes.... Where do i need to implement my authorisation on Multiprovider level or at the cube level..as data is avaliable in