Skip to Main Content

Java Development Tools

Announcement

For appeals, questions and feedback about Oracle Forums, please email oracle-forums-moderators_us@oracle.com. Technical questions should be asked in the appropriate category. Thank you!

Concurrency issue - Custom error for JBO-25014 not working

panktiMar 16 2016 — edited Mar 17 2016

Jdeveloper version – 12.2.1.0.0

Problem - The custom error gets displayed in jdev console but no pop up shows up on UI

In my application I have a main page i.e. a table and an edit page i.e. a form. Clicking on a record in the main page navigates to the edit page with details of the selected record. While editing and saving a record in 2 browsers simultaneously, I am getting below error in console

<oracle.dfw.impl.incident.DiagnosticsDataExtractorImpl> <DiagnosticsDataExtractorImpl> <createADRIncident> <incident 104 created with problem key "ADFC-00032 [ADFc]">

<oracle.adf.view> <RichExceptionHandler> <_logUnhandledException> <ADF_FACES-60098:Faces lifecycle receives unhandled exceptions in phase INVOKE_APPLICATION 5>

oracle.jbo.JboException: Pankti Test - Record modified by another user

at com.view.CustomDCErrorHandlerImpl.handleJBO25014**(CustomDCErrorHandlerImpl.java:34)**

at com.view.CustomDCErrorHandlerImpl.reportException(CustomDCErrorHandlerImpl.java:20)

at oracle.adf.model.binding.DCBindingContainer.reportException(DCBindingContainer.java:437)

at oracle.adf.model.binding.DCBindingContainer.reportException(DCBindingContainer.java:485)

at oracle.adf.model.binding.DCControlBinding.reportException(DCControlBinding.java:202)

at oracle.jbo.uicli.binding.JUCtrlActionBinding.reportException(JUCtrlActionBinding.java:2120)

at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1749)

at oracle.adf.model.binding.DCDataControl.invokeOperation(DCDataControl.java:2294)

at oracle.jbo.uicli.binding.JUCtrlActionBinding.invoke(JUCtrlActionBinding.java:785)

..............................................................................

<oracle.adf.view> <PartialResponseUtils> <handleError> <ADF_FACES-60096:Server Exception during PPR, #2>

oracle.jbo.JboException: JBO-29114 ADFContext is not setup to process messages for this exception. Use the exception stack trace and error code to investigate the root cause of this exception. Root cause error code is JBO-.

at com.view.CustomDCErrorHandlerImpl.handleJBO25014**(CustomDCErrorHandlerImpl.java:34)**

at com.view.CustomDCErrorHandlerImpl.reportException(CustomDCErrorHandlerImpl.java:20)

at oracle.adf.model.binding.DCBindingContainer.reportException(DCBindingContainer.java:437)

at oracle.adf.model.binding.DCBindingContainer.reportException(DCBindingContainer.java:485)

at oracle.adf.model.binding.DCControlBinding.reportException(DCControlBinding.java:202)

at oracle.jbo.uicli.binding.JUCtrlActionBinding.reportException(JUCtrlActionBinding.java:2120)

at oracle.jbo.uicli.binding.JUCtrlActionBinding.doIt(JUCtrlActionBinding.java:1749)

at oracle.adf.model.binding.DCDataControl.invokeOperation(DCDataControl.java:2294)

at oracle.jbo.uicli.binding.JUCtrlActionBinding.invoke(JUCtrlActionBinding.java:785)

at oracle.adf.controller.v2.lifecycle.PageLifecycleImpl.executeEvent(PageLifecycleImpl.java:414)

..............................................................................

Error on UI

3.jpg

For custom error

I have created a class by extending DCErrorHandlerImpl.In this i have overridden the reportException method and the code is as follows.

@Override

    public void reportException(DCBindingContainer dCBindingContainer, Exception exception) {

    System.out.println("In reportException");

    exception = handleJBO25014(exception);

    super.reportException(dCBindingContainer, exception);

}

private JboException handleJBO25014(Exception exception) {

    System.out.println("In handleJBO25014");

    JboException jboEx = null;

    if (exception instanceof JboException) {

        jboEx = (JboException) exception;

        System.out.println("jboEx       :   " + jboEx);

        String message = exception.getMessage();

        if (message.contains("JBO-25014")) {

            System.out.println("message     :   " + message);

            return new JboException("Pankti Test - Record modified by another user");   **(LINE 34)**

        }

    }

    return jboEx;

}

I have then set the ErrorHandlerClass property of DataBinding.cpx to my custom class.

1.jpg

Note:

I did a sample application with just one page using a table. Here it worked properly and I get the custom error message as expected.

Also I did a sample application with just one page using a form. Here it worked properly and I get the custom error message as expected.

The problem occurs only when there is page navigation.

This post has been answered by SanjeevChauhan on Mar 17 2016
Jump to Answer
Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Apr 14 2016
Added on Mar 16 2016
14 comments
759 views