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.