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!

ADF: FacesPageLifecycle.reportError() not working/called for an validation exception in a dynamic re

Dig21Nov 23 2015 — edited Nov 26 2015

Hi,

I have a dynamic region created in a master page (Master.jspx) that shows a specific Task flow/fragment (Taskflow - abcTF & Page Fragement - abc.jsff) on certain business rule. This abc.jsff fragment contains a text field  which has numeric value. There is a validation on the number, which is triggered if the number is less than 1000 when I click the master page's 'OK' button. The error message is shown just under the header of the master page using ADF messages tag.

This showing of error message under header was working fine until 11.1.1.5 and then we decided to upgrade to 11.1.1.9, and this error message is not shown anymore, instead ADF's un-handled exception is shown as a popup - giving following error:

"oracle.adf.controller.ControllerException: ADFC-14014: Task flow binding active attribute evaluated to null, binding='dynamicRegion1'."


When I researched a bit, I noticed that the application had customized but deprecated ADFPhaseListener configured, which was creating a specific again customized FacesPageLifeCycle instance. The FacesPageLifeCycle class has following implementation,


    public void prepareModel(LifecycleContext ctx) {

        if (!(ctx.getBindingContext().getErrorHandler() instanceof CustomErrorHandler)) {

            ctx.getBindingContext().setErrorHandler(new CustomErrorHandler(true));

        }

        super.prepareModel(ctx);

    }

    public void reportErrors(oracle.adf.controller.v2.context.PageLifecycleContext ctx)

    {

        super.reportErrors(ctx);

    }

With 11.1.1.9, I observed that, when the validation occurs for the region, the prepareModel is correctly triggered and then Exception handler executes its code properly, but reportErrors() method of FacesPageLifeCycle is never called. In 11.1.1.5, reportErrors() method was called. I am thinking, this might be the reason, why I am getting ADF error instead of a proper validation message.

I researched further, and noted that I would have to use PagePhaseListener, an possibly RegionController to overcome this specific issue about dynamic region , but can't find my way over this. I was successfully able to configure custom FacesPageLifeCycle instance in PagePhaseListener and associate it with Master.jspx under PREPARE RENDER phase, but it is still not calling FacesPageLifeCycle.reportError() method.

May be reportError() method is not the problem, but the comparison (line by line debugging) between 11.1.1.5 and 11.1.1.9, has shown me ONLY this specific difference.

Kindly help.

Thank you,

Dig.

Comments
Locked Post
New comments cannot be posted to this locked post.
Post Details
Locked on Dec 24 2015
Added on Nov 23 2015
4 comments
556 views