Tuesday, July 14, 2009

JDeveloper 11 r1 Cascading LOV bugs

Since I had a strange reply for the previews post in oracle forums
I decided to investigate cascading LOVs a little more

So I created a ManagersLOV view object with query:
WHERE EXIST (select null
from employees e
where e.manager_id = m.employee_id)
I added bind variable inDepartmentId and view criteria for DepartmentId
I added it as LOV in the employees view and in the accessors I set DepartmentId as value for the bind variable.

I see in property inspector that Row Level Bind Variables is set to true.
I also added ManagerId in query Criteria
I test the application.
In query page if I select a department from LOV and then open manager LOV, managers are filtered correctly depending on department, But:
Bug 1:
If I Type a value in department (or if I remove value) and then try to select manager then the managers are not filtered correctly.

Bug 2: If I type an invalid value in Department and press search, and then try to select a manager I have a null pointer exception.:
Caused by: java.lang.NullPointerException
at oracle.adfinternal.view.faces.model.binding.FacesCtrlSearchBinding$AdfCriterionValues.(FacesCtrlSearchBinding.java:2834)

Bug 3: If I type an invalid value in Department and go to Edit page (press Edit or New) and return (New Search) tha page is corrupted with the same null pointer exception.

Bug 4: In Edit page I type an invalid value in ManagerId, then I change the department and try to select new value for the ManagerId from the LOV. But the managers are filtered according to the old department

So I think this is not correct so I go to the LOV of ManagerId field and in the UI Hints I select the checkbox Filter Combo Box Using 'ManagersLovCriteria'

I go again to the accessor and I see that property Row Level Bind Variables is empty.
I go again to the LOV of ManagerId field and in the UI Hints and I see the checkbox Filter Combo Box not checked. No mater how many times I try to check it it remains unchecked.

So I try the application and I reproduce all the above bugs.

So I manually change the value of property 'Row Level Bind Variables' to “false” and I try the application.
I cannot reproduce the Bugs 2 and 3 with NullPointerException but the Managers never filter for the selected department no mater if I select it from LOV or not

So as a conclusion, cascading LOVs don't work correctly in Jdeveloper 11g r1 no mater the value of
'Row Level Bind Variables'
Find test case application at:


  1. Great Job!

    It is good to know the current status of Cascade LOVs in this new Release!

    Thank you!

  2. I think all the problems here stem from the same issue: when using an LOV on a query, you must set the autosubmit on the attribute in the View.

    Open up your EmployeesView, go to
    Attributes, double-click on Dept,
    go to Control Hints in the "Edit Attributes" dialog, and change Auto-Submit from the
    default of "false" to "true".

    In general, there is no need to autosubmit
    on attributes; however, when you have
    a cascading LOV situation, where the
    values of another attribute are dependent
    on the values of a first, then there has got
    to be some way to tell the server about the changes in the first. Autosubmit does that.
    This is a requirement for the base attribute in a cascading LOV situation.

    The new release has moved toward many rich-client types of behaviors, and as a result, there is a greater burden on developers to realize the implications of client side actions.

    Hope this helps.

  3. I havent reproduced, for me Cascading LOV components work well with suggested proper solution.


  4. Thanks for the tip guys, but it doesn't help much.

    It solves the bug 1 but now i get null pointer exception as soon as i type an invalid value for departmentId and press search or new.
    So it does not solve bugs 2,3 and 4.

    also in query criteria i have now the bug described in previus post http://adfbugs.blogspot.com/2009/07/adf-input-list-of-values-autosubmit-bug.html

  5. I've posted my findings in http://forums.oracle.com/forums/thread.jspa?threadID=928068